t_ @sXddlmZddlmZddlmZddZddZd d Z d S) )absolute_import) http_client)HeaderParsingErrorcCsyy|jSWntk r"YnXy |jSWntk rBYnXy|jdkSWntk rhYnXtddS)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.)isclosedAttributeErrorclosedfp ValueError)objr /builddir/build/BUILDROOT/alt-python35-pip-20.2.4-1.el7.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/urllib3/util/response.py is_fp_closeds    rcCst|tjs-tdjt|t|dd}t|dd}d}|r|js|}t|tt fr|}|s|rt d|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 unparsed_data) isinstancehttplib HTTPMessage TypeErrorformattypegetattr is_multipartbytesstrr)headersrrrpayloadr r r assert_header_parsing&s   rcCs2|j}t|tr"|dkS|jdkS)z Checks whether the request of a response has been a HEAD-request. Handles the quirks of AppEngine. :param conn: :type conn: :class:`httplib.HTTPResponse` HEAD)_methodrintupper)responsemethodr r r is_response_to_headJs  r&N) __future__rZpackages.six.movesrr exceptionsrrrr&r r r r s   $