
    BTh                        U d dl Z d dlZd dlZd dlZd dlmZ ddlmZ eD  ch c]  }  e	| j                  d             c} Zee   ed<    ej                  e      Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd#dZd Zd Z ed      Z edd      Z  edd      ef ed      d f ed      efd ejB                  jD                  ffZ#d Z$d Z%d  Z&d! Z'd" Z(yc c} w )$    N)	hexdigits   )	read_bodyascii_HEXDIG_CODE_POINTSc                 ~    | j                   |j                   k7  r$t        | j                    d|j                          y Nz != )methodAssertionErrorr1r2s     ^/var/www/catia.catastroantioquia-mas.com/valormas/lib/python3.12/site-packages/vcr/matchers.pyr
   r
      5    	yyBII		{$ryyk:;;     c                 ~    | j                   |j                   k7  r$t        | j                    d|j                          y r	   )urir   r   s     r   r   r      s5    	vvxtBFF8455 r   c                 ~    | j                   |j                   k7  r$t        | j                    d|j                          y r	   )hostr   r   s     r   r   r      5    	ww"''yRWWI677 r   c                 ~    | j                   |j                   k7  r$t        | j                    d|j                          y r	   )schemer   r   s     r   r   r      r   r   c                 ~    | j                   |j                   k7  r$t        | j                    d|j                          y r	   )portr   r   s     r   r   r   "   r   r   c                 ~    | j                   |j                   k7  r$t        | j                    d|j                          y r	   )pathr   r   s     r   r   r   '   r   r   c                 ~    | j                   |j                   k7  r$t        | j                    d|j                          y r	   )queryr   r   s     r   r   r   ,   s5    	xx288zbhhZ899 r   c                 >    t        |       t        |      k7  rt        y N)r   r   r   s     r   raw_bodyr!   1   s    }	"% &r   c                     t        t        |             }|t        t        |            k7  rg }t        |       }t        |      }|D ]  } ||      } ||      } ||k7  rt        y r    )list_get_transformersr   r   )r   r   transformersb1b2	transforms         r   bodyr)   6   sq    )"-.Lt-b122	2B	2B! 	r]r] 
Rx r   c                 ~    | j                   |j                   k7  r$t        | j                    d|j                          y r	   )headersr   r   s     r   r+   r+   E   s5    	zzRZZ

|4

|<==  r   c                       fd}|S )Nc                     | j                  d      }t        |t              r|j                  d      }|j	                         v S )N utf-8)get
isinstancebytesdecodelower)r+   _headerheadervalues     r   checkerz _header_checker.<locals>.checkerK   s<    ++fb)gu%nnW-G''r    )r7   r6   r8   s   `` r   _header_checkerr:   J   s    ( Nr   c                    t        | t              r| j                  d      } nt        | t              rt	        |       } nt        | d      rt        |       } | rt        | d   t              r!dj                  |       j                  d      } nat        | d   t              rdj                  |       } n<t        | d   t              rt	        |       } nt        dt        | d          d      d } t        | t              s| S d}t        |       }g }d}	 t        ||      D ]  }| |   t        vs n dk(  s| ||t        |      z    |k7  r|dk(  r| S t        d	      t        | || d
      }|dk(  rdj                  |      S |t        |      z   }||z   }| ||t        |      z    |k7  rt        d	      | || }	|j                  |	       |t        |      z   })Nr/   __iter__r   r.   r   zBody chunk type z not supporteds   
zMalformed chunked data   )r1   strencode	bytearrayr2   hasattrr#   joinint
ValueErrortypelenranger   append)
r)   	CHUNK_GAPBODY_LENchunksposi
size_byteschunk_data_firstchunk_data_after_last
chunk_datas
             r   _dechunkrR   T   s   ${{7#	D)	$T{	z	"Dz$q'3'--g6DGU+xx~DGS)T{ #3DaM?.!QRRDdE" IIHFC
sH% 	AAw11	 6T!a#i.01Y>ax566c!b)
?88F##s9~- 0: =%(=I(NOS\\566*+@A
j!#c)n4/ r   c                 2    | rt        j                  |       S y r    )jsonloadsr)   s    r   _transform_jsonrW      s    zz$ r   ztext/xmlxmlrpcz
User-Agent)r6   chunkedzTransfer-Encodingz!application/x-www-form-urlencodedc                 ^    t         j                  j                  | j                  d            S )Nr   )urllibparseparse_qsr3   rV   s    r   <lambda>r^      s    V\\**4;;w+?@ r   zapplication/jsonc                 2    t        |       xr t        |       S r    )_xml_header_checker_xmlrpc_header_checker)requests    r   r^   r^      s    (1U6LW6U r   c              #   V   K   t         D ]  \  }} || j                        s|  y wr    )_checker_transformer_pairsr+   )rb   r8   transformers      r   r$   r$      s,      : 7??#s   ))c                 ~    t        | ||      \  }}|rt        j                  d|  d| d|        t        |      dk(  S )Nz	Requests z and z differ.
Failure details:
r   )get_matchers_resultslogdebugrF   )r   r   matchers	successesfailuress        r   requests_matchrm      sG    .r2x@Ix		IbTrd*FxjQRx=Ar   c                 r    d}	  | | }|dn|}||fS # t         $ r}d}t        |      }Y d}~||fS d}~ww xY w)a  
    Evaluate the result of a given matcher as a boolean with an assertion error message if any.
    It handles two types of matcher :
    - a matcher returning a boolean value.
    - a matcher that only makes an assert, returning None or raises an assertion error.
    NTF)r   r>   )matcher_functionargsassertion_messagematches        r   _evaluate_matcherrt      s_     # $'5 ###  #F####s    	616c                     g g }}|D ]P  }|j                   }t        || |      \  }}|r|j                  |       3t        |      }|j                  ||f       R ||fS )z
    Get the comparison results of two requests as two list.
    The first returned list represents the matchers names that passed.
    The second list is the failed matchers as a string with failed assertion details if any.
    )__name__rt   rH   get_assertion_message)	r   r   rj   matches_successmatches_failsmmatcher_namerr   rq   s	            r   rg   rg      sy     &(]O Dzz#4QB#?  ""<0 56G H  ,0A!BCD M))r   c                     | S )z;
    Get a detailed message about the failing matcher.
    r9   )assertion_detailss    r   rw   rw      s
     r   )zContent-Type))rT   loggingr[   xmlrpc.clientrX   stringr   utilr   ordr?   r   setrC   __annotations__	getLoggerrv   rh   r
   r   r   r   r   r   r   r!   r)   r+   r:   rR   rW   r`   ra   clientrU   rd   r$   rm   rt   rg   rw   )ss   0r   <module>r      s        AJ KAQXXg%6!7 K SX Kg!<
6
8
<
8
8
:

>
55p 
 &j1 (,G Y':;XF;<@ '(/:UW]WdWdWjWjk $"*$K !Ls   C