
    hg
-                        d Z ddlZddlZddlZ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 ddlmZ dej        dej        ej                 ded	dfd
Zded	efdZdej        d	ej        fdZ G d dej                  Z G d d          Z G d dej                  Z G d d          Zdededed	ej        fdZddej        e         fdZd ZdS )z5
    This module manages and invokes typed commands.
    N)
exceptions)command_lexer)unquotefargskwargsreturnc                     t          j        |           }	  |j        |i | d S # t          $ r'}t	          j        d|j        d         z            d }~ww xY w)Nzcommand argument mismatch: %sr   )inspect	signaturebind	TypeErrorr   CommandErrorr   )r   r   r   sigvs        b/var/www/fb-scrape/myenv/lib/python3.11/site-packages/seleniumwire/thirdparty/mitmproxy/command.pyverify_arg_signaturer      su    

A

CS$!&!!!!! S S S%&Eq	&QRRRSs   % 
A"AAtc                    | t           j        k    rt          j        d          t          j        j        j        j        	                    | d          }|s&t          j        dt          | d|           z            |j        S )z9
        Translates a type to an explanatory string.
    zmissing type annotationNzunsupported type: %s__name__)r   _emptyr   r   seleniumwire
thirdparty	mitmproxytypesCommandTypesgetgetattrdisplay)r   tos     r   typenamer!      sy     	GN%&?@@@		 	*	0	=	A	A!T	J	JB Z%&<wq*VW?X?X&XYYY:    xc                 4    | t           j        j        k    rd S | S N)r   	Signatureemptyr#   s    r   _empty_as_noner)   %   s    G###tHr"   c                   `    e Zd ZU eed<   ej        ed<   ej        j	        Z
ej        ed<   d ZdS )CommandParameternametypekindc                 T    | j         t          j        j        u r
d| j         S | j        S )N*)r.   r   	ParameterVAR_POSITIONALr,   selfs    r   __str__zCommandParameter.__str__0   s+    9)888"ty??"9r"   N)r   
__module____qualname__str__annotations__typingTyper   r1   POSITIONAL_OR_KEYWORDr.   _ParameterKindr5    r"   r   r+   r+   +   sU         
III
+#*#4#JD'
 JJJ    r"   r+   c                   T   e Zd ZU eed<   ded<   ej        ed<   ej        e         ed<   dddedej	        ddfd	Z
edej        ej                 fd
            Zedej        e         fd            ZdefdZdej        e         dej        fdZdej        e         dej        fdZdS )Commandr,   CommandManagermanagerr   helpfuncr	   Nc           
         || _         || _        || _        t          j        | j                  | _        |j        rF|j                                        }d                    t          j	        |                    | _
        nd | _
        | j        j                                        D ]k\  }}|j        }t          j        j        j        j                            |j        d           s+t)          j        d| dt-          |           d| d          l| j        rTt          j        j        j        j                            | j        d           s"t)          j        d| j         d| d          d S d S )N
z	Argument z has an unknown type (z) in .z!Return type has an unknown type ()r,   rB   rD   r   r   __doc__stripjointextwrapwraprC   
parametersitems
annotationr   r   r   r   r   r   r   r   r)   return_type)r4   rB   r,   rD   txt	parameterr   s          r   __init__zCommand.__init__=   s{   		 *4955< 	,$$&&C		(-"4"455DIIDI  $~8>>@@ 	w 	wOD)$A*4:GKKIL`bfgg w -.u$.u.uVdefVgVg.u.unr.u.u.uvvvw 	nL$;$E$K$X$\$\]a]mos$t$t 	n)*ldN^*l*lei*l*l*lmmm	n 	n 	n 	nr"   c                 4    t          | j        j                  S r%   )r)   r   return_annotationr3   s    r   rP   zCommand.return_typeQ   s    dn>???r"   c                     g }| j         j                                        D ]3\  }}|                    t	          ||j        |j                             4|S )z$Returns a list of CommandParameters.)r   rM   rN   appendr+   rO   r.   )r4   retr,   params       r   rM   zCommand.parametersU   s[     >4::<< 	M 	MKD%JJ'e.>
KKLLLL
r"   c                     d                     d | j        D                       }| j        rdt          | j                   }nd}| j         d| | S )N c              3   4   K   | ]}t          |          V  d S r%   )r8   ).0rY   s     r   	<genexpr>z)Command.signature_help.<locals>.<genexpr>^   s(      BB#e**BBBBBBr"   z ->  )rJ   rM   rP   r!   r,   )r4   paramsrX   s      r   signature_helpzCommand.signature_help]   si    BB$/BBBBB 	5$"23355CCC)++f+c+++r"   r   c                    	  | j         j        | }nV# t          $ rI dt          | j         j                   }dt          |           }t          j        d| d|           w xY w|j                                        D ]:\  }}| j         j        |         j	        }t          | j        ||          |j        |<   ;|                                 |S )Nz
Expected: z
Received: z Command argument mismatch: 
    z
    )r   r   r   r8   rM   r   r   	argumentsrN   rO   parseargrB   apply_defaults)r4   r   bound_argumentsexpectedreceivedr,   value
convert_tos           r   prepare_argszCommand.prepare_argse   s    	j1dn148OO 	j 	j 	jDC(A$B$BDDH/CII//H)*hh*h*h^f*h*hiii	j
 +4::<< 	X 	XKD%248CJ.6t|UJ.W.WO%d++&&(((s
    AA%c                 `   |                      |          } | j        |j        i |j        }|	| j        dS t
          j        j        j        j	        
                    | j                  }|sJ |                    | j        ||          s#t          j        | j         d|j                   |S )zn
        Call the command with a list of arguments. At this point, all
        arguments are strings.
        Nz% returned unexpected data - expected )rk   rD   r   r   rP   r   r   r   r   r   r   is_validrB   r   r   r,   r   )r4   r   
bound_argsrX   typs        r   callzCommand.callu   s    
 &&t,,
di>J,=>>;4+3F%/5BFFtGWXX


||DL#s33 	)9PP3;PP   
r"   )r   r6   r7   r8   r9   r   r&   r:   OptionalCallablerS   propertyr;   rP   Listr+   rM   ra   SequenceBoundArgumentsrk   Anyrp   r>   r"   r   r@   r@   7   s_        
III    
/#
n 0 n n6? nW[ n n n n( @V_V[9 @ @ @ X@ FK(89    X, , , , ,!5 ':P     - &*      r"   r@   c                   8    e Zd ZU eed<   ej        ed<   eed<   dS )ParseResultri   r-   validN)r   r6   r7   r8   r9   r:   r;   boolr>   r"   r   ry   ry      s0         JJJ
+KKKKKr"   ry   c                      e Zd ZU ej        eef         ed<   d Zd Z	dedej
        fdZ ej        d          d	ed
ej        ej        e         ej        e         f         fd            Zdedej        ej                 d
ej        fdZdedej        e         d
ej        fdZd	ed
ej        fdZej        fddZdS )rA   commandsc                 "    || _         i | _        d S r%   )masterr}   )r4   r   s     r   rS   zCommandManager.__init__   s    r"   c                    t          |          D ]}|                    d          st          ||          }	 t          t          |dd           t                    }|rc	 |                     |j        |           k# t          j        $ r4}| j	        j
                            d|j        d|           Y d }~d }~ww xY w# t          $ r Y w xY wd S )N__command_namezCould not load command z: )dir
startswithr   
isinstancer8   addr   r   r   r   logwarn	Exception)r4   addonio
is_commandes         r   collect_commandszCommandManager.collect_commands   s$   U 	 	A<<%% E1%%!+GA~t,L,Lc!R!RJ "  HHQ^Q7777)6    KO000CD>>>STST U        !   D	 	s)   $CA;;B>
*B99B>
CCpathrD   c                 8    t          | ||          | j        |<   d S r%   )r@   r}   )r4   r   rD   s      r   r   zCommandManager.add   s     %dD$77dr"      )maxsizecmdstrr	   c                    t           j                            |d          }g }t          dt          j        j        j        j                  t          dt          j        j        j        j	                  g}d}|D ]}|
                                r?|                    t          |t          j        j        j        j        d                     V|r|j        t          j        j        u r|rJ nA|r|                    d          }n)t          dt          j        j        j        j                  }|j        t          j        j        j        j        k    o|| j        v }|j        t          j        j        j        j        k    o|| j        v}|o)|d         j        t          j        j        j        j	        k    }	|r|	r| j        |         j        |dd         z   }|r|	r|                    d           t          j        j        j        j                            |j        d          }
d}|
r7	 |
                    | |j        |           d}n# t4          j        $ r d}Y nw xY w|                    t          ||j        |                     ||fS )	z
        Parse a possibly partial command. Return a sequence of ParseResults and a sequence of remainder type help items.
        T)parseAllr_   N)ri   r-   rz   r      F)r   exprparseStringr+   r   r   r   r   CmdCmdArgsisspacerW   ry   Spacer.   r   r1   r2   popUnknownr-   r}   rM   r   r   parser   r   )r4   r   partsparsednext_paramsrg   partarg_is_known_commandarg_is_unknown_commandcommand_args_followingr    rz   s               r   parse_partialzCommandManager.parse_partial   s    #0"4"@"@RV"@"W"W+-R!8!B!H!LMMR!8!B!H!PQQ6
 7; 0	 0	D||~~ ")4>DJ"      aHMW->-MMM&&&&& a&??1--+B0G0Q0W0_`` !8!B!H!LLfQUY]YfQf ! !8!B!H!LLjQU]a]jQj # fA 3|7N7X7^7f f # $ O(> O"mD1<{122N% #*@ #"""(28EII(-Y]^^BE !!HHT8=$777 !EE "+ " " "!EEE"
 MM!      {""s   )IIIr   r   c                 l    || j         vrt          j        d|z             | j         |         j        | S )zO
        Call a command with native arguments. May raise CommandError.
        Unknown command: %s)r}   r   r   rD   r4   r   r   s      r   rp   zCommandManager.call   s?     t},,)*?,*NOOO/t}\*/66r"   c                     || j         vrt          j        d|z            | j         |                             |          S )zZ
        Call a command using a list of string arguments. May raise CommandError.
        r   )r}   r   r   rp   r   s      r   call_stringszCommandManager.call_strings   sC     t},,)*?,*NOOO}\*//555r"   c                     |                      |          \  }}|st          j        d|          d |D             ^}}|                     ||          S )zC
        Execute a command string. May raise CommandError.
        zInvalid command: c                 ~    g | ]:}|j         t          j        j        j        j        k    &t          |j                  ;S r>   )r-   r   r   r   r   r   r   ri   )r]   r   s     r   
<listcomp>z*CommandManager.execute.<locals>.<listcomp>  sE     
 
 
yL3=CIII DJIIIr"   )r   r   r   r   )r4   r   r   _r   r   s         r   executezCommandManager.execute   sy     %%f--q 	J)*Hf*H*HIII
 

 
 
t
   t444r"   Nc                 T   t          | j                                                  }|                    d            |D ]g}|j        pd                                D ]}t          d|z   |           t          |                                |           t          |           hd S )Nc                 *    |                                  S r%   )ra   r(   s    r   <lambda>z%CommandManager.dump.<locals>.<lambda>  s     0 0 2 2 r"   )keyr_   z# )file)listr}   valuessortrC   
splitlinesprintra   )r4   outcmdschls        r   dumpzCommandManager.dump  s    DM((**++		22	333 	 	Av|//11 + +dRic*****!""$$3////sOOOOO		 	r"   )r	   N)r   r6   r7   r:   Dictr8   r@   r9   rS   r   rr   r   	functools	lru_cacheTupleru   ry   r+   r   rw   rp   r   r   sysstdoutr   r>   r"   r   rA   rA      s~        k#w,''''    $8 86? 8 8 8 8 Y%%%B#B# 
fok2FODT4UU	VB# B# B# &%B#H7 7V_VZ-H 7VZ 7 7 7 76 6FOC4H 6VZ 6 6 6 65c 5fj 5 5 5 5 z       r"   rA   rB   specargtypec                 4   t           j        j        j        j                            |d          }|st          j        d|           	 |                    | ||          S # t          j	        $ r'}t          j        t          |                    |d}~ww xY w)zE
        Convert a string to a argument to the appropriate type.
    NzUnsupported argument type: )r   r   r   r   r   r   r   r   r   r   r8   )rB   r   r   r   r   s        r   rd   rd     s     	)/<@@$OOA O%&MG&M&MNNN5www... 5 5 5%c!ff--145s   
A! !B0"BBr,   c                       fd}|S )Nc                      t          j                    fd            }p j                            dd          |j        d<   |S )Nc                  6    t          | |            | i |S r%   )r   )r   r   functions     r   wrapperz+command.<locals>.decorator.<locals>.wrapper&  s*     48888T,V,,,r"   r   rG   r   )r   wrapsr   replace__dict__)r   r   r,   s   ` r   	decoratorzcommand.<locals>.decorator%  s_    		"	"	- 	- 	- 	- 
#	"	- ,0+V83D3L3LSRU3V3V(r"   r>   )r,   r   s   ` r   commandr   $  s$         r"   c                 H     dt           j        dt           j        f fd}|S )z
        Set the type of a command argument at runtime. This is useful for more
        specific types such as seleniumwire.thirdparty.mitmproxy.types.Choice, which we cannot annotate
        directly as mypy does not like that.
    r   r	   c                 2    | j         v sJ | j         <   | S r%   )r9   )r   r,   r-   s    r   r   zargument.<locals>.decorator8  s)    q((((("&$r"   )r   FunctionType)r,   r-   r   s   `` r   argumentr   1  sC    U' E,>       
 r"   r%   ) rH   r   r   r   rK   r   r:   'seleniumwire.thirdparty.mitmproxy.typesr   !seleniumwire.thirdparty.mitmproxyr   r   /seleniumwire.thirdparty.mitmproxy.command_lexerr   rr   Iterablerw   dictr   r-   r8   r!   r)   
NamedTupler+   r@   ry   rA   rd   rq   r   r   r>   r"   r   <module>r      sG         



    . . . . 8 8 8 8 8 8 ; ; ; ; ; ; C C C C C CSFO S6?6:3N SX\ Sae S S S S	 	 	 	 	 	fj VZ    	 	 	 	 	v( 	 	 	M M M M M M M M`    &#   G G G G G G G GT
5n 
5C 
5$ 
56: 
5 
5 
5 
5
 
&/#& 
 
 
 
    r"   