
    d9	                         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dS )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                 l    t          t          |                               |dd           || _        d S )Nz<urllib response>F)delete)superr   __init__fp)selfr   	__class__s     !  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/urllib/response.pyr   zaddbase.__init__   s4    g&&r+>u&MMM    c                 R    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__   s3     -1^-D-D-D-/XXXXtyyyB 	Br   c                 <    | j         j        rt          d          | S )NzI/O operation on closed file)r   closed
ValueErrorr   s    r   	__enter__zaddbase.__enter__   s"    7> 	=;<<<r   c                 .    |                                   d S 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      sn        YY    
B B 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                 t    t          t          |                               |           || _        || _        d S r   )r
   r   r   	closehookhookargs)r   r   r+   r,   r   s       r   r   zaddclosehook.__init__(   s3    lD!!**2..." r   c                     	 | j         }| j        }|rd | _         d | _         ||  t          t          |                                            d S # t          t          |                                            w xY wr   )r+   r,   r
   r   r   )r   r+   r,   r   s      r   r   zaddclosehook.close-   s}    	.I}H %!% $	8$$,%%++-----E,%%++----s   #A )A8)r   r$   r%   r&   r   r   r'   r(   s   @r   r   r   %   sW        4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                 f    t          t          |                               |           || _        d S 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   sM        88          r   r   c                   F     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.Nc                 v    t          t          |                               ||           || _        || _        d S r   )r
   r   r   urlcode)r   r   r0   r5   r6   r   s        r   r   zaddinfourl.__init__G   s5    j$((W555			r   c                     | j         S r   r6   r   s    r   statuszaddinfourl.statusL   s
    yr   c                     | j         S r   r8   r   s    r   getcodezaddinfourl.getcodeP   s
    yr   c                     | j         S r   )r5   r   s    r   geturlzaddinfourl.geturlS   s	    xr   r   )
r   r$   r%   r&   r   propertyr9   r;   r=   r'   r(   s   @r   r   r   D   s|        CC     
   X        r   r   )r&   tempfile__all___TemporaryFileWrapperr   r   r   r    r   r   <module>rC      s     
>
>
>    h,   .. . . . .7 . . .(    g            r   