B ` @sPddlmZddlmZmZddlmZddlmZ ddZ dd Z d d Z d S) )absolute_import)!MultipartInvariantViolationDefectStartBoundaryNotFoundDefect)HeaderParsingError) http_clientcCsfy|Stk rYnXy|jStk r8YnXy |jdkStk rXYnXtddS)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)objr F/opt/alt/python37/lib/python3.7/site-packages/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).0defectr r r Ssz)assert_header_parsing..)r unparsed_data) rhttplibZ HTTPMessage TypeErrorformattypegetattr is_multipartbytesstrr)headersrrrpayloadr r rassert_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. ZHEAD)_methodrintupper)responsemethodr r ris_response_to_head^s  r(N) __future__rZ email.errorsrr exceptionsrZpackages.six.movesrrrr!r(r r r rs   6