
    VeIi	                        d Z ddlmZmZmZmZmZmZmZ 	 ddl	m
Z
mZ dddddi ed d d d d	 fd
ee         dee         dee         deeedf                  deee                  deeeef                  deeef         deegef         deegef         deegef         deegef         deegef         deegef         defdZdS # e$ r
 ddl	mZ Y dS w xY w)ae  The inspect.formatargspec() function was dropped in Python 3.11 but we need
it for when constructing signature changing decorators based on result of
inspect.getfullargspec(). The code here implements inspect.formatargspec() based
on Parameter and Signature from inspect module, which were added in Python 3.6.
Thanks to Cyril Jouve for the implementation.
    )AnyCallableListMappingOptionalSequenceTuple)	Parameter	SignatureNc                     d| z   S )N* names    T/var/www/html/MCyber-Diagnostic/venv/lib/python3.11/site-packages/wrapt/arguments.py<lambda>r      s
    3:     c                     d| z   S )Nz**r   r   s    r   r   r      s
     r   c                 &    dt          |           z   S )N=repr)values    r   r   r      s    #U:K r   c                     d| z   S Nz -> r   )texts    r   r   r      s
    6D= r   c                 &    dt          |           z   S r   r   )annots    r   r   r      s    vU?S r   argsvarargsvarkwdefaults.
kwonlyargskwonlydefaultsannotations	formatargformatvarargsformatvarkwformatvalueformatreturnsformatannotationreturnc                    |d}i rt                    nd}fdt          | |t          |           z
            D             }|r-|                    t          |t          j                             |                    fd|D                        |r-|                    t          |t          j                                                 dt          j	                  }t          t          ||                    S )Nr   r   c                     g | ]Z\  }}t          |t           j        r|d k    r|         nt           j                            |t           j                            [S )r   default
annotation)r
   POSITIONAL_OR_KEYWORDemptyget).0iargr%   r"   s      r   
<listcomp>z!formatargspec.<locals>.<listcomp>$   st     
 
 
 3 /'/OAFF	&??3	@@	  
 
 
r   c           
   3      K   | ]]}t          |t           j                            |t           j                                      |t           j                             V  ^dS )r/   N)r
   KEYWORD_ONLYr4   r3   )r5   	kwonlyargr%   r$   s     r   	<genexpr>z formatargspec.<locals>.<genexpr>/   sy       
 
  &&**9ioFF&??9ioFF	  
 
 
 
 
 
r   r,   )return_annotation)len	enumerateappendr
   VAR_POSITIONALextendVAR_KEYWORDr4   r   r3   str)r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   	ndefaults
parametersr=   s      ` ``         r   formatargspecrG      sD    J!N%-4CMMM1	
 
 
 
 
 $D)c$ii*?@@
 
 

  	Li1IJJKKK 
 
 
 
 
 (
 
 
 	
 	
 	
  	Giy/DEEFFF'OOHioFF9Z;LMMMNNNr   )rG   )__doc__typingr   r   r   r   r   r   r	   inspectr
   r   rD   rG   ImportErrorr   r   r   <module>rL      s    K J J J J J J J J J J J J J J J J J1O,,,,,,,, "&#.2.26:)+*-.E.E,D,D,K,K.H.H1S1S+O +O3i+O#+O }+O 5c?+	+O
 Xc]++O !c!23+O S#X&+O SE3J'+O  s
++O seSj)+O seSj)+O  s
++O #C5#:.+O 
+O +O +O +O +O +O	  & & &%%%%%%%%%&s   C
 
CC