File: //opt/alt/python35/lib64/python3.5/urllib/__pycache__/response.cpython-35.pyc
��Yf�  �               @   s�   d  Z  d d l Z d d d d g Z Gd d �  d e j � Z Gd d �  d e � Z Gd	 d �  d e � Z Gd
 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                   sL   e  Z d  Z d Z �  f d d �  Z d d �  Z d d �  Z d d	 �  Z �  S)
r   zOBase class for addinfo and addclosehook. Is a good idea for garbage collection.c                s,   t  t |  � j | d d d �| |  _ d  S)Nz<urllib response>ZdeleteF)�superr   �__init__�fp)�selfr   )�	__class__� �4/opt/alt/python35/lib64/python3.5/urllib/response.pyr      s    zaddbase.__init__c             C   s    d |  j  j t |  � |  j f S)Nz<%s at %r whose fp = %r>)r
   �__name__�id�file)r	   r   r   r   �__repr__   s    zaddbase.__repr__c             C   s   |  j  j r t d � � |  S)NzI/O operation on closed file)r   �closed�
ValueError)r	   r   r   r   �	__enter__   s    zaddbase.__enter__c             C   s   |  j  �  d  S)N)�close)r	   �type�value�	tracebackr   r   r   �__exit__!   s    zaddbase.__exit__)r
   �
__module__�__qualname__�__doc__r   r   r   r   r   r   )r
   r   r      s
   c                   s:   e  Z d  Z d Z �  f d d �  Z �  f d d �  Z �  S)r   z*Class to add a close hook to an open file.c                s,   t  t |  � j | � | |  _ | |  _ d  S)N)r   r   r   �	closehook�hookargs)r	   r   r   r   )r
   r   r   r   (   s    	zaddclosehook.__init__c                sS   z8 |  j  } |  j } | r7 d  |  _  d  |  _ | | �  Wd  t t |  � j �  Xd  S)N)r   r   r   r   r   )r	   r   r   )r
   r   r   r   -   s    				zaddclosehook.close)r
   r   r   r   r   r   r   r   )r
   r   r   %   s   c                   s4   e  Z d  Z d Z �  f d d �  Z d d �  Z �  S)r   z.class to add an info() method to an open file.c                s#   t  t |  � j | � | |  _ d  S)N)r   r   r   �headers)r	   r   r   )r
   r   r   r   <