§
    ïyIfS  ã                   ó@  — d Z ddlmZ ddlZddlmZ d„ Zd„ Zd'd„Z G d„ d	e¦  «        Z	 e	d
e
fi ¦  «        Zee_        de_         edfd„Zedfd„Zedfd„Zedfd„Zefd„Zefd„Z G d„ d¦  «        Zd„ Zd„ Z G d„ d¦  «        Z G d„ d¦  «        Z e¦   «         Z G d„ de¦  «        Z e¦   «         Z G d„ de¬¦  «        Z G d„ d e¬¦  «        Z G d!„ d"e¬¦  «        Z G d#„ d$e¬¦  «        Z eeee fD ]"Z!d% "                    e!j        ¬&¦  «        e!_         Œ#[!dS )(z¦Defines experimental extensions to the standard "typing" module that are
supported by the mypy typechecker.

Example usage:
    from mypy_extensions import TypedDict
é    )ÚAnyN©Ú_type_checkc                 ó˜   — 	 t          j        d¦  «        j        d         dvrt          d¦  «        ‚n# t          t
          f$ r Y nw xY wdS )Né   Ú__name__)ÚabcÚ	functoolsÚtypingz4TypedDict does not support instance and class checksF)ÚsysÚ	_getframeÚ	f_globalsÚ	TypeErrorÚAttributeErrorÚ
ValueError)ÚclsÚothers     úC/var/www/piapp/venv/lib/python3.11/site-packages/mypy_extensions.pyÚ_check_failsr      sf   € ðÝŒ=˜ÑÔÔ% jÔ1Ð9WÐWÐWåÐRÑSÔSÐSð Xøõ �JÐ'ð ð ð Øˆðøøøàˆ5s   ‚03 ³AÁAc                 ó   — t          |i |¤ŽS ©N)Údict)r   ÚargsÚkwargss      r   Ú	_dict_newr      s   € Ý�Ð ˜Ð Ð Ð ó    c                 ó2  — |                      dd¦  «        }|€|}n|rt          d¦  «        ‚t          |¦  «        |dœ}	 t          j        d¦  «        j                             dd¦  «        |d<   n# t          t          f$ r Y nw xY wt          |d	|¦  «        S )
NÚtotalTz@TypedDict takes either a dict or keyword arguments, but not both)Ú__annotations__Ú	__total__r   r   Ú__main__Ú
__module__© )
Úpopr   r   r   r   r   Úgetr   r   Ú_TypedDictMeta)r   Ú	_typenameÚ_fieldsr   r   Únss         r   Ú_typeddict_newr*      s½   € Ø�JŠJ�w Ñ%Ô%€EØ€ØˆˆØ	ð )Ýð (ñ )ô )ð 	)õ " '™]œ]¸Ð	?Ð	?€Bðåœ=¨Ñ+Ô+Ô5×9Ò9¸*ÀjÑQÔQˆˆ<ÑÐøÝ�JÐ'ð ð ð Øˆðøøøõ ˜) R¨Ñ,Ô,Ð,s   Á 0A1 Á1BÂBc                   ó(   ‡ — e Zd Zdˆ fd„	ZexZZˆ xZS )r&   Tc                 ó¬  •‡— |dk    rt           nt          |d<   t          t          | ¦  «                             | |t
          f|¦  «        }|                     di ¦  «        }dŠˆfd„|                     ¦   «         D ¦   «         }|D ]0}|                     |j	                             di ¦  «        ¦  «         Œ1||_
        t          |d¦  «        s||_        |S )NÚ	TypedDictÚ__new__r   z?TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a typec                 ó8   •— i | ]\  }}|t          |‰¦  «        “ŒS r#   r   )Ú.0ÚnÚtpÚmsgs      €r   ú
<dictcomp>z*_TypedDictMeta.__new__.<locals>.<dictcomp>=   s)   ø€ ÐBÐBÐB©E¨A¨r�•;˜r 3Ñ'Ô'ÐBÐBÐBr   r    )r*   r   Úsuperr&   r.   r   r%   ÚitemsÚupdateÚ__dict__r   Úhasattrr    )
r   ÚnameÚbasesr)   r   Útp_dictÚannsÚbaser3   Ú	__class__s
           @€r   r.   z_TypedDictMeta.__new__1   sÜ   øø€ ð +/°+Ò*=Ð*=�˜Å9ˆˆ9‰Ý�¨Ñ,Ô,×4Ò4°S¸$ÅÀÈÑLÔLˆà�vŠvÐ'¨Ñ,Ô,ˆØOˆØBÐBÐBÐB°T·Z²Z±\´\ÐBÑBÔBˆØð 	Bð 	BˆDØ�KŠK˜œ×)Ò)Ð*;¸RÑ@Ô@ÑAÔAÐAÐAØ"&ˆÔÝ�w Ñ,Ô,ð 	&Ø %ˆGÔØˆr   )T)r   r"   Ú__qualname__r.   r   Ú__instancecheck__Ú__subclasscheck__Ú__classcell__)r?   s   @r   r&   r&   0   sC   ø€ € € € € ðð ð ð ð ð ð( -9Ð8ÐÐ)Ð)Ð)Ð)Ð)r   r&   r-   a  A simple typed name space. At runtime it is equivalent to a plain dict.

    TypedDict creates a dictionary type that expects all of its
    instances to have a certain set of keys, with each key
    associated with a value of a consistent type. This expectation
    is not checked at runtime but is only enforced by typecheckers.
    Usage::

        Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})
        a: Point2D = {'x': 1, 'y': 2, 'label': 'good'}  # OK
        b: Point2D = {'z': 3, 'label': 'bad'}           # Fails type check
        assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first')

    The type info could be accessed via Point2D.__annotations__. TypedDict
    supports two additional equivalent forms::

        Point2D = TypedDict('Point2D', x=int, y=int, label=str)

        class Point2D(TypedDict):
            x: int
            y: int
            label: str

    The latter syntax is only supported in Python 3.6+, while two other
    syntax forms work for 3.2+
    c                 ó   — | S )zA normal positional argumentr#   ©Útyper:   s     r   ÚArgrG   k   ó   € à€Kr   c                 ó   — | S )z*A positional argument with a default valuer#   rE   s     r   Ú
DefaultArgrJ   p   rH   r   c                 ó   — | S )zA keyword-only argumentr#   rE   s     r   ÚNamedArgrL   u   rH   r   c                 ó   — | S )z,A keyword-only argument with a default valuer#   rE   s     r   ÚDefaultNamedArgrN   z   rH   r   c                 ó   — | S )z*A *args-style variadic positional argumentr#   ©rF   s    r   ÚVarArgrQ      rH   r   c                 ó   — | S )z*A **kwargs-style variadic keyword argumentr#   rP   s    r   ÚKwArgrS   „   rH   r   c                   ó   — e Zd ZdS )ÚNoReturnN)r   r"   r@   r#   r   r   rU   rU   Š   s   € € € € € € € r   rU   c                 ó   — | S r   r#   )r   s    r   ÚtraitrW   �   s   € Ø€Jr   c                  ó   — d„ S )Nc                 ó   — | S r   r#   )Úxs    r   ú<lambda>zmypyc_attr.<locals>.<lambda>’   s   € �Q€ r   r#   )ÚattrsÚkwattrss     r   Ú
mypyc_attrr^   ‘   s
   € Øˆ;Ðr   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú_FlexibleAliasClsAppliedc                 ó   — || _         d S r   ©Úval)Úselfrc   s     r   Ú__init__z!_FlexibleAliasClsApplied.__init__˜   s   € ØˆŒˆˆr   c                 ó   — | j         S r   rb   ©rd   r   s     r   Ú__getitem__z$_FlexibleAliasClsApplied.__getitem__›   s	   € ØŒxˆr   N)r   r"   r@   re   rh   r#   r   r   r`   r`   —   s2   € € € € € ðð ð ðð ð ð ð r   r`   c                   ó   — e Zd Zd„ ZdS )Ú_FlexibleAliasClsc                 ó,   — t          |d         ¦  «        S )Néÿÿÿÿ)r`   rg   s     r   rh   z_FlexibleAliasCls.__getitem__    s   € Ý'¨¨R¬Ñ1Ô1Ð1r   N)r   r"   r@   rh   r#   r   r   rj   rj   Ÿ   s#   € € € € € ð2ð 2ð 2ð 2ð 2r   rj   c                   ó   — e Zd Zd„ ZdS )Ú_NativeIntMetac                 ó,   — t          |t          ¦  «        S r   )Ú
isinstanceÚint)r   Úinsts     r   rA   z _NativeIntMeta.__instancecheck__¨   s   € Ý˜$¥Ñ$Ô$Ð$r   N)r   r"   r@   rA   r#   r   r   rn   rn   §   s#   € € € € € ð%ð %ð %ð %ð %r   rn   c                   ó   — e Zd Zdefd„ZdS )Úi64r   c                 óR   — |t           urt          ||¦  «        S t          |¦  «        S r   ©Ú	_sentinelrq   ©r   rZ   r>   s      r   r.   zi64.__new__°   ó&   € Ø•yÐ Ð Ý�q˜$‘<”<ÐÝ�1‰vŒvˆr   N©r   r"   r@   rw   r.   r#   r   r   rt   rt   ¯   ó-   € € € € € Ø˜yð ð ð ð ð ð r   rt   )Ú	metaclassc                   ó   — e Zd Zdefd„ZdS )Úi32r   c                 óR   — |t           urt          ||¦  «        S t          |¦  «        S r   rv   rx   s      r   r.   zi32.__new__·   ry   r   Nrz   r#   r   r   r~   r~   ¶   r{   r   r~   c                   ó   — e Zd Zdefd„ZdS )Úi16r   c                 óR   — |t           urt          ||¦  «        S t          |¦  «        S r   rv   rx   s      r   r.   zi16.__new__¾   ry   r   Nrz   r#   r   r   r�   r�   ½   r{   r   r�   c                   ó   — e Zd Zdefd„ZdS )Úu8r   c                 óR   — |t           urt          ||¦  «        S t          |¦  «        S r   rv   rx   s      r   r.   z
u8.__new__Å   ry   r   Nrz   r#   r   r   r„   r„   Ä   r{   r   r„   a/  A native fixed-width integer type when used with mypyc.

        In code not compiled with mypyc, behaves like the 'int' type in these
        runtime contexts:

        * {name}(x[, base=n]) converts a number or string to 'int'
        * isinstance(x, {name}) is the same as isinstance(x, int)
        )r:   r   )#Ú__doc__r   r   r   r   r   r   r*   rF   r&   r   r-   r   r"   rG   rJ   rL   rN   rQ   rS   rU   rW   r^   r`   rj   ÚFlexibleAliasrn   Úobjectrw   rt   r~   r�   r„   Ú	_int_typeÚformatr#   r   r   ú<module>r‹      s9  ððð ð Ð Ð Ð Ð Ð à 
€
€
€
ð Ð Ð Ð Ð Ð ðð ð ð!ð !ð !ð-ð -ð -ð -ð$9ð 9ð 9ð 9ð 9�Tñ 9ô 9ð 9ð0 ˆN˜;¨¨°Ñ4Ô4€	Ø€	Ô ðð 
Ô ðB �tð ð ð ð ð
 ˜dð ð ð ð ð
 ˜Dð ð ð ð ð
  4ð ð ð ð ð
 ð ð ð ð ð
 ð ð ð ð ð Ð Ð Ð Ð Ñ Ô Ð ðð ð ðð ð ðð ð ð ð ñ ô ð ð2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ð
 "Ð!Ñ#Ô#€ð%ð %ð %ð %ð %�Tñ %ô %ð %ð
 ˆF‰HŒH€	ðð ð ð ð �Nð ñ ô ð ðð ð ð ð �Nð ñ ô ð ðð ð ð ð �Nð ñ ô ð ðð ð ð ð �>ð ñ ô ð ð �c˜3 Ð"ð 	,ð 	,€Ið	÷ ŠF˜	Ô*ˆFÑ+Ô+ð ÔÐð €I€Ir   