o
    ri                     @   sD   d dl Z d dlZG dd deZG dd deZG dd deZdS )    Nc                   @   s.   e Zd Zdd Zdd Zd
ddZdd	 ZdS )Unreaderc                 C   s   t  | _d S N)ioBytesIObufself r	   U/var/www/html/pca-backend/venv/lib/python3.10/site-packages/gunicorn/http/unreader.py__init__      zUnreader.__init__c                 C   s   t  r   )NotImplementedErrorr   r	   r	   r
   chunk   s   zUnreader.chunkNc                 C   s  |d urt |tstd|d ur|dkrdS |dk rd }| jdtj |d u r:| j r:| j }t	
 | _|S |d u rD|  }|S | j |k rj|  }|s]| j }t	
 | _|S | j| | j |k sK| j }t	
 | _| j||d   |d | S )Nz&size parameter must be an int or long.r       )
isinstanceint	TypeErrorr   seekosSEEK_ENDtellgetvaluer   r   r   write)r   sizeretdr   datar	   r	   r
   read   s6   





zUnreader.readc                 C   s    | j dtj | j | d S )Nr   )r   r   r   r   r   )r   r   r	   r	   r
   unread4   s   zUnreader.unreadr   )__name__
__module____qualname__r   r   r   r   r	   r	   r	   r
   r      s
    
 r   c                       s&   e Zd Zd fdd	Zdd Z  ZS )SocketUnreader    c                    s   t    || _|| _d S r   )superr   sockmxchunk)r   r%   	max_chunk	__class__r	   r
   r   :   s   

zSocketUnreader.__init__c                 C   s   | j | jS r   )r%   recvr&   r   r	   r	   r
   r   ?   r   zSocketUnreader.chunk)r#   r   r    r!   r   r   __classcell__r	   r	   r(   r
   r"   9   s    r"   c                       s$   e Zd Z fddZdd Z  ZS )IterUnreaderc                    s   t    t|| _d S r   )r$   r   iter)r   iterabler(   r	   r
   r   D   s   
zIterUnreader.__init__c                 C   s2   | j sdS zt| j W S  ty   d | _ Y dS w )Nr   )r.   nextStopIterationr   r	   r	   r
   r   H   s   zIterUnreader.chunkr+   r	   r	   r(   r
   r-   C   s    r-   )r   r   objectr   r"   r-   r	   r	   r	   r
   <module>   s
   ,
