Mini Kabibi Habibi

Current Path : C:/Users/ITO/AppData/Local/Programs/Python/Python314/Lib/__pycache__/
Upload File :
Current File : C:/Users/ITO/AppData/Local/Programs/Python/Python314/Lib/__pycache__/annotationlib.cpython-314.pyc

+
��hԛ���Rt^RIt^RIt^RIt^RIt^RIt^RIt.ROt!RR]P4t	]
!4tRtRt
!RR4t]!R R!4t!RR4tR	t!R
R]4tRR/R
ltRRRR/RltRtRtRtRRRRRRR]	P4/RltRtRtRt]P>R,P@t!Rt"R#)"z3Helpers for introspecting and wrapping annotations.N�Format�
ForwardRefc�&�]tRt^t^t^t^t^tRtR#)r�N)	�__name__�
__module__�__qualname__�__firstlineno__�VALUE�VALUE_WITH_FAKE_GLOBALS�
FORWARDREF�STRING�__static_attributes__r��IC:\Users\ITO\AppData\Local\Programs\Python\Python314\Lib\annotationlib.pyrrs��
�E����J�
�Frz!name '{name:.200}' is not definedc
��a�]tRt^5toRt]tRRRRRRRR/R	ltR
tRRRRR
RRRR]	P/Rlt]3Rlt
]R4t]R4tRtRtRtRtRtRtVtR#)ra�Wrapper that holds a forward reference.

Constructor arguments:
* arg: a string representing the code to be evaluated.
* module: the module where the forward reference was created.
  Must be a string, not a module object.
* owner: The owning object (module, class, or function).
* is_argument: Does nothing, retained for compatibility.
* is_class: True if the forward reference was created in class scope.

�moduleN�owner�is_argumentT�is_classFc���\V\4'g\RV:24hWnW@nWPnW nW0nRVnRVn	RVn
RVnRVnR#)z*Forward reference must be a string -- got N)
�
isinstance�str�	TypeError�__arg__�__forward_is_argument__�__forward_is_class__�__forward_module__�	__owner__�__globals__�__cell__�__extra_names__�__code__�__ast_node__)�self�argrrrrs&&$$$$r�__init__�ForwardRef.__init__Dsj���#�s�#�#��H���P�Q�Q���'2�$�$,�!�"(���� �����
�#�����
� ��rc��\R4h)zCannot subclass ForwardRef�r)�cls�args�kwdss"*,r�__init_subclass__�ForwardRef.__init_subclass___s���4�5�5r�globals�locals�type_params�formatc��T;\P8XdVP#;\P8XdRpM#\P8XdRpM\V4hVPeVPP#Vf
VPpVfDVPe6\\PPVPR4RR4pVf
VPpVf�\!V\"4'dL\VRR4pV'd6\PPVR4pV'd\VRR4pML\!V\$P&4'd\VRR4pM\)V4'd\VRR4pVf/pVf3/p\!V\"4'dVP+\-V44VfVe\VRR4pVe#\/V4pVFp	W�V	P0&K	VP2'd/VCVP2CpVPp
V
P54'd�\6P8!V
4'gnW�9d	W*,#W�9d	W,#\;\<V
4'd\\<V
4#V'dV#\?\@PCV
R7V
R7hVPDp\GW�VR	7# \dEL�i;i \Hd
T'ghMi;i\K/\<PLCTCTTTPNTR
7p\GY�TR	7p
TPQ4T
# \HdTu#i;i)zxEvaluate the forward reference and return the value.

If the forward reference cannot be evaluated, raise an exception.
FTN�__dict__rr�__type_params__)�name)r/r0�r/rrr2))rr
�__forward_arg__r
r�NotImplementedErrorr �
cell_contents�
ValueErrorrr�getattr�sys�modules�getrr�type�types�
ModuleType�callable�update�vars�dictrr!�isidentifier�keyword�	iskeyword�hasattr�builtins�	NameError�_NAME_ERROR_MSGr2�__forward_code__�eval�	Exception�_StringifierDictr4r�transmogrify)r$r/r0r1rr2�is_forwardref_format�module_namer�paramr%�code�
new_locals�results&$$$$$        r�evaluate�ForwardRef.evaluatebs��������+�+�+�����',�$��"�"�'+�$��)�&�1�1��=�=�$�
��}�}�2�2�2��=��N�N�E��?�t�6�6�B�������� 7� 7��>�
�D��G��?��&�&�G��?��%��&�&�%�e�\�4�@��� �[�[�_�_�[�$�?�F��")�&�*�d�"C����E�5�#3�#3�4�4�!�%��T�:���%���!�%���=���?��G��>��F��%��&�&��
�
�d�5�k�*���5�#4�"�%�):�D�A�K�
�"��7�m�G�$��*/����'�%�����7��7�$�"6�"6�7�F��"�"�������g�&7�&7��&<�&<��}��{�"����|�#���3�'�'��x��-�-�%����� 6� 6�C� 6� @�s�K�K��(�(�D�
��D�&�A�A���
��
��@�
�+��,�
��*�/�8�$�$�/��/����2�2���J�
��d�J�G���'�'�)��
��	�
���
�s<�/K;�.L
�;L
�	L
�
L$� L$�#L$�
M3�3
N�Nc��^RIp^RIpV\JdVPR4RpVP	RRRR7VPVVVVVR7#)	�Nztyping.ForwardRef._evaluatezForwardRef._evaluatez�{name} is a private API and is retained for compatibility, but will be removed in Python 3.16. Use ForwardRef.evaluate() or typing.evaluate_forward_ref() instead.)�remove)r/r0r1�_recursive_guardr)��)�typing�warnings�	_sentinel�._deprecation_warning_for_no_type_params_passed�_deprecated�evaluate_forward_ref)r$�globalns�localnsr1�recursive_guardrarbs&&&&$  r�	_evaluate�ForwardRef._evaluate�sp�����)�#��A�A�-�
��K����"�
c��		�	
��*�*����#�,�+�
�	
rc���VPe
VP#VPe2\P!VP4VnVP#\	R4h)NzDAttempted to access '__forward_arg__' on an uninitialized ForwardRef)rr#�ast�unparse�AssertionError�r$s&rr8�ForwardRef.__forward_arg__�sR���<�<�#��<�<�����(��;�;�t�'8�'8�9�D�L��<�<���R�
�	
rc��VPe
VP#VPpVPR4'dRVR2pMTp\VRR4VnVP# \d\	RT:24hi;i)N�*�(z,)[0]z<string>rOz/Forward reference must be an expression -- got )r"r8�
startswith�compile�SyntaxError)r$r%�arg_to_compiles&  rrN�ForwardRef.__forward_code__�s����=�=�$��=�=� ��"�"���>�>�#��� ���U�^�N� �N�	Y�#�N�J��G�D�M��}�}����	Y�� O�PS�w�W�X�X�	Y�s�A&�&Bc���\V\4'g\#VPVP8H;'Ed'VPVP8H;'EdVP
VP
J;'d�VPVP8H;'d�VPVP8H;'d�VPVP8H;'d�VP'd-\\VPP444MRVP'd-\\VPP444MR8H#�N)
rr�NotImplementedr8rrrr rr!�tuple�sorted�items�r$�others&&r�__eq__�ForwardRef.__eq__s,���%��,�,�!�!�� � �E�$9�$9�9�
�
��'�'�5�+C�+C�C�
�
�� � �E�$5�$5�5�	
�
�
�)�)�U�-G�-G�G�
�
��
�
����/�

�
����%�/�/�1�
�
�AE�@T�@T�@T��v�d�2�2�8�8�:�;�<�Z^�AF�AV�AV�AV��v�e�3�3�9�9�;�<�=�\`�b�
	
rc�6�\VPVP\VP4VP
VPVPVP'd2\\VPP44434#R34#r{)�hashr8r�idrrr rr!r}r~rrps&r�__hash__�ForwardRef.__hash__s����� � ��#�#��t��� ��%�%��M�M��N�N�;?�;O�;O�;O�E�&��-�-�3�3�5�6�7�
��	�VZ�
��	rc�2�\PW3,#r{�rA�	UnionTyper�s&&r�__or__�ForwardRef.__or__s�����t�{�+�+rc�2�\PW3,#r{r�r�s&&r�__ror__�ForwardRef.__ror__!s�����u�{�+�+rc�D�.pVPe VPRVP:24VP'dVPR4VPe VPRVP:24RVP:RPV4R2#)Nz	, module=z, is_class=Truez, owner=zForwardRef(��))r�appendrrr8�join)r$�extras& r�__repr__�ForwardRef.__repr__$s������"�"�.��L�L�9�T�%<�%<�$?�@�A��$�$�$��L�L�*�+��>�>�%��L�L�8�D�N�N�#5�6�7��T�1�1�4�R�W�W�U�^�4D�A�F�Fr)
rr#r r"r!rrrrr)rrrr	�__doc__�_SLOTS�	__slots__r&r-rr
rYrcrj�propertyr8rNr�r�r�r�r�r�__classdictcell__��
__classdict__s@rrr5s�����
��I�!��	!�
�!��
!��!�66�i��i��	i�
�i��
i��|�|�i�V8A�
�.�
��
�����"
�$	�,�,�G�Grc�a�]tRtRto]tRRR/RlltRtRtRt	RRlt
R	tR
tRt
RtR
tRtRtV3RlRlt]!]P(!44t]!]P,!44t]!]P0!44t]!]P4!44t]!]P8!44t]!]P<!44t]!]P@!44t!]!]PD!44t#]!]PH!44t%]!]PL!44t']!]PP!44t)]!]PT!44t+]!]PX!44t-AV3RlRlt.].!]P(!44t/].!]P,!44t0].!]P0!44t1].!]P4!44t2].!]P8!44t3].!]P<!44t4].!]P@!44t5].!]PD!44t6].!]PH!44t7].!]PL!44t8].!]PP!44t9].!]PT!44t:].!]PX!44t;A.Rt<]<!]Pz!44t>]<!]P~!44t@]<!]P�!44tB]<!]P�!44tD]<!]P�!44tF]<!]P�!44tHA<RtI]I!]P�!44tK]I!]P�!44tM]I!]P�!44tOAIRtPVtQR#)�_Stringifieri2N�extra_namesc���\V\P\34'gQhRVnRVnW@nRVnRVnWn	W n
WpnWPnW0n
W`nR#)NF)rrm�ASTrrrrrr"r#rr!r r�__stringifier_dict__)r$�noder/rr�cell�stringifier_dictr�s&&&&&&$$rr&�_Stringifier.__init__7se���$����#��/�/�/�/����',��$�$,�!�"&�����
� ��"��*���
���$4�!rc�p�\V\4'df\VP\4'd.\P
!VPR7VP3#VPVP3#\V4\Jd\V4R3#VPP\P8Xg.Ve*\V4\\\\ \"39d\P$!VR7R3#\V4\&Jd�/p.p.pVP)4FwwrVVP+V4wrxVeVP-V4VP/V4VP+V4wr�VeVP-V4VP/V	4Ky	\P0!W44V3#\V4\2\4\639d�/p.p
VF<pVP+V4wr�VeVP-V4V
P/V4K>	\2\P8\4\P:\6\P</\V4,p
V
!V
4V3#VPP?4p\P
!VR7W�/3#)�r�N��value) rr�r#rrm�Namer!r@�	_Template�_template_to_astr�r2rr
�int�float�bool�complex�ConstantrFr�_Stringifier__convert_to_astrDr��Dict�listr}�set�List�Tuple�Set�create_unique_name)r$r�r��keys�values�keyr��new_key�new_extra_names�	new_value�elts�elt�new_elt�	ast_classr6s&&             r�__convert_to_ast�_Stringifier.__convert_to_astQs$���e�\�*�*��%�,�,�c�2�2��x�x�5�#5�#5�6��8M�8M�M�M��%�%�u�'<�'<�<�<�
�%�[�I�
%�#�E�*�D�0�0�
�%�%�,�,��
�
�=��}��E�{�s�C���g�>�>��<�<�e�,�d�2�2�
�%�[�D�
 ��K��D��F�#�k�k�m�
��+/�+@�+@��+E�(��"�.��&�&��7����G�$�-1�-B�-B�5�-I�*�	�"�.��&�&��7��
�
�i�(�,��8�8�D�)�;�6�6�
�%�[�T�5�#�.�
.��K��D���+/�+@�+@��+E�(��"�.��&�&��7����G�$�	�
�s�x�x���	�	�3����H��e��U�I��T�?�K�/�/��,�,�?�?�A�D��8�8�t�$�t�m�3�3rc�aa�\V\4'dU/oVV3Rlp\P!V!VP4V!VP
4V!VP4R7S3#SPV4#)c�d<�VfR#SPV4wrVeSPV4V#r{)r�rD)�obj�new_objr�r�r$s&  ��r�conv�3_Stringifier.__convert_to_ast_getitem.<locals>.conv�s7����;��+/�+@�+@��+E�(��"�.��&�&��7��r)�lower�upper�step)r�slicerm�Slice�start�stopr�r�)r$r�r�r�sf& @r�__convert_to_ast_getitem�%_Stringifier.__convert_to_ast_getitem|sn����e�U�#�#��K�
��9�9��5�;�;�'��5�:�:�&��%�*�*�%���	�
��(�(��/�/rc�x�VPp\V\4'd\P!VR7#V#)r�)r#rrrmr�)r$r�s& r�	__get_ast�_Stringifier.__get_ast�s.��� � ���d�C� � ��8�8�t�$�$��rc	�V�/pVPeVPVP4VeVPV4\TVPVPVP
VPT;'gRR7pVPPPV4V#)N)r�r�)	r!rDr�rrrr��stringifiersr�)r$r�r�r��stringifiers&&&  r�
__make_new�_Stringifier.__make_new�s��������+��"�"�4�#7�#7�8��"��"�"�;�/�"������N�N��%�%�!�6�6�'�/�/�4�

��	
�!�!�.�.�5�5�k�B��rc��\V4#r{r�rps&rr��_Stringifier.__hash__�s���$�x�rc��VPR8Xd\h\V\4'd^/p.pVF<pVP	V4wrVVeVPV4VP
V4K>	\P!V4pMVP	V4wr\V\P4'gQ\V44hVP\P!VP4V4V4#r�)r#�KeyErrorrr}�$_Stringifier__convert_to_ast_getitemrDr�rmr�r��repr�_Stringifier__make_new�	Subscript�_Stringifier__get_ast)r$r�r�r�r�r�r�s&&     r�__getitem__�_Stringifier.__getitem__�s�������/��N��e�U�#�#��K��D���+/�+H�+H��+M�(��"�.��&�&��7����G�$�	�
�I�I�d�O�E�!%�!>�!>�u�!E��E��%����)�)�6�4��;�6�)����s�}�}�T�^�^�-=�u�E�{�S�Src�j�VP\P!VP4V44#r{)r�rm�	Attributer�)r$�attrs&&r�__getattr__�_Stringifier.__getattr__�s#�����s�}�}�T�^�^�-=�t�D�E�Erc���/p.pVF<pVPV4wrgVeVPV4VPV4K>	.pVP4FRwr�VPV
4wr�VeVPV4VP\P
!W�44KT	VP
\P!VP4WH4V4#r{)	r�rDr�rrmrHr��Callr�)r$r+�kwargsr��ast_argsr%�new_argr��
ast_kwargsr�r�r�s&*,         r�__call__�_Stringifier.__call__�s��������C�'+�'<�'<�S�'A�$�G��*��"�"�?�3��O�O�G�$�	�
�
� �,�,�.�J�C�)-�)>�)>�u�)E�&�I��*��"�"�?�3����c�k�k�#�9�:�	)�
���s�x�x����(8�(�O�Q\�]�]rc#�x"�VP\P!VP444x�R#5ir{)r�rm�Starredr�rps&r�__iter__�_Stringifier.__iter__�s$����o�o�c�k�k�$�.�.�*:�;�<�<�s�8:c��\VP\4'd
VP#\P!VP4#r{)rr#rrmrnrps&rr��_Stringifier.__repr__�s6���d�'�'��-�-��$�$�$��{�{�4�,�,�-�-rc��\R4h)z8Cannot stringify annotation containing string formattingr))r$�format_specs&&r�
__format__�_Stringifier.__format__�s���R�S�Src�4<�V^8�dQhRS[P/#���op�rmr�)r2r�s"�r�__annotate__�_Stringifier.__annotate__�s��������rc�a�V3RlpV#)c�<�VPV4wr#VP\P!VP	4SV4V4#r{�r�r�rm�BinOpr��r$r��rhsr�rs&&  �r�binop�'_Stringifier._make_binop.<locals>.binop�s@���#�4�4�U�;��C��?�?��	�	�$�.�.�*�B��4�k��
rr)rrsf r�_make_binop�_Stringifier._make_binop�s���	��rc�4<�V^8�dQhRS[P/#rr)r2r�s"�rrr	�s��������rc�a�V3RlpV#)c�<�VPV4wr#VP\P!VSVP	44V4#r{r)r$r��	new_otherr�rs&&  �r�rbinop�)_Stringifier._make_rbinop.<locals>.rbinop�s@���%)�%:�%:�5�%A�"�I��?�?��	�	�)�R����)9�:�K��
rr)rrsf r�_make_rbinop�_Stringifier._make_rbinop�s���	��
rc�a�V3RlpV#)c�<�VPV4wr#VP\P!VP	4S.V.R7V4#))�left�ops�comparators)r�r�rm�Comparer�rs&&  �r�compare�+_Stringifier._make_compare.<locals>.comparesL���#�4�4�U�;��C��?�?�������)���!$���
�
�
rr)rr"sf r�
_make_compare�_Stringifier._make_compares���		��rc�a�V3RlpV#)c�l<�VP\P!SVP444#r{)r�rm�UnaryOpr�)r$rs&�r�unary_op�-_Stringifier._make_unary_op.<locals>.unary_op's$����?�?�3�;�;�r�4�>�>�3C�#D�E�Err)rr)sf r�_make_unary_op�_Stringifier._make_unary_op&s���	F��r)rr#r r"r!rrrrrr�)NNFNr{)Rrrrr	r�r�r&r�r�r�r�r�r�r�r�r�r�rrrm�Add�__add__�Sub�__sub__�Mult�__mul__�MatMult�
__matmul__�Div�__truediv__�Mod�__mod__�LShift�
__lshift__�RShift�
__rshift__�BitOrr��BitXor�__xor__�BitAnd�__and__�FloorDiv�__floordiv__�Pow�__pow__r�__radd__�__rsub__�__rmul__�__rmatmul__�__rtruediv__�__rmod__�__rlshift__�__rrshift__r��__rxor__�__rand__�
__rfloordiv__�__rpow__r$�Lt�__lt__�LtE�__le__�Eqr��NotEq�__ne__�Gt�__gt__�GtE�__ge__r+�Invert�
__invert__�UAdd�__pos__�USub�__neg__rr�r�s@rr�r�2s������I�5��5�4)4�V0�(��&�T�&F�^� =�.�
T����#�'�'�)�$�G��#�'�'�)�$�G��#�(�(�*�%�G��S�[�[�]�+�J��c�g�g�i�(�K��#�'�'�)�$�G��S�Z�Z�\�*�J��S�Z�Z�\�*�J�
�����
%�F��#�*�*�,�'�G��#�*�*�,�'�G��s�|�|�~�.�L��#�'�'�)�$�G�����C�G�G�I�&�H��C�G�G�I�&�H��C�H�H�J�'�H��s�{�{�}�-�K�����	�*�L��C�G�G�I�&�H��s�z�z�|�,�K��s�z�z�|�,�K��3�9�9�;�'�G��C�J�J�L�)�H��C�J�J�L�)�H� �����0�M��C�G�G�I�&�H����3�6�6�8�
$�F�
�3�7�7�9�
%�F�
�3�6�6�8�
$�F�
�3�9�9�;�
'�F�
�3�6�6�8�
$�F�
�3�7�7�9�
%�F��� ��
�
��-�J��S�X�X�Z�(�G��S�X�X�Z�(�G�rr�c
��.pVF�pV\Rc;e+wVP\P!VR74K9\P!VP
\P!VP
4VPe\VP4MRVPR8wd"\P!VPR7MRR7pVPV4K�	\P!VR7#)rNr�r�)rr��
conversionr)r����)rr�rmr��
Interpolation�
expression�parserd�ordr�TemplateStr)�templater��part�interps&   rr�r�3s���
�F�������
�
�c�l�l��6�7����*�*�����)�)�D�O�O�4� �?�?�6��D�O�O�,�� �+�+�r�1����4�+;�+;�<�!�
���
�
�f�%�)�*�?�?�&�)�)rc�Taa�]tRtRtoRRRRRR/V3RlltRtR	tR
tRtVt	V;t
#)rQiMr/NrrFc�~<�\SV`V4WnW nW0nW@n.Vn^VnWPnR#)�N)	�superr&�	namespacer/rrr��next_idr2)r$rrr/rrr2�	__class__s&&$$$$�rr&�_StringifierDict.__init__Ns8���
����#�"�����
� �
��������rc��\VVPVPVPVR7pVPPV4V#))r/rrr�)r�r/rrr�r�)r$r��fwdrefs&& r�__missing__�_StringifierDict.__missing__XsB�����L�L��*�*��]�]�!�
��	
��� � ��(��
rc���VPFOp\VnRVn\	VP
\4'gK7VP
VnRVnKQ	R#r{)r�rrtr�rr#rr)r$r�s& rrR�_StringifierDict.transmogrifycsI���$�$�C�&�C�M�'+�C�$��#�*�*�C�0�0�!�.�.���#'�� �%rc�X�RVPR2pV;P^,
unV#)�__annotationlib_name_�__)rs)r$r6s& rr��#_StringifierDict.create_unique_nameks'��&�t�|�|�n�B�7���������r)r2r/rrrrsrr�)rrrr	r&rxrRr�rr��
__classcell__)rtr�s@@rrQrQMs3�����T������	�(��rrQrc��\WVRR7#)z�Call an evaluate function. Evaluate functions are normally generated for
the value of type aliases and the bounds, constraints, and defaults of
type parameter objects.
T)r�_is_evaluate)�call_annotate_function)rYr2rs&&$r�call_evaluate_functionr�qs��
"�(�%�d�S�Srr�Fc	��V\P8Xd\R4hV!V4# \dMi;iT\P8Xd�\/TR7p\
T\4p\YYTRR7p\P!TPTTTPTPR7pT!\P4pT'd\T4#TP4U	U
u/uFwr�T	\T
4bK	up
p	#uup
p	iT\P 8XEd�/TP"CTP$Cp\
T\4p\TTP$TTTR7p\YYTRR7p\P!TPTTTPTPR7pT!\P4pTP'4T# \(dMi;i\/TP$TTTR7p\YYTRR7p\P!TPTTTPTPR7pT!\P4pTP'4T'd9\
T\*4'd!TP-\P R7#T#TP4U	U
u/uF>wr�T	\
T
\*4'd!T
P-\P R7MT
bK@	up
p	#uup
p	iT\P.8Xd\1R4h\R	T:24h)
aZCall an __annotate__ function. __annotate__ functions are normally
generated by the compiler to defer the evaluation of annotations. They
can be called with any of the format arguments in the Format enum, but
compiler-generated __annotate__ functions only support the VALUE format.
This function provides additional functionality to call __annotate__
functions with the FORWARDREF and STRING formats.

*annotate* must be an __annotate__ function, which takes a single argument
and returns a dict of annotations.

*format* must be a member of the Format enum or one of the corresponding
integer values.

*owner* can be the object that owns the annotations (i.e., the module,
class, or function that the __annotate__ function derives from). With the
FORWARDREF format, it is used to provide better evaluation capabilities
on the generated ForwardRef objects.

�;The VALUE_WITH_FAKE_GLOBALS format is for internal use only)r2F)�allow_evaluation)�closure�argdefs�
kwdefaultsr7Tz/annotate function does not support VALUE formatzInvalid format: )rrr;r9r
rQrr@�_build_closurerA�FunctionTyper"�__defaults__�__kwdefaults__�_stringify_singlerr�__builtins__rrRrPrrYr
�RuntimeError)
�annotater2rr�r/rr��func�annosr��valrrrXs
&&$$         rr�r�ys��(��/�/�/��V�W�W�
�������
��
��
�����#�2�f�5���e�T�*�� ��X��
���!�!�������)�)��.�.�
���V�3�3�4���$�U�+�+�"�K�K�M�
�)���
�"�3�'�'�)�
�	
��
�
�6�$�$�	$�$F�x�,�,�E��0D�0D�E�	��e�T�*��"���(�(����
��!��X��
���!�!�������)�)��.�.�
��	��&�8�8�9�F�
� � �"��M��	�	��	��#���(�(����
��!��X��
���!�!�������)�)��.�.�
���f�4�4�5��������&�*�-�-����f�.?�.?��@�@��
�!'����
�!/�H�C��!�#�z�2�2��L�L��(9�(9�L�:���
!/�
�
���
�6�<�<�	��L�M�M��+�F�:�6�7�7s+�*�8�8�0D�3G�G)�(G)�ALc
��VP'gR#VPPp.p\VP4F�wrxV\	V48d
WW,p	MRp	Rp
V'dVP
Tp
V
fM\V	VVVPVVR7pVPPV4\P!V4p
VPV
4K�	\V4# \dL}i;i)Nr )r�rr/rr�)�__closure__r"�co_freevars�	enumerate�lenr:r;r�rr�r�rA�CellTyper})r�rrr�r��freevars�new_closure�ir�r6�new_cellrws&&&&$       rr�r�s��������� � �,�,�H��K��X�1�1�2����s�8�}���;�D��D����
 ��"�"� ����!���� �,�,�!�!1�
�F�
�)�)�0�0��8��~�~�f�-�H����8�$�13�2�����!�
��
�s�-C+�+C9�8C9c���VRJdR#\V\4'dV#\V\4'd \P!\V44#\
V4#).�...)rrr�rmrnr�r�)�annos&rr�r�'sJ���s�{��	�D�#�	�	���	�D�)�	$�	$��{�{�+�D�1�2�2��D�z�rc�\�VR,# \dTPRR4u#i;i)z�Retrieve the annotate function from a class namespace dictionary.

Return None if the namespace does not contain an annotate function.
This is useful in metaclass ``__new__`` methods to retrieve the annotate function.
r�__annotate_func__N)r�r?)r�s&r�!get_annotate_from_class_namespacer�3s3��2��>�"�"���2��w�w�*�D�1�1�2�s��+�+r/r0�eval_strr2c
�0�V'd!V\P8wd\R4hT;\P8Xd\V4pVf�\	W4pM�;\P
8Xd9\V4pVe\
V4#\	W4pVf�\V4pMy;\P8Xd6\	W4pVe\
V4#\V4pVe;\V4#\P8Xd\R4h\RV:24hVf9\V\4'g\V4'd/#\V:R24hV'g/#V'g\
V4#VeVEfs\V\4'ddRp\VRR4pV'd6\ P"P%VR4pV'd\VRR4p\
\'V44p	Tp
MY\V\(P*4'd\VR4pRp	Rp
M(\V4'd\VRR4pRp	Tp
MR;p;r�V
e�\-V
R	4'dV
P.p
K!\ P"P%R
4;p'd*\W�P04'dV
P2p
Kq\-T
R4'd
T
P4pVfTpVfT	p\VRR4;p'd*Vf/pVU
u/uFq�P6V
bK	up
V,pVP94UUu/uF*wr�T\V\:4'gTM\=W�V4bK,	pppV# \dEL�i;iuup
iuuppi)
a�Compute the annotations dict for an object.

obj may be a callable, class, module, or other object with
__annotate__ or __annotations__ attributes.
Passing any other object raises TypeError.

The *format* parameter controls the format in which annotations are returned,
and must be a member of the Format enum or its integer equivalent.
For the VALUE format, the __annotations__ is tried first; if it
does not exist, the __annotate__ function is called. The
FORWARDREF format uses __annotations__ if it exists and can be
evaluated, and otherwise falls back to calling the __annotate__ function.
The SOURCE format tries __annotate__ first, and falls back to
using __annotations__, stringified using annotations_to_string().

This function handles several details for you:

  * If eval_str is true, values of type str will
    be un-stringized using eval().  This is intended
    for use with stringized annotations
    ("from __future__ import annotations").
  * If obj doesn't have an annotations dict, returns an
    empty dict.  (Functions and methods always have an
    annotations dict; classes, modules, and other types of
    callables may not.)
  * Ignores inherited annotations on classes.  If a class
    doesn't have its own annotations dict, returns an empty dict.
  * All accesses to object members and dict values are done
    using getattr() and dict.get() for safety.
  * Always, always, always returns a freshly-created dict.

eval_str controls whether or not values of type str are replaced
with the result of calling eval() on those values:

  * If eval_str is true, eval() is called on values of type str.
  * If eval_str is false (the default), values of type str are unchanged.

globals and locals are passed in to eval(); see the documentation
for eval() for more information.  If either globals or locals is
None, this function may replace that value with a context-specific
default, contingent on type(obj):

  * If obj is a module, globals defaults to obj.__dict__.
  * If obj is a class, globals defaults to
    sys.modules[obj.__module__].__dict__ and locals
    defaults to the obj class namespace.
  * If obj is a callable, globals defaults to obj.__globals__,
    although if obj is a wrapped function (using
    functools.update_wrapper()) it is first unwrapped.
z8eval_str=True is only supported with format=Format.VALUENr�zUnsupported format z does not have annotationsrr4r�__wrapped__�	functoolsr5r)rr
r;�_get_dunder_annotations�_get_and_call_annotaterrFrPr
�annotations_to_stringrrr@rCrr<r=r>r?rErArBrJr��partialr�rrrrrO)r�r/r0r�r2�ann�obj_globalsrTr�
obj_locals�unwrapr�r1rUr�r��return_values&$$$$            r�get_annotationsr�?s2��j�F�f�l�l�*��S�T�T�
�
�V�\�\�)�#�.�C��{�,�S�9��
�V�
�
�
%�-�c�2���?���9�$�#�)��5�C��{�.�c�2��
�V�]�]�(��5�C����C�y� �)�#�.�C���,�S�1�1�
�
+�
+��Z�[�[�
��2�6�*�=�>�>�
�{��c�4� � �H�S�M�M��I��3�'�!;�<�=�=���	���C�y����&�.��c�4� � ��K�!�#�|�T�:�K��������d�;���")�&�*�d�"C�K��d�3�i��J��F�
��U�-�-�
.�
.�!�#�z�2�K��J��F�
�c�]�]�"�#�}�d�;�K��J��F�04�4�K�4�*�����6�=�1�1�#�/�/�F�� #������ <�<�9�<�!�&�*;�*;�<�<�!'���� ���v�}�-�-�$�0�0���?�!�G��>��F�
�c�#4�b�9�9�{�9��>��F�5@�A�[�E�.�.�%�'�[�A�F�J���)�)�+��%�J�C�	�*�U�C�0�0�U�d�5�6�6R�R�%������}�
��
��pB��s�2M;�N
�0N�;N
�	N
c�p�\V\\P\P34'd9VP
R8Xd
VP#VP
RVP2#\V\4'd"\V4p\P!V4#VRJdR#\V4#)aConvert a Python value to a format suitable for use with the STRING format.

This is intended as a helper for tools that support the STRING format but do
not have access to the code that originally produced the annotations. It uses
repr() for most objects.

rK�..r�)rr@rAr��BuiltinFunctionTyperrr�r�rmrnr�)r��trees& r�	type_reprr��s����%�$�� 2� 2�E�4M�4M�N�O�O����z�)��%�%�%��"�"�#�1�U�%7�%7�$8�9�9�	�E�9�	%�	%���&���{�{�4� � ���|����;�rc	��VP4UUu/uF)wrT\V\4'dTM
\V4bK+	upp#uuppi)zwConvert an annotation dict containing values to approximately the STRING format.

Always returns a fresh a dictionary.
)rrrr�)�annotations�n�ts&  rr�r��sK�� �%�%�'��'�D�A�	
�
�1�c�"�"�1�	�!��4�'����s�/Ac��\VRR4pVe5\W!VR7p\V\4'g\	V:R24hV#R#)zOGet the __annotate__ function and call it.

May not return a fresh dictionary.
rN)rz!.__annotate__ returned a non-dict)r<r�rrFr;)r�r2r�r�s&&  rr�r�sL��
�s�N�D�1�H���$�X�S�A���#�t�$�$���w�&G�H�I�I��
�r�__annotations__c���\V\4'd\V4pM\	VRR4pVfR#\V\
4'g\
V:R24hV# \dR#i;i)zmReturn the annotations for an object, checking that it is a dictionary.

Does not return a fresh dictionary.
Nr�z+.__annotations__ is neither a dict nor None)rr@�_BASE_GET_ANNOTATIONS�AttributeErrorr<rFr;)r�r�s& rr�r�sr���#�t���	�'��,�C�
�c�,�d�3���;���c�4� � ��C�7�"M�N�O�O��J���	��	�s�A�A-�,A-)rrr�r�r�r�r�r�)rrr�__weakref__rrr!r"r#r rr�)r�r)#r�rmrK�enumrHr=rA�__all__�IntEnumr�objectrcrMr�rr@r�r�r�rFrQr�r�r�r�r�r
r�r�r�r�r4�__get__r�r�rrr�<module>r�s��9�
����
��	���T�\�\��
�H�	�5��
�� wG�wG�t
��I�	�~�~�B*�4!�t�!�HT�d�T�J8�d�J8��J8�Z�B	�	2�b��b�!%�b�05�b�>D�l�l�b�J�(���
�
�&7�8�@�@��r