§
    ‹Ÿj—t  ã                   óè  — d Z ddlmZmZmZ ddlZddlZddlZddlZddl	m
Z
 dZg d¢Z eej        ¦  «        Z eej        ¦  «        Zeeej        fZd d„Zd„ Zd	„ Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z edd¬¦  «        Z edd¬¦  «        Z edd¬¦  «        Z edd¬¦  «        Z edd¬¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z#dS )!z¯Function signature objects for callables

Back port of Python 3.3's function signature tools from the inspect module,
modified to be compatible with Python 2.6, 2.7 and 3.2+.
é    )Úabsolute_importÚdivisionÚprint_functionN)ÚOrderedDictz0.3)ÚBoundArgumentsÚ	ParameterÚ	SignatureÚ	signaturec                 ó”   — t          | t          ¦  «        r%| j        dd|fv r| j        S | j        dz   | j        z   S t	          | ¦  «        S )NÚbuiltinsÚ__builtin__ú.)Ú
isinstanceÚtypeÚ
__module__Ú__name__Úrepr)Ú
annotationÚbase_modules     úa/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/backcall/_signatures.pyÚformatannotationr   ,   sV   € Ý�*�dÑ#Ô#ð =ØÔ  Z°ÀÐ$LÐLÐLØÔ&Ð&ØÔ$ SÑ(¨Ô)<Ñ<Ð<Ý�
ÑÔÐó    c                 ó¼   — 	 | t           u rd S t          | |¦  «        }|D ]}t          |||¦  «        }Œ	 t          |t          ¦  «        s|S d S # t          $ r Y d S w xY w©N)r   Úgetattrr   Ú_NonUserDefinedCallablesÚAttributeError)ÚclsÚmethod_nameÚnestedÚmethÚnames        r   Ú_get_user_defined_methodr#   4   s•   € ðØ•$ˆ;ˆ;ØˆFÝ�s˜KÑ(Ô(ˆØð 	-ð 	-ˆDÝ˜4  tÑ,Ô,ˆDˆDð	-õ
 ˜$Õ 8Ñ9Ô9ð 	ð ˆKð	ð 	øõ ð ð ð Øˆˆðøøøs   ‚	A �&A Á
AÁAc                 ó.  — t          | ¦  «        s"t          d                     | ¦  «        ¦  «        ‚t          | t          j        ¦  «        rVt          | j        ¦  «        }|                     t          |j
                             ¦   «         ¦  «        dd…         ¬¦  «        S 	 | j        }|�|S n# t          $ r Y nw xY w	 | j        }t          |¦  «        S # t          $ r Y nw xY wt          | t          j        ¦  «        rt                                | ¦  «        S t          | t$          j        ¦  «        �r0t          | j        ¦  «        }t+          |j
                             ¦   «         ¦  «        }| j        pd}| j        pi }	  |j        |i |¤Ž}n6# t          $ r)}d                     | ¦  «        }t5          |¦  «        ‚d}~ww xY w|j                             ¦   «         D ]]\  }	}
||	         }|	|v r|                     |
d¬¦  «        ||	<   Œ,|j        t:          t<          fvr|j        s|                      |	¦  «         Œ^|                     |                     ¦   «         ¬¦  «        S d}t          | tB          ¦  «        rstE          tC          | ¦  «        d	¦  «        }|�t          |¦  «        }nˆtE          | d
¦  «        }|�t          |¦  «        }nftE          | d¦  «        }|�t          |¦  «        }nDt          | tF          ¦  «        s/tE          tC          | ¦  «        d	d¦  «        }|�t          |¦  «        }|�|S t          | t          j$        ¦  «        r$d                     | ¦  «        }t5          |¦  «        ‚t5          d                     | ¦  «        ¦  «        ‚)z/Get a signature object for the passed callable.z{0!r} is not a callable objecté   N)Ú
parameters© z,partial object {0!r} has incorrect argumentsT)ÚdefaultÚ_partial_kwargÚ__call__Ú__new__Ú__init__Úim_funcz-no signature found for builtin function {0!r}z,callable {0!r} is not supported by signature)%ÚcallableÚ	TypeErrorÚformatr   ÚtypesÚ
MethodTyper
   Ú__func__ÚreplaceÚtupler&   ÚvaluesÚ__signature__r   Ú__wrapped__ÚFunctionTyper	   Úfrom_functionÚ	functoolsÚpartialÚfuncr   ÚitemsÚargsÚkeywordsÚbind_partialÚ
ValueErrorÚ	argumentsÚkindÚ_VAR_KEYWORDÚ_VAR_POSITIONALr)   Úpopr   r#   r   ÚBuiltinFunctionType)ÚobjÚsigÚwrappedÚ
new_paramsÚpartial_argsÚpartial_keywordsÚbaÚexÚmsgÚarg_nameÚ	arg_valueÚparamÚcallÚnewÚinits                  r   r
   r
   D   s¼  € õ �C‰=Œ=ð FÝÐ8×?Ò?ÀÑDÔDÑEÔEÐEå�#•uÔ'Ñ(Ô(ð Jõ ˜œÑ%Ô%ˆØ�{Š{¥e¨C¬N×,AÒ,AÑ,CÔ,CÑ&DÔ&DÀQÀRÀRÔ&Hˆ{ÑIÔIÐIðØÔˆð ˆ?ØˆJð øõ ð ð ð Øˆðøøøð"à”/ˆõ ˜Ñ!Ô!Ð!øõ ð ð ð Øˆðøøøõ
 �#•uÔ)Ñ*Ô*ð ,Ý×&Ò& sÑ+Ô+Ð+å�#•yÔ(Ñ)Ô)ñ (;Ý˜œÑ!Ô!ˆå  ¤×!5Ò!5Ñ!7Ô!7Ñ8Ô8ˆ
à”x�~ 2ˆØœ<Ð-¨2Ðð	"Ø!�Ô! <ÐDÐ3CÐDÐDˆBˆBøÝð 	"ð 	"ð 	"Ø@×GÒGÈÑLÔLˆCÝ˜S‘/”/Ð!øøøøð	"øøøð $&¤<×#5Ò#5Ñ#7Ô#7ð 	)ð 	)ÑˆH�iØ˜xÔ(ˆEØÐ+Ð+Ð+ð$ (-§}¢}¸YØDHð (5ñ (Jô (J�
˜8Ñ$Ð$ð ”*¥\µ?Ð$CÐCÐCØ %Ô 4ð Dà—’˜xÑ(Ô(Ð(øà�{Š{ j×&7Ò&7Ñ&9Ô&9ˆ{Ñ:Ô:Ð:à
€CÝ�#•tÑÔð "õ
 (­¨S©	¬	°:Ñ>Ô>ˆØÐÝ˜D‘/”/ˆCˆCõ +¨3°	Ñ:Ô:ˆCØˆÝ ‘n”n��õ 0°°ZÑ@Ô@�ØÐ#Ý# D™/œ/�CøÝ˜Õ5Ñ6Ô6ð "õ
 (­¨S©	¬	°:¸yÑIÔIˆØÐÝ˜D‘/”/ˆCà
€Øˆ
å�#•uÔ0Ñ1Ô1ð à=×DÒDÀSÑIÔIˆÝ˜‰oŒoÐå
ÐC×JÒJÈ3ÑOÔOÑ
PÔ
PÐPs<   Â#B/ Â/
B<Â;B<Ã C Ã
C#Ã"C#ÆF Æ
GÆ$F>Æ>Gc                   ó   — e Zd ZdZdS )Ú_voidz0A private marker - used in Parameter & SignatureN)r   r   Ú__qualname__Ú__doc__r'   r   r   rY   rY   ´   s   € € € € € Ø:Ð:Ð:Ð:r   rY   c                   ó   — e Zd ZdS )Ú_emptyN)r   r   rZ   r'   r   r   r]   r]   ¸   s   € € € € € Ø€Dr   r]   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú_ParameterKindc                 óD   — t          j        | g|¢R Ž }|d         |_        |S )Nr"   )Úintr+   Ú_name)Úselfr?   ÚkwargsrI   s       r   r+   z_ParameterKind.__new__½   s)   € ÝŒk˜$Ð& Ð&Ð&Ð&ˆØ˜6”NˆŒ	Øˆ
r   c                 ó   — | j         S r   ©rb   ©rc   s    r   Ú__str__z_ParameterKind.__str__Â   s
   € ØŒzÐr   c                 ó6   — d                      | j        ¦  «        S )Nz<_ParameterKind: {0!r}>)r0   rb   rg   s    r   Ú__repr__z_ParameterKind.__repr__Å   s   € Ø(×/Ò/°´
Ñ;Ô;Ð;r   N)r   r   rZ   r+   rh   rj   r'   r   r   r_   r_   ¼   sA   € € € € € ðð ð ð
ð ð ð<ð <ð <ð <ð <r   r_   ÚPOSITIONAL_ONLY©r"   r%   ÚPOSITIONAL_OR_KEYWORDé   ÚVAR_POSITIONALé   ÚKEYWORD_ONLYé   ÚVAR_KEYWORDc                   óÄ   — e Zd ZdZdZeZeZe	Z
eZeZeZeedfd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zeeeeefd	„Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )r   aÖ  Represents a parameter in a function signature.

    Has the following public attributes:

    * name : str
        The name of the parameter as a string.
    * default : object
        The default value for the parameter if specified.  If the
        parameter has no default value, this attribute is not set.
    * annotation
        The annotation for the parameter if specified.  If the
        parameter has no annotation, this attribute is not set.
    * kind : str
        Describes how argument values are bound to the parameter.
        Possible values: `Parameter.POSITIONAL_ONLY`,
        `Parameter.POSITIONAL_OR_KEYWORD`, `Parameter.VAR_POSITIONAL`,
        `Parameter.KEYWORD_ONLY`, `Parameter.VAR_KEYWORD`.
    )rb   Ú_kindÚ_defaultÚ_annotationr)   Fc                 ó,  — |t           t          t          t          t          fvrt          d¦  «        ‚|| _        |t          ur4|t          t          fv r$d                     |¦  «        }t          |¦  «        ‚|| _	        || _
        |€"|t           k    rt          d¦  «        ‚|| _        net          |¦  «        }|t           k    rDt          j        d|t          j        ¦  «        s$d                     |¦  «        }t          |¦  «        ‚|| _        || _        d S )Nz,invalid value for 'Parameter.kind' attributez){0} parameters cannot have default valuesz<None is not a valid name for a non-positional-only parameterz
[a-z_]\w*$z#{0!r} is not a valid parameter name)Ú_POSITIONAL_ONLYÚ_POSITIONAL_OR_KEYWORDrF   Ú_KEYWORD_ONLYrE   rB   ru   r]   r0   rv   rw   rb   ÚstrÚreÚmatchÚIr)   )rc   r"   rD   r(   r   r)   rQ   s          r   r,   zParameter.__init__î   s  € ð Õ(Õ*@Ý'­½ðFð Fð FåÐKÑLÔLÐLØˆŒ
à�&Ð Ð Ø�­Ð6Ð6Ð6ØA×HÒHÈÑNÔN�Ý  ‘o”oÐ%ØˆŒØ%ˆÔàˆ<ØÕ'Ò'Ð'Ý ð "Añ Bô Bð BàˆDŒJˆJå�t‘9”9ˆDØÕ'Ò'Ð'µ´¸ÈÍbÌdÑ0SÔ0SÐ'Ø;×BÒBÀ4ÑHÔH�Ý  ‘o”oÐ%ØˆDŒJà,ˆÔÐÐr   c                 ó   — | j         S r   rf   rg   s    r   r"   zParameter.name  ó
   € àŒzÐr   c                 ó   — | j         S r   )rv   rg   s    r   r(   zParameter.default  s
   € àŒ}Ðr   c                 ó   — | j         S r   )rw   rg   s    r   r   zParameter.annotation  s   € àÔÐr   c                 ó   — | j         S r   )ru   rg   s    r   rD   zParameter.kind  r�   r   c                 óÜ   — |t           u r| j        }|t           u r| j        }|t           u r| j        }|t           u r| j        }|t           u r| j        } t          | ¦  «        |||||¬¦  «        S )z+Creates a customized copy of the Parameter.)r(   r   r)   )rY   rb   ru   rw   rv   r)   r   )rc   r"   rD   r   r(   r)   s         r   r4   zParameter.replace  s†   € ð •5ˆ=ˆ=Ø”:ˆDà•5ˆ=ˆ=Ø”:ˆDà�ÐÐØÔ)ˆJà•eÐÐØ”mˆGà�UÐ"Ð"Ø!Ô0ˆNà�t�D‰zŒz˜$ ¨gÀ*Ø)7ð9ñ 9ô 9ð 	9r   c                 ó„  — | j         }| j        }|t          k    r|€d}d                     |¦  «        }| j        t
          ur(d                     |t          | j        ¦  «        ¦  «        }| j        t
          ur(d                     |t          | j        ¦  «        ¦  «        }|t          k    rd|z   }n|t          k    rd|z   }|S )NÚ z<{0}>z{0}:{1}z{0}={1}Ú*z**)rD   rb   ry   r0   rw   r]   r   rv   r   rF   rE   )rc   rD   Ú	formatteds      r   rh   zParameter.__str__1  sÎ   € ØŒyˆà”Jˆ	ØÕ#Ò#Ð#ØÐ Ø�	ØŸš yÑ1Ô1ˆIð Ô¥6Ð)Ð)Ø!×(Ò(¨Ý'7¸Ô8HÑ'IÔ'IñKô KˆIð Œ=¥Ð&Ð&Ø!×(Ò(¨µD¸¼Ñ4GÔ4GÑHÔHˆIà•?Ò"Ð"Ø˜i™ˆIˆIØ•\Ò!Ð!Ø˜yÑ(ˆIàÐr   c                 óh   — d                      | j        j        t          | ¦  «        | j        ¦  «        S )Nz<{0} at {1:#x} {2!r}>)r0   Ú	__class__r   Úidr"   rg   s    r   rj   zParameter.__repr__I  s1   € Ø&×-Ò-¨d¬nÔ.EÝ+-¨d©8¬8°T´Yñ@ô @ð 	@r   c                 ó^   — d                      | j        j        ¦  «        }t          |¦  «        ‚©Nzunhashable type: '{0}'©r0   r‹   r   r/   ©rc   rQ   s     r   Ú__hash__zParameter.__hash__M  ó&   € Ø&×-Ò-¨d¬nÔ.EÑFÔFˆÝ˜‰nŒnÐr   c                 ó¶   — t          |j        t          ¦  «        o?| j        |j        k    o/| j        |j        k    o| j        |j        k    o| j        |j        k    S r   )Ú
issubclassr‹   r   rb   ru   rv   rw   ©rc   Úothers     r   Ú__eq__zParameter.__eq__Q  s`   € Ý˜5œ?­IÑ6Ô6ð 6Ø”
˜eœkÒ)ð6à”
˜eœkÒ)ð6ð ” ¤Ò/ð6ð Ô  EÔ$5Ò5ð		7r   c                 ó.   — |                       |¦  «         S r   ©r—   r•   s     r   Ú__ne__zParameter.__ne__X  ó   € Ø—;’;˜uÑ%Ô%Ð%Ð%r   N)r   r   rZ   r[   Ú	__slots__ry   rk   rz   rm   rF   ro   r{   rq   rE   rs   r]   Úemptyr,   Úpropertyr"   r(   r   rD   rY   r4   rh   rj   r‘   r—   rš   r'   r   r   r   r   Ð   s=  € € € € € ðð ð& P€Ià.€OØ4ÐØ-€NØ+€LØ*€Kà€Eà+1¸fØ %ð-ð -ð -ð -ð: ðð ñ „Xðð ðð ñ „Xðð ð ð  ñ „Xð ð ðð ñ „Xðð ! u¸Ø¨eð9ð 9ð 9ð 9ð,ð ð ð0@ð @ð @ðð ð ð7ð 7ð 7ð&ð &ð &ð &ð &r   r   c                   ól   — e Zd ZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
d„ Zd	S )
r   a  Result of `Signature.bind` call.  Holds the mapping of arguments
    to the function's parameters.

    Has the following public attributes:

    * arguments : OrderedDict
        An ordered mutable mapping of parameters' names to arguments' values.
        Does not contain arguments' default values.
    * signature : Signature
        The Signature object that created this instance.
    * args : tuple
        Tuple of positional arguments values.
    * kwargs : dict
        Dict of keyword arguments values.
    c                 ó"   — || _         || _        d S r   )rC   Ú
_signature)rc   r
   rC   s      r   r,   zBoundArguments.__init__m  s   € Ø"ˆŒØ#ˆŒˆˆr   c                 ó   — | j         S r   )r¡   rg   s    r   r
   zBoundArguments.signatureq  s
   € àŒÐr   c                 ó\  — g }| j         j                             ¦   «         D ]}\  }}|j        t          t
          fv s|j        r n[	 | j        |         }|j        t          k    r| 	                    |¦  «         ŒW| 
                    |¦  «         Œm# t          $ r Y  nw xY wt          |¦  «        S r   )r¡   r&   r>   rD   rE   r{   r)   rC   rF   ÚextendÚappendÚKeyErrorr5   )rc   r?   Ú
param_namerT   Úargs        r   r?   zBoundArguments.argsu  sÐ   € àˆØ!%¤Ô!;×!AÒ!AÑ!CÔ!Cð 	%ð 	%ÑˆJ˜Ø”
�|­]Ð;Ð;Ð;Ø49Ô4Hð <ð �ð%Ø”n ZÔ0�ð ”:¥Ò0Ð0à—K’K Ñ$Ô$Ð$Ð$ð —K’K Ñ$Ô$Ð$Ð$øõ ð ð ð ð ��ðøøøõ �T‰{Œ{Ðs   ÁBÂ
BÂBc                 óH  — i }d}| j         j                             ¦   «         D ]~\  }}|s+|j        t          t
          fv s|j        rd}n|| j        vrd}Œ2|sŒ5	 | j        |         }|j        t          k    r|                     |¦  «         Œi|||<   Œo# t          $ r Y Œ{w xY w|S )NFT)
r¡   r&   r>   rD   rE   r{   r)   rC   Úupdater¦   )rc   rd   Úkwargs_startedr§   rT   r¨   s         r   rd   zBoundArguments.kwargs‘  së   € àˆØˆØ!%¤Ô!;×!AÒ!AÑ!CÔ!Cð 	-ð 	-ÑˆJ˜Ø!ð !Ø”J¥<µÐ"?Ð?Ð?Ø05Ô0Dð @à%)�N�Nà!¨¬Ð7Ð7Ø)-˜Ø à!ð Øð
-Ø”n ZÔ0�ð ”:¥Ò-Ð-à—M’M #Ñ&Ô&Ð&Ð&ð *-�F˜:Ñ&Ð&øõ ð ð ð Ø�ðøøøð ˆs   ÁBÂ
BÂBc                 ó^   — d                      | j        j        ¦  «        }t          |¦  «        ‚rŽ   r�   r�   s     r   r‘   zBoundArguments.__hash__°  r’   r   c                 óv   — t          |j        t          ¦  «        o| j        |j        k    o| j        |j        k    S r   )r”   r‹   r   r
   rC   r•   s     r   r—   zBoundArguments.__eq__´  s8   € Ý˜5œ?­NÑ;Ô;ð 2Ø” %¤/Ò1ð2à” %¤/Ò1ð	3r   c                 ó.   — |                       |¦  «         S r   r™   r•   s     r   rš   zBoundArguments.__ne__¹  r›   r   N)r   r   rZ   r[   r,   rž   r
   r?   rd   r‘   r—   rš   r'   r   r   r   r   \  s«   € € € € € ðð ð $ð $ð $ð ðð ñ „Xðð ðð ñ „Xðð6 ðð ñ „Xðð<ð ð ð3ð 3ð 3ð
&ð &ð &ð &ð &r   r   c                   óª   — e Zd ZdZdZeZeZe	Z
de	dfd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zeefd	„Zd
„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ ZdS )r	   a  A Signature object represents the overall signature of a function.
    It stores a Parameter object for each parameter accepted by the
    function, as well as information specific to the function itself.

    A Signature object has the following public attributes and methods:

    * parameters : OrderedDict
        An ordered mapping of parameters' names to the corresponding
        Parameter objects (keyword-only arguments are in the same order
        as listed in `code.co_varnames`).
    * return_annotation : object
        The annotation for the return type of the function if specified.
        If the function has no annotation for its return type, this
        attribute is not set.
    * bind(*args, **kwargs) -> BoundArguments
        Creates a mapping from positional and keyword arguments to
        parameters.
    * bind_partial(*args, **kwargs) -> BoundArguments
        Creates a partial mapping from positional and keyword arguments
        to parameters (simulating 'functools.partial' behavior.)
    )Ú_return_annotationÚ_parametersNTc                 óü  — |€t          ¦   «         }nÜ|rÁt          ¦   «         }t          }t          |¦  «        D ]›\  }}|j        }||k     r,d}	|	                     ||j        ¦  «        }	t          |	¦  «        ‚|}|j        }
|
€%t          |¦  «        }
|                     |
¬¦  «        }|
|v r$d                     |
¦  «        }	t          |	¦  «        ‚|||
<   Œœnt          d„ |D ¦   «         ¦  «        }|| _	        || _
        dS )z„Constructs Signature from the given list of Parameter
        objects and 'return_annotation'.  All arguments are optional.
        Nz%wrong parameter order: {0} before {1}rl   zduplicate parameter name: {0!r}c              3   ó(   K  — | ]}|j         |fV — Œd S r   rl   )Ú.0rT   s     r   ú	<genexpr>z%Signature.__init__.<locals>.<genexpr>û  sE   è è € ð &Ið &IØ49ð (-¤z°5Ð&9ð &Ið &Ið &Ið &Ið &Ið &Ir   )r   ry   Ú	enumeraterD   r0   rB   r"   r|   r4   r±   r°   )rc   r&   Úreturn_annotationÚ__validate_parameters__ÚparamsÚtop_kindÚidxrT   rD   rQ   r"   s              r   r,   zSignature.__init__Û  s0  € ð ÐÝ ‘]”]ˆFˆFà&ð JÝ$™œ�Ý+�å"+¨JÑ"7Ô"7ð )ð )‘J�C˜Ø œ:�DØ˜h’�ØE˜Ø!Ÿjšj¨°5´:Ñ>Ô>˜Ý(¨™oœoÐ-à#'˜à œ:�DØ�|Ý" 3™xœx˜Ø %§¢°4 Ñ 8Ô 8˜à˜v�~�~Ø?×FÒFÀtÑLÔL˜Ý(¨™oœoÐ-Ø#(�F˜4‘L�Lð#)õ& %ð &Ið &IØ=Gð&Iñ &Iô &Iñ Jô J�ð "ˆÔØ"3ˆÔÐÐr   c           
      ó¨  — t          |t          j        ¦  «        s"t          d                     |¦  «        ¦  «        ‚| j        }|j        }|j        }|j        }t          |d|…         ¦  «        }t          |dd¦  «        }||||z   …         }t          |di ¦  «        }	|j        }
t          |dd¦  «        }|
rt          |
¦  «        }nd}g }||z
  }|d|…         D ]C}|	                     |t          ¦  «        }|                      |||t           ¬¦  «        ¦  «         ŒDt#          ||d…         ¦  «        D ]M\  }}|	                     |t          ¦  «        }|                      |||t           |
|         ¬¦  «        ¦  «         ŒN|j        d	z  rL|||z            }|	                     |t          ¦  «        }|                      |||t&          ¬¦  «        ¦  «         |D ]h}t          }|�|                     |t          ¦  «        }|	                     |t          ¦  «        }|                      |||t(          |¬¦  «        ¦  «         Œi|j        d
z  r]||z   }|j        d	z  r|dz  }||         }|	                     |t          ¦  «        }|                      |||t*          ¬¦  «        ¦  «          | ||	                     dt          ¦  «        d¬¦  «        S )z2Constructs Signature for the given python functionz{0!r} is not a Python functionNÚco_kwonlyargcountr   Ú__annotations__Ú__kwdefaults__)r   rD   )r   rD   r(   rr   é   r%   ÚreturnF)r·   r¸   )r   r1   r9   r/   r0   Ú_parameter_clsÚ__code__Úco_argcountÚco_varnamesr5   r   Ú__defaults__ÚlenÚgetr]   r¥   rz   r¶   Úco_flagsrF   r{   rE   )r   r=   r   Ú	func_codeÚ	pos_countÚ	arg_namesÚ
positionalÚkeyword_only_countÚkeyword_onlyÚannotationsÚdefaultsÚ
kwdefaultsÚpos_default_countr&   Únon_default_countr"   r   Úoffsetr(   Úindexs                       r   r:   zSignature.from_function  s}  € õ ˜$¥Ô 2Ñ3Ô3ð 	KÝÐ<×CÒCÀDÑIÔIÑJÔJÐJàÔ&ˆ	ð ”Mˆ	ØÔ)ˆ	ØÔ)ˆ	Ý˜9 Z i ZÔ0Ñ1Ô1ˆ
Ý$ YÐ0CÀQÑGÔGÐØ  ¨IÐ8JÑ,JÐ!KÔLˆÝ˜dÐ$5°rÑ:Ô:ˆØÔ$ˆÝ˜TÐ#3°TÑ:Ô:ˆ
àð 	"Ý # H¡¤ÐÐà !Ðàˆ
ð &Ð(9Ñ9ÐØÐ1Ð 1Ð1Ô2ð 	Fð 	FˆDØ$Ÿš¨­vÑ6Ô6ˆJØ×Ò˜i˜i¨¸Ý-CðEñ Eô Eñ Fô Fð Fð Fõ & jÐ1BÐ1CÐ1CÔ&DÑEÔEð 	Cð 	C‰LˆF�DØ$Ÿš¨­vÑ6Ô6ˆJØ×Ò˜i˜i¨¸Ý-CØ08¸Ô0@ðBñ Bô Bñ Cô Cð Cð Cð
 Ô Ñ$ð 	?Ø˜YÐ);Ñ;Ô<ˆDØ$Ÿš¨­vÑ6Ô6ˆJØ×Ò˜i˜i¨¸Ý-<ð>ñ >ô >ñ ?ô ?ð ?ð !ð 	:ð 	:ˆDÝˆGØÐ%Ø$Ÿ.š.¨­vÑ6Ô6�à$Ÿš¨­vÑ6Ô6ˆJØ×Ò˜i˜i¨¸Ý-:Ø07ð9ñ 9ô 9ñ :ô :ð :ð :ð Ô Ñ$ð 	<ØÐ 2Ñ2ˆEØÔ! DÑ(ð Ø˜‘
�à˜UÔ#ˆDØ$Ÿš¨­vÑ6Ô6ˆJØ×Ò˜i˜i¨¸Ý-9ð;ñ ;ô ;ñ <ô <ð <ð ˆs�:Ø%0§_¢_°X½vÑ%FÔ%FØ+0ð2ñ 2ô 2ð 	2r   c                 ó¢   — 	 t          j        | j        ¦  «        S # t          $ r) t	          | j                             ¦   «         ¦  «        cY S w xY wr   )r1   ÚMappingProxyTyper±   r   r   r>   rg   s    r   r&   zSignature.parametersJ  sY   € ð	9ÝÔ)¨$Ô*:Ñ;Ô;Ð;øÝð 	9ð 	9ð 	9Ý˜tÔ/×5Ò5Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8ð	9øøøs   ‚ ›0AÁAc                 ó   — | j         S r   )r°   rg   s    r   r·   zSignature.return_annotationQ  s   € àÔ&Ð&r   c                 óš   — |t           u r| j                             ¦   «         }|t           u r| j        } t	          | ¦  «        ||¬¦  «        S )z�Creates a customized copy of the Signature.
        Pass 'parameters' and/or 'return_annotation' arguments
        to override them in the new copy.
        )r·   )rY   r&   r6   r°   r   )rc   r&   r·   s      r   r4   zSignature.replaceU  sZ   € ð �ÐÐØœ×/Ò/Ñ1Ô1ˆJà¥Ð%Ð%Ø $Ô 7Ðà�t�D‰zŒz˜*Ø,=ð?ñ ?ô ?ð 	?r   c                 ó^   — d                      | j        j        ¦  «        }t          |¦  «        ‚rŽ   r�   r�   s     r   r‘   zSignature.__hash__d  r’   r   c                 óx  — t          t          |¦  «        t          ¦  «        r:| j        |j        k    s*t	          | j        ¦  «        t	          |j        ¦  «        k    rdS t          d„ t          |j                             ¦   «         ¦  «        D ¦   «         ¦  «        }t          | j         	                    ¦   «         ¦  «        D ]w\  }\  }}|j
        t          k    r*	 |j        |         }||k    r dS Œ0# t          $ r Y  dS w xY w	 ||         }||k    s||j        |         k    r dS Œf# t          $ r Y  dS w xY wdS )NFc              3   ó$   K  — | ]\  }}||fV — Œd S r   r'   )r´   r»   rT   s      r   rµ   z#Signature.__eq__.<locals>.<genexpr>n  sF   è è € ð Qð QÙ)˜s Eð !& s˜|ð Qð Qð Qð Qð Qð Qr   T)r”   r   r	   r·   rÇ   r&   Údictr¶   Úkeysr>   rD   r{   r¦   )rc   r–   Úother_positionsr»   r§   rT   Úother_paramÚ	other_idxs           r   r—   zSignature.__eq__h  s‘  € Ý�4 ™;œ;­	Ñ2Ô2ð 	ØÔ*¨eÔ.EÒEÐEÝ˜œÑ(Ô(­C°Ô0@Ñ,AÔ,AÒAÐAØ�5åð Qð QÝ-6°uÔ7G×7LÒ7LÑ7NÔ7NÑ-OÔ-OðQñ Qô Qñ Qô Qˆõ )2°$´/×2GÒ2GÑ2IÔ2IÑ(JÔ(Jð 	%ð 	%Ñ$ˆCÑ$�*˜eØŒz�]Ò*Ð*ð%Ø"'Ô"2°:Ô">�Kð  Ò+Ð+Ø$˜u˜uð ,øõ  ð !ð !ð !Ø ˜5˜5˜5ð!øøøð%Ø /°
Ô ;�Ið ˜yÒ(Ð(Ø$)¨UÔ-=¸jÔ-IÒ$IÐ$IØ$˜u˜uð %Jøõ	  ð !ð !ð !Ø ˜5˜5˜5ð!øøøð ˆts$   ÃC2Ã2
DÄ DÄD(Ä(
D7Ä6D7c                 ó.   — |                       |¦  «         S r   r™   r•   s     r   rš   zSignature.__ne__†  r›   r   Fc                 ó˜  — t          ¦   «         }t          | j                             ¦   «         ¦  «        }d}t          |¦  «        }|r4| j                             ¦   «         D ]\  }}	|	j        r||vr
|	j        ||<   Œ	 	 t          |¦  «        }
	 t          |¦  «        }	|	j        t          t          fv rt          d¦  «        ‚|	j        t          k    r1|
g}|                     |¦  «         t          |¦  «        ||	j        <   �n<|	j        |v r(t          d                     |	j        ¬¦  «        ¦  «        ‚|
||	j        <   nþ# t"          $ r t          d¦  «        ‚w xY w# t"          $ rÔ 	 t          |¦  «        }	|	j        t          k    rY n·|	j        |v rA|	j        t$          k    r,d}|                     |	j        ¬¦  «        }t          |¦  «        ‚|	f}Y nm|	j        t          k    s|	j        t&          ur|	f}Y nJ|r|	f}Y nCd}|                     |	j        ¬¦  «        }t          |¦  «        ‚# t"          $ r Y Y n
w xY ww xY w�ŒÁd}t)          j        ||¦  «        D ]Â}	|	j        t$          k    r(t          d                     |	j        ¬¦  «        ¦  «        ‚|	j        t          k    r|	}ŒM|	j        }	 |                     |¦  «        }
|
||<   Œp# t.          $ rF |sA|	j        t          k    r1|	j        t&          u r#t          d                     |¬¦  «        ¦  «        ‚Y Œ¿w xY w|r|�|||j        <   nt          d	¦  «        ‚|                      | |¦  «        S )
z$Private method.  Don't use directly.r'   Tztoo many positional argumentsz$multiple values for argument {arg!r})r¨   zA{arg!r} parameter is positional only, but was passed as a keywordz'{arg!r} parameter lacking default valueNztoo many keyword arguments)r   Úiterr&   r6   r>   r)   r(   ÚnextrD   rE   r{   r/   rF   r¤   r5   r"   r0   ÚStopIterationry   r]   Ú	itertoolsÚchainrG   r¦   Ú_bound_arguments_cls)rc   r?   rd   r<   rC   r&   Úparameters_exÚarg_valsr§   rT   Úarg_valr6   rQ   Úkwargs_params                 r   Ú_bindzSignature._bind‰  s÷  € õ  ‘M”Mˆ	å˜$œ/×0Ò0Ñ2Ô2Ñ3Ô3ˆ
ØˆÝ˜‘:”:ˆàð 	7ð &*¤_×%:Ò%:Ñ%<Ô%<ð 7ð 7Ñ!�
˜EØÔ(ð 7¨Z¸vÐ-EÐ-Eà).¬�F˜:Ñ&øðB	4ð?4Ý˜x™.œ.�ðN4Ý  Ñ,Ô,�Eð ”z¥lµMÐ%BÐBÐBõ (Ð(GÑHÔHÐHà”z¥_Ò4Ð4ð #* ˜ØŸš hÑ/Ô/Ð/Ý05°f±´˜	 %¤*Ñ-Ùà”z VÐ+Ð+Ý'ð )2ß28²&¸U¼Z°&Ñ2HÔ2HñJô Jð Jð -4�I˜eœjÑ)Ð)øõ+ %ð Eð Eð EÝ#Ð$CÑDÔDÐDðEøøøøõQ !ð #1ð #1ð #1ð!1Ý  Ñ,Ô,�Eð ”z¥_Ò4Ð4ð ˜Øœ vÐ-Ð-Ø œ:Õ)9Ò9Ð9ð#@˜Cà"%§*¢*°´ *Ñ"<Ô"<˜CÝ"+¨C¡.¤.Ð0Ø).¨˜Ø˜Øœ*­Ò4Ð4Ø05´ÅVÐ0KÐ0Kð */¨˜Ø˜à"ð 1Ø-2¨H˜MØ!˜Eà"K˜CØ"%§*¢*°´ *Ñ"<Ô"<˜CÝ"+¨C¡.¤.Ð0øõ? %ð ð ð ð �E�Eðøøøð	#1øøøñB	4ðL ˆÝ”_ ]°JÑ?Ô?ð 	0ð 	0ˆEØŒzÕ-Ò-Ð-õ  ð !>ç &¢¨5¬: Ñ 6Ô 6ñ8ô 8ð 8ð Œz�\Ò)Ð)à$�ØàœˆJð0Ø Ÿ*š* ZÑ0Ô0�ð )0�	˜*Ñ%Ð%øõ ð <ð <ð <ð
  ð < E¤Jµ/Ò$AÐ$AØ49´MÅVÐ4KÐ4KÝ#Ð$Mß$*¢F¨z FÑ$:Ô$:ñ<ô <ð <øøð<øøøð ð 	>ØÐ'à/5�	˜,Ô+Ñ,Ð,åÐ <Ñ=Ô=Ð=à×(Ò(¨¨yÑ9Ô9Ð9sh   Á>E ÂD> Ä>EÅ
H9Å&H'Å5H9ÆAH9Ç!H9Ç4H9Ç;,H9È'
H5È1H9È4H5È5H9Ê*KËALÌLc                 ó.   — |                       ||¦  «        S )z¹Get a BoundArguments object, that maps the passed `args`
        and `kwargs` to the function's signature.  Raises `TypeError`
        if the passed arguments can not be bound.
        ©rï   ©rc   r?   rd   s      r   ÚbindzSignature.bind	  s   € ð
 �zŠz˜$ Ñ'Ô'Ð'r   c                 ó2   — |                       ||d¬¦  «        S )zÂGet a BoundArguments object, that partially maps the
        passed `args` and `kwargs` to the function's signature.
        Raises `TypeError` if the passed arguments can not be bound.
        T)r<   rñ   rò   s      r   rA   zSignature.bind_partial  s   € ð
 �zŠz˜$ °ˆzÑ5Ô5Ð5r   c                 óä  — g }d}t          | j                             ¦   «         ¦  «        D ]b\  }}t          |¦  «        }|j        }|t
          k    rd}n$|t          k    r|r|                     d¦  «         d}|                     |¦  «         Œcd                     d 	                    |¦  «        ¦  «        }| j
        t          ur,t          | j
        ¦  «        }|d                     |¦  «        z  }|S )NTFrˆ   z({0})z, z -> {0})r¶   r&   r6   r|   rD   rF   r{   r¥   r0   Újoinr·   r]   r   )	rc   ÚresultÚrender_kw_only_separatorr»   rT   r‰   rD   ÚrenderedÚannos	            r   rh   zSignature.__str__  sø   € ØˆØ#'Ð Ý# D¤O×$:Ò$:Ñ$<Ô$<Ñ=Ô=ð 	%ð 	%‰JˆC�Ý˜E™
œ
ˆIà”:ˆDØ•Ò&Ð&ð ,1Ð(Ð(Ø�Ò&Ð&Ð+CÐ&ð —’˜cÑ"Ô"Ð"ð ,1Ð(à�MŠM˜)Ñ$Ô$Ð$Ð$à—>’> $§)¢)¨FÑ"3Ô"3Ñ4Ô4ˆàÔ!­Ð/Ð/Ý# DÔ$:Ñ;Ô;ˆDØ˜	×(Ò(¨Ñ.Ô.Ñ.ˆHàˆr   )F)r   r   rZ   r[   rœ   r   rÂ   r   rê   r]   r�   r,   Úclassmethodr:   rž   r&   r·   rY   r4   r‘   r—   rš   rï   ró   rA   rh   r'   r   r   r	   r	   ½  s5  € € € € € ðð ð, 6€Ià€NØ)Ðà€Eà"&¸&Ø)-ð$4ð $4ð $4ð $4ðL ðF2ð F2ñ „[ðF2ðP ð9ð 9ñ „Xð9ð ð'ð 'ñ „Xð'ð "'¸%ð ?ð ?ð ?ð ?ðð ð ðð ð ð<&ð &ð &ð~:ð ~:ð ~:ð ~:ð@(ð (ð (ð6ð 6ð 6ðð ð ð ð r   r	   r   )$r[   Ú
__future__r   r   r   rè   r;   r}   r1   Úcollectionsr   Ú__version__Ú__all__r   r*   Ú_WrapperDescriptorÚallÚ_MethodWrapperrH   r   r   r#   r
   ÚobjectrY   r]   ra   r_   ry   rz   rF   r{   rE   r   r   r	   r'   r   r   ú<module>r     s€  ððð ð$ AÐ @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø €€€ð
 $Ð #Ð #Ð #Ð #Ð #à€ð DÐ
CÐ
C€ð �T˜$œ-Ñ(Ô(Ð Ø��c”lÑ#Ô#€à.Ø*Ø!Ô5ð7Ð ð
ð ð ð ðð ð ð mQð mQð mQð`;ð ;ð ;ð ;ð ;ˆFñ ;ô ;ð ;ð	ð 	ð 	ð 	ð 	ˆVñ 	ô 	ð 	ð
<ð 
<ð 
<ð 
<ð 
<�Sñ 
<ô 
<ð 
<ð )˜.¨Ð1BÐCÑCÔCÐ Ø(˜.¨Ð1HÐIÑIÔIÐ Ø(˜.¨Ð1AÐBÑBÔB€Ø(˜.¨°Ð@Ñ@Ô@€Ø(˜.¨°Ð?Ñ?Ô?€ðI&ð I&ð I&ð I&ð I&�ñ I&ô I&ð I&ðX^&ð ^&ð ^&ð ^&ð ^&�Vñ ^&ô ^&ð ^&ðBvð vð vð vð v�ñ vô vð vð vð vr   