
    Rh9	                         d Z ddlZg dZ G d dej                        Z G d de      Z G d d	e      Z G d
 de      Zy)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                   4     e Zd ZdZ fdZd Zd Zd Z xZS )r   zOBase class for addinfo and addclosehook. Is a good idea for garbage collection.c                 @    t         t        |   |dd       || _        y )Nz<urllib response>F)delete)superr   __init__fp)selfr   	__class__s     &/usr/lib/python3.12/urllib/response.pyr   zaddbase.__init__   s!    g&r+>u&M    c                 h    d| j                   j                  dt        |       d| j                  dS )N<z at z whose fp = >)r   __name__idfiler   s    r   __repr__zaddbase.__repr__   s(    -1^^-D-D-/XtyyB 	Br   c                 H    | j                   j                  rt        d      | S )NzI/O operation on closed file)r   closed
ValueErrorr   s    r   	__enter__zaddbase.__enter__   s    77>>;<<r   c                 $    | j                          y N)close)r   typevalue	tracebacks       r   __exit__zaddbase.__exit__!   s    

r   )	r   
__module____qualname____doc__r   r   r   r#   __classcell__r   s   @r   r   r      s    Y
B
r   r   c                   ,     e Zd ZdZ fdZ fdZ xZS )r   z*Class to add a close hook to an open file.c                 H    t         t        |   |       || _        || _        y r   )r
   r   r   	closehookhookargs)r   r   r+   r,   r   s       r   r   zaddclosehook.__init__(   s     lD*2." r   c                     	 | j                   }| j                  }|rd | _         d | _         ||  t        t        |           y # t        t        |           w xY wr   )r+   r,   r
   r   r   )r   r+   r,   r   s      r   r   zaddclosehook.close-   sN    	.I}}H!% $8$,+-E,+-s   -A A)r   r$   r%   r&   r   r   r'   r(   s   @r   r   r   %   s    4!
	. 	.r   r   c                   (     e Zd ZdZ fdZd Z xZS )r   z.class to add an info() method to an open file.c                 :    t         t        |   |       || _        y r   )r
   r   r   headers)r   r   r0   r   s      r   r   zaddinfo.__init__<   s    gt%b)r   c                     | j                   S r   )r0   r   s    r   infozaddinfo.info@   s    ||r   )r   r$   r%   r&   r   r2   r'   r(   s   @r   r   r   9   s    8r   r   c                   @     e Zd ZdZd fd	Zed        Zd Zd Z xZ	S )r   z9class to add info() and geturl() methods to an open file.c                 J    t         t        |   ||       || _        || _        y r   )r
   r   r   urlcode)r   r   r0   r5   r6   r   s        r   r   zaddinfourl.__init__G   s"    j$(W5	r   c                     | j                   S r   r6   r   s    r   statuszaddinfourl.statusL   s    yyr   c                     | j                   S r   r8   r   s    r   getcodezaddinfourl.getcodeP   s    yyr   c                     | j                   S r   )r5   r   s    r   geturlzaddinfourl.geturlS   s    xxr   r   )
r   r$   r%   r&   r   propertyr9   r;   r=   r'   r(   s   @r   r   r   D   s)    C
  r   r   )r&   tempfile__all___TemporaryFileWrapperr   r   r   r    r   r   <module>rC      sJ    
>h,, ..7 .(g  r   