
    ]j                     :    d dl Z d dlZd dlZd dlZ G d de      Zy)    Nc                   >   e Zd ZdZd Zd Zed        Zed        Zed        Z	ed        Z
ed        Zed	        Zed
        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zd Zd Zed        Zd Zy)_RequestObjectProxyzA wrapper around a requests.Request that gives some extra information.

    This will be important both for matching and so that when it's save into
    the request_history users will be able to access these properties.
    c                    || _         d | _        d | _        d | _        |j	                  dd       | _        |j	                  dd       | _        |j	                  dd       | _        |j	                  dd       | _        |j	                  dd       | _	        t        j                  |j	                  di             | _        |j	                  dd      | _        y )	Ntimeoutallow_redirectsverifystreamcertproxiescase_sensitiveF)_request_matcher_url_parts__qspop_timeout_allow_redirects_verify_stream_certcopydeepcopy_proxies_case_sensitive)selfrequestkwargss      ?/root/env/lib/python3.12/site-packages/requests_mock/request.py__init__z_RequestObjectProxy.__init__   s     

9d3 &

+<d Czz(D1zz(D1ZZ-
fjjB&?@  &zz*:EB    c                 L    |dv rt        |      t        | j                  |      S )N)__setstate__)AttributeErrorgetattrr   )r   names     r   __getattr__z_RequestObjectProxy.__getattr__.   s)     $$ &&t}}d++r    c                     | j                   V| j                  j                  }| j                  s|j	                         }t
        j                  j                  |      | _         | j                   S N)r   r   urlr   lowerurllibparseurlparse)r   r)   s     r   
_url_partsz_RequestObjectProxy._url_parts7   sT    #--##C''iik%||44S9Dr    c                 .    | j                   j                  S r(   )r.   schemer   s    r   r0   z_RequestObjectProxy.schemeC       %%%r    c                 .    | j                   j                  S r(   )r.   netlocr1   s    r   r4   z_RequestObjectProxy.netlocG   r2   r    c                 ^    	 | j                   j                  d      d   S # t        $ r Y yw xY w)N:r    )r4   split
IndexErrorr1   s    r   hostnamez_RequestObjectProxy.hostnameK   s3    	;;$$S)!,, 		s     	,,c                     | j                   j                  d      }	 t        |d         S # t        t        f$ r Y nw xY w| j
                  dk(  ry| j
                  dk(  ryy)Nr6      httpsi  httpP   r   )r4   r8   intr9   
ValueErrorr0   )r   
componentss     r   portz_RequestObjectProxy.portR   sf    [[&&s+
	z!}%%J' 		 ;;'!;;& 
 s   + ==c                 .    | j                   j                  S r(   )r.   pathr1   s    r   rE   z_RequestObjectProxy.pathe   s    ###r    c                 .    | j                   j                  S r(   )r.   queryr1   s    r   rG   z_RequestObjectProxy.queryi   s    $$$r    c                     | j                   0t        j                  j                  | j                  d      | _         | j                   S )NT)keep_blank_values)r   r+   r,   parse_qsrG   r1   s    r   qsz_RequestObjectProxy.qsm   s<    88||,,TZZ?C - EDH xxr    c                     | j                   S r(   )r   r1   s    r   r   z_RequestObjectProxy.timeoutu       }}r    c                     | j                   S r(   )r   r1   s    r   r   z#_RequestObjectProxy.allow_redirectsy   s    $$$r    c                     | j                   S r(   )r   r1   s    r   r   z_RequestObjectProxy.verify}       ||r    c                     | j                   S r(   )r   r1   s    r   r	   z_RequestObjectProxy.stream   rP   r    c                     | j                   S r(   )r   r1   s    r   r
   z_RequestObjectProxy.cert   s    zzr    c                     | j                   S r(   )r   r1   s    r   r   z_RequestObjectProxy.proxies   rM   r    c                 T     | t        j                  |i |j                               S r(   )requestsRequestprepare)clsargsr   s      r   _createz_RequestObjectProxy._create   s&    8##T4V4<<>??r    c                 `    | j                   }t        |t              r|j                  d      }|S )Nzutf-8)body
isinstancebytesdecode)r   r\   s     r   textz_RequestObjectProxy.text   s(    yydE";;w'Dr    c                 B    t        j                  | j                  fi |S r(   )jsonloadsr`   )r   r   s     r   rb   z_RequestObjectProxy.json   s    zz$)).v..r    c                 D    | j                   j                         }d |d<   |S )Nr   )__dict__r   )r   ds     r   __getstate__z _RequestObjectProxy.__getstate__   s"    MM *r    c                 <    | j                   y| j                         S )a  The matcher that this request was handled by.

        The matcher object is handled by a weakref. It will return the matcher
        object if it is still available - so if the mock is still in place. If
        the matcher is not available it will return None.
        N)r   r1   s    r   matcherz_RequestObjectProxy.matcher   s     == }}r    c                 8    dj                  | j                        S )Nz{0.method} {0.url})formatr   r1   s    r   __str__z_RequestObjectProxy.__str__   s    #**4==99r    N)__name__
__module____qualname____doc__r   r&   propertyr.   r0   r4   r:   rC   rE   rG   rK   r   r   r   r	   r
   r   classmethodrZ   r`   rb   rg   ri   rl    r    r   r   r      sw   C&, 	  	  & & & &    $ $ $ % %     % %         @ @  /  :r    r   )r   rb   urllib.parser+   rU   objectr   rs   r    r   <module>rv      s!       ^:& ^:r    