
    YOgS                        S r SSKJr  SSKrSSKJr  S rS rS'S jr " S S	\5      r	\	" S
\
40 5      r\\l        S\l         \S4S jr\S4S jr\S4S jr\S4S jr\4S jr\4S jr " S S5      rS rS r " S S5      r " S S5      r\" 5       r " S S\5      r\" 5       r " S S\S9r " S S \S9r " S! S"\S9r " S# S$\S9r \\\\ 4 H!  r!S%RE                  \!R                  S&9\!l         M#     C!g)(zDefines experimental extensions to the standard "typing" module that are
supported by the mypy typechecker.

Example usage:
    from mypy_extensions import TypedDict
    )AnyN)_type_checkc                      [         R                  " S5      R                  S   S;  a  [        S5      e g! [        [
        4 a     gf = f)N   __name__)abc	functoolstypingz4TypedDict does not support instance and class checksF)sys	_getframe	f_globals	TypeErrorAttributeError
ValueError)clsothers     T/Users/admin/workspace/ai/Jarvis/env/lib/python3.13/site-packages/mypy_extensions.py_check_failsr      sW    ==%%j19WWRSS X
  J' s   26 A	A	c                     [        U0 UD6$ N)dict)r   argskwargss      r   	_dict_newr      s           c                     UR                  SS5      nUc  UnOU(       a  [        S5      e[        U5      US.n [        R                  " S5      R
                  R                  SS5      US'   [        US	U5      $ ! [        [        4 a     Nf = f)
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    JJw%E	 ( ) 	) "']	?B==+5599*jQ< )R,, J' s   3A: :BBc                   4   ^  \ rS rSrSU 4S jjr\=rrSrU =r	$ )r%   0   c           	        > US:X  a  [         O[        US'   [        [        U ]  X[
        4U5      nUR                  S0 5      nSnUR                  5        VV	s0 s H  u  pU[        X5      _M     nnn	U H.  n
UR                  U
R                  R                  S0 5      5        M0     Xel        [        US5      (       d  XEl        U$ s  sn	nf )N	TypedDict__new__r   z?TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a typer   )r)   r   superr%   r.   r   r$   itemsr   update__dict__r   hasattrr   )r   namebasesr(   r   tp_dictannsmsgntpbase	__class__s              r   r.   _TypedDictMeta.__new__1   s     +/+*=994SLvv',O59ZZ\B\EA;r''\BDKK))*;R@A "&w,, % Cs   Cr"   )T)
r   r!   __qualname____firstlineno__r.   r   __instancecheck____subclasscheck____static_attributes____classcell__)r<   s   @r   r%   r%   0   s    ( -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                     U $ )zA normal positional argumentr"   typer4   s     r   ArgrG   k       Kr   c                     U $ )z*A positional argument with a default valuer"   rE   s     r   
DefaultArgrJ   p   rH   r   c                     U $ )zA keyword-only argumentr"   rE   s     r   NamedArgrL   u   rH   r   c                     U $ )z,A keyword-only argument with a default valuer"   rE   s     r   DefaultNamedArgrN   z   rH   r   c                     U $ )z*A *args-style variadic positional argumentr"   rF   s    r   VarArgrQ      rH   r   c                     U $ )z*A **kwargs-style variadic keyword argumentr"   rP   s    r   KwArgrS      rH   r   c                       \ rS rSrSrg)NoReturn   r"   N)r   r!   r>   r?   rB   r"   r   r   rU   rU      s    r   rU   c                     U $ r   r"   )r   s    r   traitrX      s    Jr   c                      S $ )Nc                     U $ r   r"   )xs    r   <lambda>mypyc_attr.<locals>.<lambda>   s    Qr   r"   )attrskwattrss     r   
mypyc_attrr`      s    r   c                        \ rS rSrS rS rSrg)_FlexibleAliasClsApplied   c                     Xl         g r   val)selfrf   s     r   __init__!_FlexibleAliasClsApplied.__init__   s    r   c                     U R                   $ r   re   rg   r   s     r   __getitem__$_FlexibleAliasClsApplied.__getitem__   s    xxr   re   N)r   r!   r>   r?   rh   rl   rB   r"   r   r   rb   rb      s    r   rb   c                       \ rS rSrS rSrg)_FlexibleAliasCls   c                     [        US   5      $ )N)rb   rk   s     r   rl   _FlexibleAliasCls.__getitem__   s    'R11r   r"   N)r   r!   r>   r?   rl   rB   r"   r   r   ro   ro      s    2r   ro   c                       \ rS rSrS rSrg)_NativeIntMeta   c                 "    [        U[        5      $ r   )
isinstanceint)r   insts     r   r@    _NativeIntMeta.__instancecheck__   s    $$$r   r"   N)r   r!   r>   r?   r@   rB   r"   r   r   ru   ru      s    %r   ru   c                   "    \ rS rSrS\4S jrSrg)i64   r   c                 @    U[         La  [        X5      $ [        U5      $ r   	_sentinelry   r   r[   r;   s      r   r.   i64.__new__       y q<1vr   r"   Nr   r!   r>   r?   r   r.   rB   r"   r   r   r}   r}          y r   r}   )	metaclassc                   "    \ rS rSrS\4S jrSrg)i32   r   c                 @    U[         La  [        X5      $ [        U5      $ r   r   r   s      r   r.   i32.__new__   r   r   r"   Nr   r"   r   r   r   r      r   r   r   c                   "    \ rS rSrS\4S jrSrg)i16   r   c                 @    U[         La  [        X5      $ [        U5      $ r   r   r   s      r   r.   i16.__new__   r   r   r"   Nr   r"   r   r   r   r      r   r   r   c                   "    \ rS rSrS\4S jrSrg)u8   r   c                 @    U[         La  [        X5      $ [        U5      $ r   r   r   s      r   r.   
u8.__new__   r   r   r"   Nr   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)
        )r4   r   )#__doc__r
   r   r   r   r   r   r)   rF   r%   r   r-   r   r!   rG   rJ   rL   rN   rQ   rS   rU   rX   r`   rb   ro   FlexibleAliasru   objectr   r}   r   r   r   	_int_typeformatr"   r   r   <module>r      sN    
 !-$9T 90 ;4		  
 B t 
 d 
 D 
 4 
  
     2 2
 "#%T %
 H	N N N >  c3"I	 F	**F+  # r   