a XC?h9 �@sZdZddlZgd�ZGdd�dej�ZGdd�de�ZGdd �d e�ZGd d �d e�ZdS) aResponse 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� addinfourlcs8eZdZdZ�fdd�Zdd�Zdd�Zdd �Z�ZS) rzOBase class for addinfo and addclosehook. Is a good idea for garbage collection.cs tt|�j|ddd�||_dS)NzF)�delete)�superr�__init__�fp)�selfr �� __class__��4/opt/alt/python39/lib64/python3.9/urllib/response.pyrszaddbase.__init__cCsd|jjt|�|jfS)Nz<%s at %r whose fp = %r>)r �__name__�id�file�r r r r�__repr__s �zaddbase.__repr__cCs|jjrtd��|S)NzI/O operation on closed file)r �closed� ValueErrorrr r r� __enter__szaddbase.__enter__cCs |��dS�N)�close)r �type�value� tracebackr r r�__exit__!szaddbase.__exit__) r� __module__� __qualname__�__doc__rrrr� __classcell__r r r rrs  rcs,eZdZdZ�fdd�Z�fdd�Z�ZS)rz*Class to add a close hook to an open file.cs tt|��|�||_||_dSr)rrr� closehook�hookargs)r r r!r"r r rr(szaddclosehook.__init__c sLz6|j}|j}|r&d|_d|_||�Wtt|���ntt|���0dSr)r!r"rrr)r r!r"r r rr-s zaddclosehook.close)rrrrrrr r r r rr%s rcs(eZdZdZ�fdd�Zdd�Z�ZS)rz.class to add an info() method to an open file.cstt|��|�||_dSr)rrr�headers)r r r#r r rr<szaddinfo.__init__cCs|jSr)r#rr r r�info@sz addinfo.info)rrrrrr$r r r r rr9s rcs>eZdZdZd �fdd� Zedd��Zdd�Zd d �Z�Z S) rz9class to add info() and geturl() methods to an open file.Ncs"tt|��||�||_||_dSr)rrr�url�code)r r r#r%r&r r rrGszaddinfourl.__init__cCs|jSr�r&rr r r�statusLszaddinfourl.statuscCs|jSrr'rr r r�getcodePszaddinfourl.getcodecCs|jSr)r%rr r r�geturlSszaddinfourl.geturl)N) rrrrr�propertyr(r)r*r r r r rrDs  r)rZtempfile�__all__Z_TemporaryFileWrapperrrrrr r r r�s