3 nf·\ ã @ s@ d dl mZ ddlmZ ddlmZ dd„ Zdd„ Zd d „ Z dS )é )Úabsolute_importé )Úhttp_client)ÚHeaderParsingErrorc C sf y| j ƒ S tk r Y nX y| jS tk r8 Y nX y | jdkS tk rX Y nX tdƒ‚dS )zt Checks whether a given file-like object is closed. :param obj: The file-like object to check. Nz)Unable to determine whether fp is closed.)ZisclosedÚAttributeErrorÚclosedÚfpÚ ValueError)Úobj© r ú/usr/lib/python3.6/response.pyÚis_fp_closed s r c C sv t | tjƒstdjt| ƒƒƒ‚t| ddƒ}t| ddƒ}d}|r^| jƒ s^|ƒ }t |tt fƒr^|}|sf|rrt ||d�‚dS )aP Asserts whether all headers have been successfully parsed. Extracts encountered errors from the result of parsing headers. Only works on Python 3. :param headers: Headers to verify. :type headers: `httplib.HTTPMessage`. :raises urllib3.exceptions.HeaderParsingError: If parsing errors are found. z"expected httplib.Message, got {0}.ÚdefectsNÚget_payload)r Ú unparsed_data)Ú isinstanceÚhttplibZHTTPMessageÚ TypeErrorÚformatÚtypeÚgetattrZis_multipartÚbytesÚstrr )Zheadersr r r Zpayloadr r r Úassert_header_parsing&