3 \@s^dZddlZddddgZGdddejZGdddeZGd ddeZGd ddeZdS) 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. Naddbase addclosehookaddinfo addinfourlcs8eZdZdZfddZddZddZdd ZZS) 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__'/usr/lib64/python3.6/urllib/response.pyrszaddbase.__init__cCsd|jjt||jfS)Nz<%s at %r whose fp = %r>)r __name__idfile)r r r r __repr__szaddbase.__repr__cCs|jjrtd|S)NzI/O operation on closed file)r closed ValueError)r r r r __enter__szaddbase.__enter__cCs |jdS)N)close)r typevalue tracebackr r r __exit__!szaddbase.__exit__) r __module__ __qualname____doc__rrrr __classcell__r r )r r rs  cs,eZdZdZfddZfddZZS)rz*Class to add a close hook to an open file.cs tt|j|||_||_dS)N)rrr closehookhookargs)r r rr)r r r r(szaddclosehook.__init__c s>z(|j}|j}|r&d|_d|_||Wdtt|jXdS)N)rrrrr)r rr)r r r r-s zaddclosehook.close)rrrrrrrr r )r r r%s cs(eZdZdZfddZddZZS)rz.class to add an info() method to an open file.cstt|j|||_dS)N)rrrheaders)r r r )r r r r<szaddinfo.__init__cCs|jS)N)r )r r r r info@sz addinfo.info)rrrrrr!rr r )r r r9s cs2eZdZdZd fdd ZddZddZZS) rz9class to add info() and geturl() methods to an open file.Ncs"tt|j||||_||_dS)N)rrrurlcode)r r r r"r#)r r r rGszaddinfourl.__init__cCs|jS)N)r#)r r r r getcodeLszaddinfourl.getcodecCs|jS)N)r")r r r r geturlOszaddinfourl.geturl)N)rrrrrr$r%rr r )r r rDs)rZtempfile__all__Z_TemporaryFileWrapperrrrrr r r r s