
    g.                    R    d dl mZ d dlmZ d dlmZmZ ddlm	Z	 dd
Z
ddZddZdS )    )annotationsN)!MultipartInvariantViolationDefectStartBoundaryNotFoundDefect   )HeaderParsingErrorobjobjectreturnboolc                    	 |                                  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 nw xY wt	          d          )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)r   s    Q/var/www/html/4nations/venv/lib/python3.11/site-packages/urllib3/util/response.pyis_fp_closedr   	   s     ||~~   z    v~    @
A
AAs)    
##. 
;;A 
AAheadershttplib.HTTPMessageNonec                V   t          | t          j                  s t          dt	          |            d          d}|                                 s2|                                 }t          |t          t          f          r|}d | j	        D             }|s|rt          ||          dS )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 .Nc                J    g | ] }t          |t          t          f          |!S  )
isinstancer   r   ).0defects     r   
<listcomp>z)assert_header_parsing.<locals>.<listcomp>O   sD       02ST
 
      )defectsunparsed_data)r   httplibHTTPMessage	TypeErrortypeis_multipartget_payloadbytesstrr    r   )r   r!   payloadr    s       r   assert_header_parsingr+   (   s     gw233 KIgIIIJJJM !! $%%''gs|,, 	$#M o  G  O- O NNNNO Or   responsehttplib.HTTPResponsec                @    | j         }|                                dk    S )z
    Checks whether the request of a response has been a HEAD-request.

    :param http.client.HTTPResponse response:
        Response to check if the originating request
        used 'HEAD' as a method.
    HEAD)_methodupper)r,   
method_strs     r   is_response_to_headr3   [   s#     !J''r   )r   r	   r
   r   )r   r   r
   r   )r,   r-   r
   r   )
__future__r   http.clientclientr"   email.errorsr   r   
exceptionsr   r   r+   r3   r   r   r   <module>r9      s    " " " " " "       W W W W W W W W + + + + + +B B B B>0O 0O 0O 0Of
( 
( 
( 
( 
( 
(r   