U .e @ s@ d dl mZ ddlmZ ddlmZ dd Zdd Zd d Z dS ) )absolute_import )http_client)HeaderParsingErrorc C sl z | W S tk r Y nX z| jW S tk r< Y nX z| jdkW S tk r^ Y nX tddS )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.)ZisclosedAttributeErrorclosedfp ValueError)obj r E/usr/lib/python3.8/site-packages/pip/_vendor/urllib3/util/response.pyis_fp_closed s r c C sv t | tjstdt| t| dd}t| dd}d}|r^| s^| }t |tt fr^|}|sf|rrt ||ddS )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}.defectsNget_payload)r unparsed_data) isinstancehttplibZHTTPMessage TypeErrorformattypegetattrZis_multipartbytesstrr )Zheadersr r r Zpayloadr r r assert_header_parsing&