
    <6h                     J    d dl mZ d dlmZmZ ddlmZ ddlmZ	 d Z
d Zd Zy	)
    )absolute_import)!MultipartInvariantViolationDefectStartBoundaryNotFoundDefect   )HeaderParsingError)http_clientc                     	 | j                         S # t        $ r Y nw xY w	 | j                  S # t        $ r Y nw xY w	 | j                  du S # t        $ r Y t	        d      w xY w)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.)isclosedAttributeErrorclosedfp
ValueError)objs    f/var/www/panel.atabookie.online/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.pyis_fp_closedr   	   s{     ||~ zz  vv~ 
@
AAs)    	. 	::A 	A"!A"c                    t        | t        j                        s#t        dj	                  t        |                   t        | dd      }t        | dd      }d}|r/| j                         s |       }t        |t        t        f      r|}|r%|D cg c]  }t        |t        t        f      s| }}|s|rt        ||      yc c}w )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_payload)r   unparsed_data)
isinstancehttplibHTTPMessage	TypeErrorformattypegetattris_multipartbytesstrr   r   r   )headersr   r   r   payloaddefects         r   assert_header_parsingr#   (   s     gw223<CCDMRSSgy$/G'=$7KM ##%!mG'E3<0 ' "
46WX 
 
 - NN  
s   Cc                 j    | j                   }t        |t              r|dk(  S |j                         dk(  S )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)_methodr   intupper)responsemethods     r   is_response_to_headr,   ^   s4     F&#{<<>V##    N)
__future__r   email.errorsr   r   
exceptionsr   packages.six.movesr   r   r   r#   r,    r-   r   <module>r3      s#    & W + 7B>3Ol$r-   