
    Ci$                         S r SSKJr  SrSr " S S5      r " S S\5      r " S	 S
\5      rS r " S S\5      r	 " S S5      r
g)zBuffers
    BytesIOi   i    c                   d    \ rS rSrSrSS jrS rS r\rS r	SS jr
SS	 jrS
 rS rS rS rSrg)FileBasedBuffer   r   Nc                 b   Xl         Ub  UR                  5       nUR                  5       nUR                  S5         UR	                  [
        5      nU(       d  OUR                  U5        M0  [        UR                  5       U-
  5      U l        UR                  U5        UR                  U5        g g Nr   )	filegetfiletellseekread
COPY_BYTESwriteintremain)selfr
   from_buffer	from_fileread_posdatas         b/var/www/html/backend/Backoffice_Marketplace/venv/lib/python3.13/site-packages/waitress/buffers.py__init__FileBasedBuffer.__init__   s    	"#++-I ~~'HNN1 ~~j1

4 	 
 diikH45DKNN8$IIh #    c                     U R                   $ N)r   r   s    r   __len__FileBasedBuffer.__len__,   s    {{r   c                     g)NT r   s    r   __nonzero__FileBasedBuffer.__nonzero__/   s    r   c                     U R                   nUR                  5       nUR                  SS5        UR                  U5        UR                  U5        U R                  [        U5      -   U l        g Nr      )r
   r   r   r   r   len)r   sr
   r   s       r   appendFileBasedBuffer.append4   sN    yy99;		!Q

1		(kkCF*r   c                    U R                   nU(       d  UR                  5       nUS:  a  UR                  5       nOUR                  U5      nU(       a   U =R                  [	        U5      -  sl        U$ UR                  W5        U$ r	   )r
   r   r   r   r(   r   r   numbytesskipr
   r   ress         r   getFileBasedBuffer.get<   sh    yyyy{Ha<))+C))H%CKK3s8#K 
 IIh
r   c                     U R                   U:  a  [        SXR                   4-  5      eU R                  R                  US5        U R                   U-
  U l         g )Nz)Can't skip %d bytes in buffer of %d bytes   )r   
ValueErrorr
   r   )r   r.   allow_prunes      r   r/   FileBasedBuffer.skipK   sN    ;;!;x>UU  			x#kkH,r   c                     [        5       er   NotImplementedErrorr   s    r   newfileFileBasedBuffer.newfileS   s    !##r   c                 ^   U R                   nU R                  S:X  aJ  UR                  5       nUR                  SS5        UR                  5       nUR                  U5        US:X  a  g U R	                  5       n UR                  [        5      nU(       d  OUR                  U5        M0  X@l         g r&   )r
   r   r   r   r;   r   r   r   )r   r
   r   sznfr   s         r   pruneFileBasedBuffer.pruneV   s    yy;;!yy{HIIaOBIIhQw\\^99Z(DHHTN	 
 	r   c                     U R                   $ r   r
   r   s    r   r   FileBasedBuffer.getfileh   s    yyr   c                 |    [        U R                  S5      (       a  U R                  R                  5         SU l        g )Ncloser   )hasattrr
   rF   r   r   s    r   rF   FileBasedBuffer.closek   s(    499g&&IIOOr   )r
   r   r   F)r   )__name__
__module____qualname____firstlineno__r   r   r   r#   __bool__r*   r1   r/   r;   r@   r   rF   __static_attributes__r"   r   r   r   r      s@    F  H+-$$r   r   c                   $    \ rS rSrSS jrS rSrg)TempfileBasedBufferq   Nc                 L    [         R                  X R                  5       U5        g r   )r   r   r;   r   r   s     r   r   TempfileBasedBuffer.__init__r   s      ||~{Cr   c                     SSK Jn  U" S5      $ )Nr   )TemporaryFilezw+b)tempfilerX   )r   rX   s     r   r;   TempfileBasedBuffer.newfileu   s    *U##r   r"   r   rK   rL   rM   rN   r   r;   rP   r"   r   r   rR   rR   q   s    D$r   rR   c                   $    \ rS rSrSS jrS rSrg)BytesIOBasedBuffer{   Nc                 h    Ub   [         R                  U [        5       U5        g [        5       U l        g r   )r   r   r   r
   rU   s     r   r   BytesIOBasedBuffer.__init__|   s'    "$$T79kB  	DIr   c                     [        5       $ r   r   r   s    r   r;   BytesIOBasedBuffer.newfile   s
    yr   rC   r   r[   r"   r   r   r]   r]   {   s    "r   r]   c                     [        U S5      (       a  U R                  5       $ [        U S5      =(       a    [        U S5      $ )Nseekabler   r   )rG   rd   )fps    r   _is_seekablerf      s4    r:{{}2v672v#66r   c                   H    \ rS rSrS
S jrSS jrSS jrS rS r\r	S r
S	rg)ReadOnlyFileBasedBuffer   c                 *   Xl         X l        [        U R                   5      (       am  [        U R                   S5      (       a  U R                   R                  U l        U R                   R
                  U l        U R                   R                  U l        g g )Nrd   )r
   
block_sizerf   rG   rd   r   r   )r   r
   rk   s      r   r    ReadOnlyFileBasedBuffer.__init__   sb    	$
 		""tyy*-- $		 2 2		DI		DI #r   Nc                 v   [        U R                  5      (       a  U R                  R                  5       nU R                  R                  SS5        U R                  R                  5       nU R                  R                  U5        X2-
  nUc  X@l        U R                  $ [        XA5      U l        U R                  $ r&   )rf   r
   r   r   r   min)r   size	start_posend_posfsizes        r   prepareReadOnlyFileBasedBuffer.prepare   s    		""		(IIINN1a iinn&GIINN9%'E|# {{ "%.{{r   c                     US:X  d  XR                   :  a  U R                   nU R                  nU(       d  UR                  5       nUR                  U5      nU(       a   U =R                   [	        U5      -  sl         U$ UR                  W5        U$ )NrJ   )r   r
   r   r   r(   r   r-   s         r   r1   ReadOnlyFileBasedBuffer.get   so    r>X3{{Hyyyy{Hii!KK3s8#K 
 IIh
r   c                     U $ r   r"   r   s    r   __iter__ ReadOnlyFileBasedBuffer.__iter__   s    r   c                 j    U R                   R                  U R                  5      nU(       d  [        eU$ r   )r
   r   rk   StopIteration)r   vals     r   nextReadOnlyFileBasedBuffer.next   s&    iinnT__-
r   c                     [         er   r9   )r   r)   s     r   r*   ReadOnlyFileBasedBuffer.append   s    !!r   )rk   r
   r   r   rd   r   )i   r   rI   )rK   rL   rM   rN   r   rs   r1   rx   r}   __next__r*   rP   r"   r   r   rh   rh      s'    ' H"r   rh   c                   x    \ rS rSrSrSrSrSrS rS r	S r
\
rS	 rS
 rS rS rSS jrSS jrS rS rS rSrg)OverflowableBuffer   z
This buffer implementation has four stages:
- No data
- Bytes-based buffer
- BytesIO-based buffer
- Temporary file storage
The first two stages are fastest for simple transfers.
FNr   c                     Xl         g r   )overflow)r   r   s     r   r   OverflowableBuffer.__init__   s     r   c                 t    U R                   nUb  UR                  5       $ U R                  R                  5       $ r   )bufr   strbufr   r   s     r   r   OverflowableBuffer.__len__   s1    hh? ;;= ;;&&((r   c                 (    U R                  5       S:  $ r	   )r   r   s    r   r#   OverflowableBuffer.__nonzero__   s     ||~!!r   c                     U R                   n[        U5      U R                  :  a  U R                  5         OU R	                  5         U R
                  nU(       a"  UR                  U R                   5        SU l         U$ Nr   )r   r(   r   _set_large_buffer_set_small_bufferr   r*   )r   r   r   s      r   _create_buffer!OverflowableBuffer._create_buffer   s[    v;$--'""$""$hhJJt{{#DK
r   c                     U R                   n[        U5      U l         [        US5      (       a  UR                  5         SU l        g )NrF   F)r   r]   rG   rF   
overflowedr   oldbufs     r   r   $OverflowableBuffer._set_small_buffer   s6    %f- 67##LLNr   c                     U R                   n[        U5      U l         [        US5      (       a  UR                  5         SU l        g )NrF   T)r   rR   rG   rF   r   r   s     r   r   $OverflowableBuffer._set_large_buffer   s6    &v. 67##LLNr   c                 R   U R                   nUcE  U R                  n[        U5      [        U5      -   [        :  a
  X1-   U l        g U R	                  5       nUR                  U5        UR                  5       nU R                  (       d!  X@R                  :  a  U R                  5         g g g r   )
r   r   r(   STRBUF_LIMITr   r*   r   r   r   r   )r   r)   r   r   r>   s        r   r*   OverflowableBuffer.append
  s    hh;[[F6{SV#l2$j%%'C

1 [[]]]"&&( # r   c                     U R                   nUc%  U R                  nU(       d  U$ U R                  5       nUR                  X5      $ r   )r   r   r   r1   )r   r.   r/   r   r   s        r   r1   OverflowableBuffer.get  s>    hh;[[F%%'Cwwx&&r   c                     U R                   nUc8  U(       a!  U[        U R                  5      :X  a  SU l        g U R                  5       nUR	                  X5        g r   )r   r(   r   r   r/   )r   r.   r6   r   s       r   r/   OverflowableBuffer.skip#  sI    hh;x3t{{+;; "%%'C'r   c                     U R                   nUc  SU l        gUR                  5         U R                  (       a1  UR	                  5       nX R
                  :  a  U R                  5         ggg)z\
A potentially expensive operation that removes all data
already retrieved from the buffer.
Nr   )r   r   r@   r   r   r   r   )r   r   r>   s      r   r@   OverflowableBuffer.prune/  sY    
 hh;DK		?? BMM!&&( "	 r   c                 `    U R                   nUc  U R                  5       nUR                  5       $ r   )r   r   r   r   s     r   r   OverflowableBuffer.getfileA  s*    hh;%%'C{{}r   c                 D    U R                   nUb  UR                  5         g g r   )r   rF   r   s     r   rF   OverflowableBuffer.closeG  s    hh?IIK r   )r   r   r   r   rI   )F)rK   rL   rM   rN   __doc__r   r   r   r   r   r#   rO   r   r   r   r*   r1   r/   r@   r   rF   rP   r"   r   r   r   r      s[     J
CF!)"
 H
 ) '
()$r   r   N)r   ior   r   r   r   rR   r]   rf   rh   r   r"   r   r   <module>r      s^     
 U Up$/ $	 	78"o 8"vB Br   