File: //usr/lib/python3/dist-packages/django/core/__pycache__/paginator.cpython-310.pyc
o
�aa � @ s� d dl Zd dlZd dlZd dlmZ d dlmZ d dlm Z d dl
mZ G dd� de
�ZG dd � d e�ZG d
d� de�ZG dd
� d
e�ZG dd� d�ZG dd� dejj�ZdS )� N)�ceil)�cached_property)�method_has_no_args)�gettext_lazyc @ � e Zd ZdS )�UnorderedObjectListWarningN��__name__�
__module__�__qualname__� r r �7/usr/lib/python3/dist-packages/django/core/paginator.pyr � r c @ r )�InvalidPageNr r r r r
r r r c @ r )�PageNotAnIntegerNr r r r r
r r r c @ r )� EmptyPageNr r r r r
r r r c @ s� e Zd Zed�Z ddd�Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
edd� �Zedd� �Z
edd� �Zdd� Zd ddd�dd�ZdS )!� Paginatoru …r Tc C s, || _ | �� t|�| _t|�| _|| _d S �N)�object_list�_check_object_list_is_ordered�int�per_page�orphans�allow_empty_first_page)�selfr r r r r r r
�__init__ s
zPaginator.__init__c c s � | j D ]}| �|�V qd S r )�
page_range�page)r �page_numberr r r
�__iter__( s �
�zPaginator.__iter__c C s� zt |t�r|�� st�t|�}W n ttfy ttd���w |dk r+ttd���|| j kr@|dkr:| j
r: |S ttd���|S )z'Validate the given 1-based page number.z"That page number is not an integer� zThat page number is less than 1zThat page contains no results)�
isinstance�float�
is_integer�
ValueErrorr � TypeErrorr �_r � num_pagesr �r �numberr r r
�validate_number, s �
�zPaginator.validate_numberc C sF z| � |�}W n ty d}Y n ty | j}Y nw | �|�S )zj
Return a valid page, even if the page argument isn't a number or isn't
in range.
r )r* r r r'