a Re @sPddlmZddlmZmZddlmZddlmZ ddZ dd Z d d Z d S) )absolute_import)!MultipartInvariantViolationDefectStartBoundaryNotFoundDefect)HeaderParsingError) http_clientcCsfz |WStyYn0z|jWSty8Yn0z |jduWStyXYn0tddS)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-python39-pip-21.3.1-2.el8.x86_64/opt/alt/python39/lib/python3.9/site-packages/pip/_vendor/urllib3/util/response.py is_fp_closed s     rcCst|tjstdt|t|dd}t|dd}d}|r^|s^|}t|tt fr^|}|rpdd|D}|sx|rt ||ddS)a> Asserts whether all headers have been successfully parsed. Extracts encountered errors from the result of parsing headers. Only works on Python 3. :param http.client.HTTPMessage headers: Headers to verify. :raises urllib3.exceptions.HeaderParsingError: If parsing errors are found. z"expected httplib.Message, got {0}.defectsN get_payloadcSsg|]}t|ttfs|qSr) isinstancerr).0defectrrr Rs z)assert_header_parsing..)r unparsed_data) rhttplib HTTPMessage TypeErrorformattypegetattr is_multipartbytesstrr)headersrrrpayloadrrrassert_header_parsing(s     r#cCs$|j}t|tr|dkS|dkS)z Checks whether the request of a response has been a HEAD-request. Handles the quirks of AppEngine. :param http.client.HTTPResponse response: Response to check if the originating request used 'HEAD' as a method. HEAD)_methodrintupper)responsemethodrrris_response_to_head^s  r+N) __future__rZ email.errorsrr exceptionsrZpackages.six.movesrrrr#r+rrrrs   6