
    F\h9	                         S r SSKr/ SQr " S S\R                  5      r " S S\5      r " S S	\5      r " S
 S\5      rg)a  Response classes used by urllib.

The base class, addbase, defines a minimal file-like interface,
including read() and readline().  The typical response object is an
addinfourl instance, which defines an info() method that returns
headers and a geturl() method that returns the url.
    N)addbaseaddclosehookaddinfo
addinfourlc                   >   ^  \ rS rSrSrU 4S jrS rS rS rSr	U =r
$ )r      zOBase class for addinfo and addclosehook. Is a good idea for garbage collection.c                 8   > [         [        U ]  USSS9  Xl        g )Nz<urllib response>F)delete)superr   __init__fp)selfr   	__class__s     &/usr/lib/python3.13/urllib/response.pyr   addbase.__init__   s    g&r+>u&M    c                 n    SU R                   R                  < S[        U 5      < SU R                  < S3$ )N<z at z whose fp = >)r   __name__idfiler   s    r   __repr__addbase.__repr__   s(    -1^^-D-D-/XtyyB 	Br   c                 R    U R                   R                  (       a  [        S5      eU $ )NzI/O operation on closed file)r   closed
ValueErrorr   s    r   	__enter__addbase.__enter__   s    77>>;<<r   c                 $    U R                  5         g N)close)r   typevalue	tracebacks       r   __exit__addbase.__exit__!   s    

r   )r   )r   
__module____qualname____firstlineno____doc__r   r   r   r'   __static_attributes____classcell__r   s   @r   r   r      s     Y
B
 r   r   c                   8   ^  \ rS rSrSrU 4S jrU 4S jrSrU =r$ )r   %   z*Class to add a close hook to an open file.c                 D   > [         [        U ]  U5        X l        X0l        g r"   )r   r   r   	closehookhookargs)r   r   r3   r4   r   s       r   r   addclosehook.__init__(   s    lD*2." r   c                    >  U R                   nU R                  nU(       a  S U l         S U l        U" U6   [        [        U ]  5         g ! [        [        U ]  5         f = fr"   )r3   r4   r   r   r#   )r   r3   r4   r   s      r   r#   addclosehook.close-   sN    	.I}}H!% $8$,+-E,+-s   2A A)r3   r4   )	r   r)   r*   r+   r,   r   r#   r-   r.   r/   s   @r   r   r   %   s    4!
	. 	.r   r   c                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )r   9   z.class to add an info() method to an open file.c                 8   > [         [        U ]  U5        X l        g r"   )r   r   r   headers)r   r   r;   r   s      r   r   addinfo.__init__<   s    gt%b)r   c                     U R                   $ r"   r;   r   s    r   infoaddinfo.info@   s    ||r   r>   )	r   r)   r*   r+   r,   r   r?   r-   r.   r/   s   @r   r   r   9   s    8 r   r   c                   L   ^  \ rS rSrSrSU 4S jjr\S 5       rS rS r	Sr
U =r$ )	r   D   z9class to add info() and geturl() methods to an open file.c                 D   > [         [        U ]  X5        X0l        X@l        g r"   )r   r   r   urlcode)r   r   r;   rD   rE   r   s        r   r   addinfourl.__init__G   s    j$(5	r   c                     U R                   $ r"   rE   r   s    r   statusaddinfourl.statusL   s    yyr   c                     U R                   $ r"   rH   r   s    r   getcodeaddinfourl.getcodeP   s    yyr   c                     U R                   $ r"   )rD   r   s    r   geturladdinfourl.geturlS   s    xxr   )rE   rD   r"   )r   r)   r*   r+   r,   r   propertyrI   rL   rO   r-   r.   r/   s   @r   r   r   D   s.    C
   r   r   )r,   tempfile__all___TemporaryFileWrapperr   r   r   r    r   r   <module>rV      sJ    
>h,, ..7 .(g  r   