
    Xfi                     ,    d Z ddlmZmZ d Zd Zd ZdS )z
Python introspection helpers.
    )CodeTypeFunctionTypec                 f    t          t          d          r)  j        d
i d                                 D             S g d}t          t          d          r|                    dd           t          t          d          r|                    dd            fd	|D             }t          | S )Nreplacec                      i | ]\  }}d |z   |S co_ ).0kvs      H/var/www/html/env/lib/python3.11/site-packages/automat/_introspection.py
<dictcomp>zcopycode.<locals>.<dictcomp>
   s"    "M"M"MTQ519q"M"M"M    )argcountnlocals	stacksizeflagscodeconstsnamesvarnamesfilenamenamefirstlinenolnotabfreevarscellvarsco_kwonlyargcount   kwonlyargcountco_posonlyargcountposonlyargcountc           
      ^    g | ])}                     |t          d |z                       *S r   getgetattr)r   r   changestemplates     r   
<listcomp>zcopycode.<locals>.<listcomp>   sE        	D'(EDL99::  r   r
   )hasattrr   r   itemsinsert)r)   r(   r   valuess   ``  r   copycoder/      s    tY OxNN"M"MW]]__"M"M"MNNN  E
 t()) *Q()))t)** +Q)***      F =r   c                 l     g d} fd|D             }t          t           j        |          g|R  S )N)globalsr   defaultsclosurec           
      d    g | ],}                     |t          d |z   d z                       -S )__r%   )r   r   funcchangesr)   s     r   r*   z copyfunction.<locals>.<listcomp>    sJ        	ghtd0BCCDD  r   )functionr/   __code__)r)   r6   codechangesr   r.   s   ``   r   copyfunctionr:      sg      E      F HX.<<FvFFFFr   c                       fd}|S )zL
    Preserve the name of the given function on the decorated function.
    c                 r    t          | t          j                  t          j                            S )N)r   )r:   dict__name__)	decoratedfs    r   	decoratorzpreserveName.<locals>.decorator+   s9    I aj1114QZ3H3H3HJ J 	Jr   r
   )r@   rA   s   ` r   preserveNamerB   '   s)    J J J J J r   N)	__doc__typesr   r   r   r7   r/   r:   rB   r
   r   r   <module>rE      sc     = < < < < < < <  (G G G    r   