o d @sPddlmZddlmZmZddlmZddlmZ ddZ dd Z d d Z d S) )absolute_import)!MultipartInvariantViolationDefectStartBoundaryNotFoundDefect)HeaderParsingError) http_clientcCs`z|WStyYnwz|jWStyYnwz|jduWSty/Ytdw)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)objrp/private/var/folders/v1/_jykv66s6qd26_69j1njbrl80000gr/T/pip-target-p1gutpg6/lib/python/urllib3/util/response.py is_fp_closed s      rcCst|tjstdt|t|dd}t|dd}d}|r/|s/|}t|tt fr/|}|r8dd|D}|s<|rBt ||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 Rsz)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