§
    ŒŸjîH  ã                   óÖ  — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ  e¦   «         ZerddlmZ  G d„ de¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Zd%d„Z  G d„ de¦  «        Z! G d„ de!¦  «        Z" G d„ de!¦  «        Z# G d„ de¦  «        Z$ G d„ d ¦  «        Z%d!„ Z& G d"„ d#¦  «        Z' e'g ¦  «        Z(d$„ Z)dS )&a4  
Values are the "values" that Python would return. However Values are at the
same time also the "values" that a user is currently sitting in.

A ValueSet is typically used to specify the return of a function or any other
static analysis operation. In jedi there are always multiple returns and not
just one.
é    )Úreduce)Úadd)Úzip_longest)ÚTYPE_CHECKINGÚAny)ÚName)Údebug)Úclean_scope_docstring©ÚSimpleGetItemNotFound)Úsafe_property)Ú%inference_state_as_method_param_cache)Úmemoize_method)ÚInferenceStatec                   ó   — e Zd ZdS )ÚHasNoContextN)Ú__name__Ú
__module__Ú__qualname__© ó    úf/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/inference/base_value.pyr   r      s   € € € € € Ø€Dr   r   c                   óà   — e Zd ZU eed<   ded<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   d„ Zd„ Zd„ Zd„ Zd„ Z	dd„Z
d„ Zdd„Z	 	 dd„Zd„ Zd„ Zdd„Zd„ Zd„ Zed„ ¦   «         ZdS ) ÚHelperValueMixinÚparent_contextr   Úinference_stateÚnameÚget_filtersÚis_stubÚpy__getattribute__alternativesÚ
py__iter__Ú	py__mro__Ú_as_contextc                 ó`   — | }|j         €|                     ¦   «         S 	 |j         €|S |j         }Œ©N)r   Ú
as_context)ÚselfÚvalues     r   Úget_root_contextz!HelperValueMixin.get_root_context,   sB   € ØˆØÔÐ'Ø×#Ò#Ñ%Ô%Ð%ð	)ØÔ#Ð+Ø�ØÔ(ˆEð	)r   c                 ó:   — | j                              | |¬¦  «        S )N)Ú	arguments©r   Úexecute©r'   r+   s     r   r-   zHelperValueMixin.execute6   s   € ØÔ#×+Ò+¨D¸IÐ+ÑFÔFÐFr   c                 ón   — ddl m}  |d„ |D ¦   «         ¦  «        }| j                             | |¦  «        S )Nr   )ÚValuesArgumentsc                 ó.   — g | ]}t          |g¦  «        ‘ŒS r   ©ÚValueSet)Ú.0r(   s     r   ú
<listcomp>z8HelperValueMixin.execute_with_values.<locals>.<listcomp>;   s"   € Ð$OÐ$OÐ$O¸5¥X¨u¨gÑ%6Ô%6Ð$OÐ$OÐ$Or   )Újedi.inference.argumentsr0   r   r-   )r'   Ú
value_listr0   r+   s       r   Úexecute_with_valuesz$HelperValueMixin.execute_with_values9   sK   € Ø<Ð<Ð<Ð<Ð<Ð<Ø#�OÐ$OÐ$OÀJÐ$OÑ$OÔ$OÑPÔPˆ	ØÔ#×+Ò+¨D°)Ñ<Ô<Ð<r   c                 ó*   — |                       ¦   «         S r%   ©r8   )r'   Úcontexts     r   Úexecute_annotationz#HelperValueMixin.execute_annotation>   s   € Ø×'Ò'Ñ)Ô)Ð)r   c                 ó"   — t          | g¦  «        S r%   r2   ©r'   s    r   Úgather_annotation_classesz*HelperValueMixin.gather_annotation_classesA   s   € Ý˜˜ÑÔÐr   NFc                 ór   — t                                d„ |                      ||¦  «        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r%   ©Úinfer©r4   Ú
lazy_values     r   ú	<genexpr>z:HelperValueMixin.merge_types_of_iterate.<locals>.<genexpr>E   sB   è è € ð "
ð "
àð ×ÒÑÔð"
ð "
ð "
ð "
ð "
ð "
r   ©r3   Ú	from_setsÚiterate)r'   Úcontextualized_nodeÚis_asyncs      r   Úmerge_types_of_iteratez'HelperValueMixin.merge_types_of_iterateD   sE   € Ý×!Ò!ð "
ð "
à"ŸlšlÐ+>ÀÑIÔIð"
ñ "
ô "
ñ 
ô 
ð 	
r   c              #   ó  K  — t          |t          ¦  «        r|nd }|                      |¬¦  «        E d {V —† |                      ¦   «         r<ddlm}  |t          | h¦  «        ¦  «        D ]}|                     ¦   «         E d {V —† Œd S d S )N)Úorigin_scoper   )Úconvert_values)Ú
isinstancer   r   r   Ú!jedi.inference.gradual.conversionrO   r3   )r'   Úname_or_strrN   rO   Úcs        r   Ú_get_value_filtersz#HelperValueMixin._get_value_filtersJ   sÃ   è è € Ý&0°½dÑ&CÔ&CÐM�{�{ÈˆØ×#Ò#°Ð#Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>à�<Š<‰>Œ>ð 	+ØHÐHÐHÐHÐHÐHØ#�^¥H¨d¨VÑ$4Ô$4Ñ5Ô5ð +ð +�ØŸ=š=™?œ?Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð	+ð 	+ð+ð +r   Tc                 ó–   — ddl m} |                      |¦  «        }|                     ||¦  «        }t	          j        d|| |¦  «         |S )Nr   )Úfinderzcontext.goto %s in (%s): %s)Újedi.inferencerV   rT   Úfilter_namer	   Údbg)r'   rR   Úname_contextÚanalysis_errorsrV   ÚfiltersÚnamess          r   ÚgotozHelperValueMixin.gotoS   sX   € Ø)Ð)Ð)Ð)Ð)Ð)Ø×)Ò)¨+Ñ6Ô6ˆØ×"Ò" 7¨KÑ8Ô8ˆÝŒ	Ð/°¸dÀEÑJÔJÐJØˆr   c                 óŠ  — |€| }|                       |||¦  «        }t                               d„ |D ¦   «         ¦  «        }|s3t          |t          ¦  «        r|j        n|}|                      |¦  «        }|s6|s4|r2t          |t          ¦  «        rddlm} | 	                    || |¦  «         t          j        d||¦  «         |S )zZ
        :param position: Position of the last statement -> tuple of line, column
        Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r%   rB   )r4   r   s     r   rF   z6HelperValueMixin.py__getattribute__.<locals>.<genexpr>b   s*   è è € Ð#CÐ#C°T D§J¢J¡L¤LÐ#CÐ#CÐ#CÐ#CÐ#CÐ#Cr   r   ©Úanalysisz context.names_to_types: %s -> %s)r^   r3   rH   rP   r   r(   r    rW   rb   Úadd_attribute_errorr	   rY   )	r'   rR   rZ   Úpositionr[   r]   ÚvaluesÚnrb   s	            r   Úpy__getattribute__z#HelperValueMixin.py__getattribute__Z   sð   € ð
 ÐØˆLØ—	’	˜+ |°_ÑEÔEˆÝ×#Ò#Ð#CÐ#C¸UÐ#CÑ#CÔ#CÑCÔCˆØð 	<Ý%/°½TÑ%BÔ%BÐS�Ô!Ð!ÈˆAØ×8Ò8¸Ñ;Ô;ˆFàð 	5˜Vð 	5¨ð 	5Ý˜+¥tÑ,Ô,ð 5Ø3Ð3Ð3Ð3Ð3Ð3Ø×,Ò,Ø  $¨ñ5ô 5ð 5åŒ	Ð4°e¸VÑDÔDÐDØˆr   c                 ó‚   — |                       d¦  «        }|st          j        d| ¦  «         |                     ¦   «         S )NÚ	__await__z"Tried to run __await__ on value %s)rg   r	   Úwarningr8   )r'   Úawait_value_sets     r   Úpy__await__zHelperValueMixin.py__await__o   sC   € Ø×1Ò1°+Ñ>Ô>ˆØð 	FÝŒMÐ>ÀÑEÔEÐEØ×2Ò2Ñ4Ô4Ð4r   c                 ó   — | j         j        S r%   )r   Ústring_namer>   s    r   Ú
py__name__zHelperValueMixin.py__name__u   s   € ØŒyÔ$Ð$r   c                 óš  — t          j        d| ¦  «         |r ddlm} t	           ||                      d¦  «                             ¦   «                              d¦  «                             ¦   «                              d¦  «                             ¦   «                              ¦   «         ¦  «        g¦  «        S |                      |¦  «        S )Nz
iterate %sr   )ÚLazyKnownValuesÚ	__aiter__Ú	__anext__ri   )	r	   rY   Újedi.inference.lazy_valuerq   Úiterrg   r8   Úpy__stop_iteration_returnsr!   )r'   rJ   rK   rq   s       r   rI   zHelperValueMixin.iteratex   sÈ   € ÝŒ	�, Ñ%Ô%Ð%Øð 	ØAÐAÐAÐAÐAÐAõ Ø�Ø×+Ò+¨KÑ8Ô8×LÒLÑNÔNß+Ò+¨KÑ8Ô8×9LÒ9LÑ9NÔ9Nß+Ò+¨KÑ8Ô8×9LÒ9LÑ9NÔ9Nß3Ò3Ñ5Ô5ñ	ô ðñ ô ð ð �ŠÐ2Ñ3Ô3Ð3r   c                 ó>  — t          j        d| ›d|›�d¬¦  «        5  |                      ¦   «         D ];}|                     |¦  «        r$t          j        dd¬¦  «          d d d ¦  «         dS Œ<t          j        dd¬¦  «         	 d d d ¦  «         dS # 1 swxY w Y   d S )	Nzsubclass matching of z <=> ÚBLUE)Úcolorzmatched subclass TrueTzmatched subclass FalseF)r	   Úincrease_indent_cmr"   Úis_same_classrY   )r'   Úclass_valueÚclss      r   Úis_sub_class_ofz HelperValueMixin.is_sub_class_ofˆ   s#  € ÝÔ%Ð%È$È$È$ÐP[ÐP[Ð&\Ø,2ð4ñ 4ô 4ð 	ð 	à—~’~Ñ'Ô'ð  ð  �Ø×$Ò$ [Ñ1Ô1ð  Ý”IÐ5¸VÐDÑDÔDÐDØð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð õ ŒIÐ.°fÐ=Ñ=Ô=Ð=Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �ABÁ-BÂBÂBc                 ó|   — t          |¦  «        j        t          j        k    r|                     | ¦  «        S | |k    S r%   )Útyper{   r   )r'   Úclass2s     r   r{   zHelperValueMixin.is_same_class’   s8   € å�‰<Œ<Ô%Õ)9Ô)GÒGÐGØ×'Ò'¨Ñ-Ô-Ð-Ø�vŠ~Ðr   c                 ó   —  | j         |i |¤ŽS r%   )r#   ©r'   ÚargsÚkwargss      r   r&   zHelperValueMixin.as_context˜   s   € àˆtÔ Ð0¨Ð0Ð0Ð0r   ©NF)NT)NNT)r   r   r   r   Ú__annotations__r)   r-   r8   r<   r?   rL   rT   r^   rg   rl   ro   rI   r~   r{   r   r&   r   r   r   r   r   !   s„  € € € € € € ØÐÐÑØ%Ð%Ð%Ñ%Ø
€I€I�IØÐÐÑØ€L€L�LØ$'Ð'Ð'Ñ'Ø€O€O�OØ€N€N�NØÐÐÑð)ð )ð )ðGð Gð Gð=ð =ð =ð
*ð *ð *ð ð  ð  ð
ð 
ð 
ð 
ð+ð +ð +ðð ð ð ð KOØ+/ðð ð ð ð*5ð 5ð 5ð%ð %ð %ð4ð 4ð 4ð 4ð ð ð ðð ð ð ð1ð 1ñ „^ð1ð 1ð 1r   r   c                   óî   — e Zd ZdZdZdZdZd#d„Zd„ Zd„ Z	d#d„Z
d#d„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zefd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"e#d„ ¦   «         Z$d$d!„Z%d"„ Z&dS )%ÚValuez*
    To be implemented by subclasses.
    NÚnot_defined_please_report_bugc                 ó"   — || _         || _        d S r%   )r   r   )r'   r   r   s      r   Ú__init__zValue.__init__§   s   € Ø.ˆÔØ,ˆÔÐÐr   c                 óh   — ddl m} |                     |j        d|j        d| z  ¬¦  «         t
          S )Nr   ra   ztype-error-not-subscriptablez+TypeError: '%s' object is not subscriptable©Úmessage)rW   rb   r   r;   ÚnodeÚ	NO_VALUES)r'   Úindex_value_setrJ   rb   s       r   Úpy__getitem__zValue.py__getitem__«   sN   € Ø+Ð+Ð+Ð+Ð+Ð+à�ŠØÔ'Ø*ØÔ$ØAÀDÑHð	 	ñ 	
ô 	
ð 	
õ Ðr   c                 ó   — t           ‚r%   r   )r'   Úindexs     r   Úpy__simple_getitem__zValue.py__simple_getitem__¶   s   € Ý#Ð#r   c                 ó|   — |�,ddl m} |                     |j        d|j        d| z  ¬¦  «         t          g ¦  «        S )Nr   ra   ztype-error-not-iterablez&TypeError: '%s' object is not iterablerŽ   )rW   rb   r   r;   r�   ru   )r'   rJ   rb   s      r   r!   zValue.py__iter__¹   s\   € ØÐ*Ø/Ð/Ð/Ð/Ð/Ð/Ø�LŠLØ#Ô+Ø)Ø#Ô(Ø@À4ÑGð	 ñ Iô Ið Iõ
 �B‰xŒxˆr   c                 ó,   — |                       |¦  «        S r%   )r!   )r'   rJ   s     r   Ú
py__next__zValue.py__next__Ã   s   € Ø�ŠÐ2Ñ3Ô3Ð3r   c                 ó   — g S r%   r   r>   s    r   Úget_signatureszValue.get_signaturesÆ   s   € Øˆ	r   c                 ó   — dS r†   r   r>   s    r   Úis_classzValue.is_classÉ   ó   € Øˆur   c                 ó   — dS r†   r   r>   s    r   Úis_class_mixinzValue.is_class_mixinÌ   rž   r   c                 ó   — dS r†   r   r>   s    r   Úis_instancezValue.is_instanceÏ   rž   r   c                 ó   — dS r†   r   r>   s    r   Úis_functionzValue.is_functionÒ   rž   r   c                 ó   — dS r†   r   r>   s    r   Ú	is_modulezValue.is_moduleÕ   rž   r   c                 ó   — dS r†   r   r>   s    r   Úis_namespacezValue.is_namespaceØ   rž   r   c                 ó   — dS r†   r   r>   s    r   Úis_compiledzValue.is_compiledÛ   rž   r   c                 ó   — dS r†   r   r>   s    r   Úis_bound_methodzValue.is_bound_methodÞ   rž   r   c                 ó   — dS r†   r   r>   s    r   Úis_builtins_modulezValue.is_builtins_moduleá   rž   r   c                 ó   — dS )z‚
        Since Wrapper is a super class for classes, functions and modules,
        the return value will always be true.
        Tr   r>   s    r   Ú
py__bool__zValue.py__bool__ä   s	   € ð
 ˆtr   c                 óf   — 	 | j         j         t          | j         ¦  «        S # t          $ r Y dS w xY w)NÚ )Ú	tree_nodeÚget_doc_noder
   ÚAttributeErrorr>   s    r   Ú	py__doc__zValue.py__doc__ë   sH   € ð	9ØŒNÔ'Ð'õ )¨¬Ñ8Ô8Ð8øõ ð 	ð 	ð 	Ø�2�2ð	øøøs   ‚" ¢
0¯0c                 ó<   — |t           u rt          d| z  ¦  «        ‚|S )Nz'There exists no safe value for value %s)ÚsentinelÚ
ValueError)r'   Údefaults     r   Úget_safe_valuezValue.get_safe_valueó   s&   € Ø•hÐÐÝÐFÈÑMÑNÔNÐNØˆr   c                 ó>   — t          j        d|| |¦  «         t          S )Nz!%s not possible between %s and %s©r	   rj   r‘   )r'   ÚotherÚoperators      r   Úexecute_operationzValue.execute_operationø   s   € ÝŒÐ9¸8ÀTÈ5ÑQÔQÐQÝÐr   c                 ó:   — t          j        d| ¦  «         t          S )Nzno execution possible %sr½   r.   s     r   Ú
py__call__zValue.py__call__ü   s   € ÝŒÐ0°$Ñ7Ô7Ð7ÝÐr   c                 ó:   — t          j        d| ¦  «         t          S )Nz0Not possible to return the stop iterations of %sr½   r>   s    r   rv   z Value.py__stop_iteration_returns   s   € ÝŒÐHÈ$ÑOÔOÐOÝÐr   c                 ó   — t           S )zH
        For now a way to add values in cases like __getattr__.
        )r‘   )r'   rR   s     r   r    z$Value.py__getattribute__alternatives  s
   € õ Ðr   c                 óL   — t          j        d| ¦  «         t          | g¦  «        S )NzNo __get__ defined on %s)r	   rj   r3   )r'   Úinstancer|   s      r   Ú	py__get__zValue.py__get__
  s%   € ÝŒÐ0°$Ñ7Ô7Ð7Ý˜˜ÑÔÐr   c                 ó   — t           S r%   )ÚNotImplemented)r'   Úcalling_instancerÆ   r|   s       r   Úpy__get__on_classzValue.py__get__on_class  s   € ÝÐr   c                 ó   — d S r%   r   r>   s    r   Úget_qualified_nameszValue.get_qualified_names  s   € àˆtr   c                 ó4   — | j                              ¦   «         S r%   )r   r   r>   s    r   r   zValue.is_stub  s   € àÔ"×*Ò*Ñ,Ô,Ð,r   c                 ó   — t           ‚r%   )r   r>   s    r   r#   zValue._as_context  s   € ÝÐr   c                 ó   — t           ‚r%   ©ÚNotImplementedErrorr>   s    r   r   z
Value.name  s   € å!Ð!r   Tc                 ó   — d S r%   r   )r'   Úadd_class_infos     r   Úget_type_hintzValue.get_type_hint   s   € Øˆtr   c                 ó   — i S )an  
        When the current instance represents a type annotation, this method
        tries to find information about undefined type vars and returns a dict
        from type var name to value set.

        This is for example important to understand what `iter([1])` returns.
        According to typeshed, `iter` returns an `Iterator[_T]`:

            def iter(iterable: Iterable[_T]) -> Iterator[_T]: ...

        This functions would generate `int` for `_T` in this case, because it
        unpacks the `Iterable`.

        Parameters
        ----------

        `self`: represents the annotation of the current parameter to infer the
            value for. In the above example, this would initially be the
            `Iterable[_T]` of the `iterable` parameter and then, when recursing,
            just the `_T` generic parameter.

        `value_set`: represents the actual argument passed to the parameter
            we're inferred for, or (for recursive calls) their types. In the
            above example this would first be the representation of the list
            `[1]` and then, when recursing, just of `1`.
        r   )r'   Ú	value_sets     r   Úinfer_type_varszValue.infer_type_vars#  s	   € ð6 ˆ	r   r%   ©T)'r   r   r   Ú__doc__r³   Ú
array_typeÚapi_typerŒ   r“   r–   r!   r™   r›   r�   r    r¢   r¤   r¦   r¨   rª   r¬   r®   r°   r¶   r¸   r»   rÀ   rÂ   rv   r    rÇ   rË   rÍ   r   r#   Úpropertyr   rÕ   rØ   r   r   r   r‰   r‰   �   s  € € € € € ðð ð €Ið €JØ.€Hð-ð -ð -ð -ð	ð 	ð 	ð$ð $ð $ðð ð ð ð4ð 4ð 4ð 4ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð9ð 9ð 9ð &.ð ð ð ð ð
ð ð ðð ð ðð ð ðð ð ð ð  ð  ðð ð ðð ð ð-ð -ð -ðð ð ð ð"ð "ñ „Xð"ðð ð ð ðð ð ð ð r   r‰   NFc                 ót   — t                                d„ |                      ||¬¦  «        D ¦   «         ¦  «        S )zƒ
    Calls `iterate`, on all values but ignores the ordering and just returns
    all values that the iterate functions yield.
    c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r%   rB   rD   s     r   rF   z!iterate_values.<locals>.<genexpr>F  sB   è è € ð ð àð 	×ÒÑÔðð ð ð ð ð r   ©rK   rG   )re   rJ   rK   s      r   Úiterate_valuesrá   A  sI   € õ
 ×Òð ð à Ÿ.š.Ð)<Àx˜.ÑPÔPðñ ô ñ ô ð r   c                   ó`   — e Zd Zed„ ¦   «         Ze e¦   «         d„ ¦   «         ¦   «         Zd„ ZdS )Ú_ValueWrapperBasec                 ó„   — ddl m} | j        j        }|j        � || |j        ¦  «        S ddlm}  || |j        ¦  «        S )Nr   )Ú	ValueName)ÚCompiledValueName)Újedi.inference.namesrå   Ú_wrapped_valuer   Ú	tree_nameÚjedi.inference.compiledræ   rn   )r'   rå   Úwrapped_nameræ   s       r   r   z_ValueWrapperBase.nameM  se   € à2Ð2Ð2Ð2Ð2Ð2ØÔ*Ô/ˆØÔ!Ð-Ø�9˜T <Ô#9Ñ:Ô:Ð:àAÐAÐAÐAÐAÐAØ$Ð$ T¨<Ô+CÑDÔDÐDr   c                 ó   —  | |i |¤ŽS r%   r   )r}   r   r„   r…   s       r   Úcreate_cachedz_ValueWrapperBase.create_cachedW  s   € ð ˆs�DÐ#˜FÐ#Ð#Ð#r   c                 óL   — |dk    s
J d¦   «         ‚t          | j        |¦  «        S )Nrè   zProblem with _get_wrapped_value)Úgetattrrè   )r'   r   s     r   Ú__getattr__z_ValueWrapperBase.__getattr__\  s0   € ØÐ'Ò'Ð'Ð'Ð)JÑ'Ô'Ð'Ý�tÔ*¨DÑ1Ô1Ð1r   N)	r   r   r   r   r   Úclassmethodr   rí   rð   r   r   r   rã   rã   L  sn   € € € € € ØðEð Eñ „]ðEð Ø*Ð*Ñ,Ô,ð$ð $ñ -Ô,ñ „[ð$ð2ð 2ð 2ð 2ð 2r   rã   c                   ób   — e Zd Zeredefd„¦   «         Zneed„ ¦   «         ¦   «         Zd„ Z	d„ Z
dS )ÚLazyValueWrapperÚreturnc                 ó   — d S r%   r   r>   s    r   rè   zLazyValueWrapper._wrapped_valuec  s   € àˆFr   c                 ó†   — t          j        d¦  «        5  |                      ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )NzResolve lazy value wrapper)r	   rz   Ú_get_wrapped_valuer>   s    r   rè   zLazyValueWrapper._wrapped_valueg  s‰   € õ Ô)Ð*FÑGÔGð 1ð 1Ø×.Ò.Ñ0Ô0ð1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s   •6¶:½:c                 ó    — d| j         j        z  S )Nz<%s>)Ú	__class__r   r>   s    r   Ú__repr__zLazyValueWrapper.__repr__m  s   € Ø˜œÔ0Ñ1Ð1r   c                 ó   — t           ‚r%   rÑ   r>   s    r   r÷   z#LazyValueWrapper._get_wrapped_valuep  s   € Ý!Ð!r   N)r   r   r   r   rÝ   r   rè   r   r   rú   r÷   r   r   r   ró   ró   a  s‰   € € € € € Øð 	1Ø	ð	 Cð 	ð 	ð 	ñ 
Œð	ð 	ð 
Ø	ð	1ð 	1ñ 
Œñ 
Œð	1ð2ð 2ð 2ð"ð "ð "ð "ð "r   ró   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚValueWrapperc                 ó   — || _         d S r%   )rè   )r'   Úwrapped_values     r   rŒ   zValueWrapper.__init__u  s   € Ø+ˆÔÐÐr   c                 ó0   — | j         j        ›d| j        ›d�S )Nú(ú))rù   r   rè   r>   s    r   rú   zValueWrapper.__repr__x  s!   € Øœ>Ô2Ð2Ð2°DÔ4GÐ4GÐ4GÐHÐHr   N)r   r   r   rŒ   rú   r   r   r   rý   rý   t  s7   € € € € € ð,ð ,ð ,ðIð Ið Ið Ið Ir   rý   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú	TreeValuec                 óZ   •— t          ¦   «                              ||¦  «         || _        d S r%   )ÚsuperrŒ   r³   )r'   r   r   r³   rù   s       €r   rŒ   zTreeValue.__init__}  s(   ø€ Ý‰Œ×Ò˜¨.Ñ9Ô9Ð9Ø"ˆŒˆˆr   c                 ó2   — d| j         j        ›d| j        ›d�S )Nú<ú: ú>)rù   r   r³   r>   s    r   rú   zTreeValue.__repr__�  s    € € Ø!œ^Ô4Ð4Ð4°d´n°n°nÐEÐEr   )r   r   r   rŒ   rú   Ú__classcell__)rù   s   @r   r  r  |  sN   ø€ € € € € ð#ð #ð #ð #ð #ðFð Fð Fð Fð Fð Fð Fr   r  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚContextualizedNodec                 ó"   — || _         || _        d S r%   )r;   r�   )r'   r;   r�   s      r   rŒ   zContextualizedNode.__init__†  s   € ØˆŒØˆŒ	ˆ	ˆ	r   c                 ó4   — | j                              ¦   «         S r%   )r;   r)   r>   s    r   r)   z#ContextualizedNode.get_root_contextŠ  s   € ØŒ|×,Ò,Ñ.Ô.Ð.r   c                 ó@   — | j                              | j        ¦  «        S r%   )r;   Ú
infer_noder�   r>   s    r   rC   zContextualizedNode.infer�  s   € ØŒ|×&Ò& t¤yÑ1Ô1Ð1r   c                 óB   — d| j         j        ›d| j        ›d| j        ›d�S )Nr  r	  z in r
  )rù   r   r�   r;   r>   s    r   rú   zContextualizedNode.__repr__�  s(   € € Ø#'¤>Ô#:Ð#:Ð#:¸D¼I¸I¸IÀtÄ|À|À|ÐTÐTr   N)r   r   r   rŒ   r)   rC   rú   r   r   r   r  r  …  sU   € € € € € ðð ð ð/ð /ð /ð2ð 2ð 2ðUð Uð Uð Uð Ur   r  c                 óÀ  — t           }t          ¦   «         }|D ]†}|                     d ¬¦  «        }t          |¦  «        t          t
          t          t          t          fv r*	 ||  	                    |¦  «        z  }Œa# t          $ r Y nw xY w|                     |¦  «         Œ‡|s|s&||                      t          |¦  «        |¦  «        z  }t          j        d|¦  «         |S )N)rº   zpy__getitem__ result: %s)r‘   Úsetr»   r€   ÚfloatÚintÚstrÚsliceÚbytesr–   r   r   r“   r3   r	   rY   )r(   Úindex_valuesrJ   ÚresultÚunused_valuesÚindex_valuer•   s          r   Ú_getitemr  ”  sÿ   € å€FÝ‘E”E€MØ#ð 	'ð 	'ˆØ×*Ò*°4Ð*Ñ8Ô8ˆÝ�‰;Œ;�5¥#¥s­Eµ5Ð9Ð9Ð9ðØ˜%×4Ò4°UÑ;Ô;Ñ;�ØøÝ(ð ð ð Ø�ðøøøð 	×Ò˜+Ñ&Ô&Ð&Ð&ð
 ð 
˜Lð 
Ø�%×%Ò%Ý�]Ñ#Ô#Øñ
ô 
ñ 	
ˆõ 
„IÐ(¨&Ñ1Ô1Ð1Ø€Ms   Á A9Á9
BÂBc                   óÎ   — e Zd Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ ZdS ) r3   c                 óf   — t          |¦  «        | _        |D ]}t          |t          ¦  «        rJ ‚Œd S r%   )Ú	frozensetÚ_setrP   r3   )r'   Úiterabler(   s      r   rŒ   zValueSet.__init__°  sC   € Ý˜hÑ'Ô'ˆŒ	Øð 	3ð 	3ˆEÝ! %­Ñ2Ô2Ð2Ð2Ð2Ð2ð	3ð 	3r   c                 ó>   — |                       | ¦  «        }||_        |S r%   )Ú__new__r"  )r}   Ú
frozenset_r'   s      r   Ú_from_frozen_setzValueSet._from_frozen_setµ  s   € à�{Š{˜3ÑÔˆØˆŒ	Øˆr   c                 óÐ   — t          ¦   «         }|D ]4}t          |t          ¦  «        r||j        z  }Œ"|t	          |¦  «        z  }Œ5|                      t	          |¦  «        ¦  «        S )z7
        Used to work with an iterable of set.
        )r  rP   r3   r"  r!  r'  )r}   ÚsetsÚ
aggregatedÚset_s       r   rH   zValueSet.from_sets»  sj   € õ
 ‘U”Uˆ
Øð 	.ð 	.ˆDÝ˜$¥Ñ)Ô)ð .Ø˜dœiÑ'�
�
à�i¨™oœoÑ-�
�
Ø×#Ò#¥I¨jÑ$9Ô$9Ñ:Ô:Ð:r   c                 óF   — |                       | j        |j        z  ¦  «        S r%   ©r'  r"  ©r'   r¾   s     r   Ú__or__zValueSet.__or__È  ó   € Ø×$Ò$ T¤Y°´Ñ%;Ñ<Ô<Ð<r   c                 óF   — |                       | j        |j        z  ¦  «        S r%   r-  r.  s     r   Ú__and__zValueSet.__and__Ë  r0  r   c                 ó*   — t          | j        ¦  «        S r%   )ru   r"  r>   s    r   Ú__iter__zValueSet.__iter__Î  ó   € Ý�D”I‰ŒÐr   c                 ó*   — t          | j        ¦  «        S r%   )Úboolr"  r>   s    r   Ú__bool__zValueSet.__bool__Ñ  r5  r   c                 ó*   — t          | j        ¦  «        S r%   )Úlenr"  r>   s    r   Ú__len__zValueSet.__len__Ô  s   € Ý�4”9‰~Œ~Ðr   c                 óP   — dd                      d„ | j        D ¦   «         ¦  «        z  S )NzS{%s}ú, c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r%   )r  )r4   Úss     r   rF   z$ValueSet.__repr__.<locals>.<genexpr>Ø  s(   è è € Ð#>Ð#>¨q¥C¨¡F¤FÐ#>Ð#>Ð#>Ð#>Ð#>Ð#>r   )Újoinr"  r>   s    r   rú   zValueSet.__repr__×  s*   € Ø˜$Ÿ)š)Ð#>Ð#>°D´IÐ#>Ñ#>Ô#>Ñ>Ô>Ñ?Ð?r   c                 óR   — |                       t          || j        ¦  «        ¦  «        S r%   )rù   Úfilterr"  )r'   Úfilter_funcs     r   rB  zValueSet.filterÚ  s    € Ø�~Š~�f [°$´)Ñ<Ô<Ñ=Ô=Ð=r   c                 ó   ‡ ‡— ˆˆ fd„}|S )Nc                  óX   •‡ ‡— ‰                      ˆ ˆˆfd„‰j        D ¦   «         ¦  «        S )Nc              3   óD   •K  — | ]} t          |‰¦  «        ‰i ‰¤ŽV — Œd S r%   )rï   )r4   r(   r„   r…   r   s     €€€r   rF   z7ValueSet.__getattr__.<locals>.mapper.<locals>.<genexpr>ß  sP   øè è € ð "ð "àð %•˜˜tÑ$Ô$ dÐ5¨fÐ5Ð5ð"ð "ð "ð "ð "ð "r   )rH   r"  )r„   r…   r   r'   s   ``€€r   Úmapperz$ValueSet.__getattr__.<locals>.mapperÞ  sM   øøø€ Ø—>’>ð "ð "ð "ð "ð "ð "à!œYð"ñ "ô "ñ ô ð r   r   )r'   r   rG  s   `` r   rð   zValueSet.__getattr__Ý  s)   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð
 ˆr   c                 ó"   — | j         |j         k    S r%   ©r"  r.  s     r   Ú__eq__zValueSet.__eq__å  s   € ØŒy˜EœJÒ&Ð&r   c                 ó.   — |                       |¦  «         S r%   )rJ  r.  s     r   Ú__ne__zValueSet.__ne__è  s   € Ø—;’;˜uÑ%Ô%Ð%Ð%r   c                 ó*   — t          | j        ¦  «        S r%   )Úhashr"  r>   s    r   Ú__hash__zValueSet.__hash__ë  r5  r   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r%   )Úpy__class__©r4   rS   s     r   rF   z'ValueSet.py__class__.<locals>.<genexpr>ï  s*   è è € Ð;Ð;¨A˜Ÿš™œÐ;Ð;Ð;Ð;Ð;Ð;r   )r3   r"  r>   s    r   rR  zValueSet.py__class__î  s!   € ÝÐ;Ð;°´Ð;Ñ;Ô;Ñ;Ô;Ð;r   NFc              #   óˆ   ‡‡K  — ddl m} ˆˆfd„| j        D ¦   «         }t          |Ž D ]} |d„ |D ¦   «         ¦  «        V — Œd S )Nr   )Úget_merged_lazy_valuec                 ó>   •— g | ]}|                      ‰‰¬ ¦  «        ‘ŒS )rà   )rI   )r4   rS   rJ   rK   s     €€r   r5   z$ValueSet.iterate.<locals>.<listcomp>ó  s*   ø€ Ð[Ð[Ð[ÈA�a—i’iÐ 3¸h�iÑGÔGÐ[Ð[Ð[r   c                 ó   — g | ]}|®|‘ŒS r%   r   )r4   Úls     r   r5   z$ValueSet.iterate.<locals>.<listcomp>ö  s   € Ð9Ð9Ð9�q¨1¨=�¨=¨=¨=r   )rt   rU  r"  r   )r'   rJ   rK   rU  Ú
type_itersÚlazy_valuess    ``   r   rI   zValueSet.iterateñ  s�   øøè è € ØCÐCÐCÐCÐCÐCØ[Ð[Ð[Ð[Ð[ÐQUÔQZÐ[Ñ[Ô[ˆ
Ý&¨
Ð3ð 	ð 	ˆKØ'Ð'Ø9Ð9˜KÐ9Ñ9Ô9ñô ð ð ð ð ð	ð 	r   c                 óZ   ‡— t                                ˆfd„| j        D ¦   «         ¦  «        S )Nc              3   óN   •K  — | ]}|j                              |‰¦  «        V — Œ d S r%   r,   )r4   rS   r+   s     €r   rF   z#ValueSet.execute.<locals>.<genexpr>ú  s6   øè è € Ð!]Ð!]Èa !Ô"3×";Ò";¸A¸yÑ"IÔ"IÐ!]Ð!]Ð!]Ð!]Ð!]Ð!]r   ©r3   rH   r"  r.   s    `r   r-   zValueSet.executeù  s0   ø€ Ý×!Ò!Ð!]Ð!]Ð!]Ð!]ÐSWÔS\Ð!]Ñ!]Ô!]Ñ]Ô]Ð]r   c                 ó^   ‡‡— t                                ˆˆfd„| j        D ¦   «         ¦  «        S )Nc              3   ó2   •K  — | ]} |j         ‰i ‰¤ŽV — Œd S r%   r:   ©r4   rS   r„   r…   s     €€r   rF   z/ValueSet.execute_with_values.<locals>.<genexpr>ý  s6   øè è € Ð!\Ð!\ÈQÐ"7 !Ô"7¸Ð"HÀÐ"HÐ"HÐ!\Ð!\Ð!\Ð!\Ð!\Ð!\r   r]  rƒ   s    ``r   r8   zValueSet.execute_with_valuesü  s4   øø€ Ý×!Ò!Ð!\Ð!\Ð!\Ð!\Ð!\ÐRVÔR[Ð!\Ñ!\Ô!\Ñ\Ô\Ð\r   c                 óV   ‡‡— t          t          ˆˆfd„| j        D ¦   «         g ¦  «        S )Nc                 ó*   •— g | ]} |j         ‰i ‰¤Ž‘ŒS r   )r^   r`  s     €€r   r5   z!ValueSet.goto.<locals>.<listcomp>   s*   ø€ ÐGÐGÐG¸˜F˜AœF DÐ3¨FÐ3Ð3ÐGÐGÐGr   )r   r   r"  rƒ   s    ``r   r^   zValueSet.gotoÿ  s0   øø€ Ý•cÐGÐGÐGÐGÐG¸T¼YÐGÑGÔGÈÑLÔLÐLr   c                 ó^   ‡‡— t                                ˆˆfd„| j        D ¦   «         ¦  «        S )Nc              3   ó2   •K  — | ]} |j         ‰i ‰¤ŽV — Œd S r%   )rg   r`  s     €€r   rF   z.ValueSet.py__getattribute__.<locals>.<genexpr>  s6   øè è € Ð![Ð![ÈAÐ"6 !Ô"6¸Ð"GÀÐ"GÐ"GÐ![Ð![Ð![Ð![Ð![Ð![r   r]  rƒ   s    ``r   rg   zValueSet.py__getattribute__  s4   øø€ Ý×!Ò!Ð![Ð![Ð![Ð![Ð![ÐQUÔQZÐ![Ñ![Ô![Ñ[Ô[Ð[r   c                 ó^   ‡‡— t                                ˆˆfd„| j        D ¦   «         ¦  «        S )Nc              3   ó8   •K  — | ]}t          |g‰¢R i ‰¤ŽV — Œd S r%   )r  r`  s     €€r   rF   z$ValueSet.get_item.<locals>.<genexpr>  s;   øè è € Ð!RÐ!RÀ1¥(¨1Ð">¨tÐ">Ð">Ð">°vÐ">Ð">Ð!RÐ!RÐ!RÐ!RÐ!RÐ!Rr   r]  rƒ   s    ``r   Úget_itemzValueSet.get_item  s2   øø€ Ý×!Ò!Ð!RÐ!RÐ!RÐ!RÐ!RÈÌ	Ð!RÑ!RÔ!RÑRÔRÐRr   c                 ó”   — t          g ¦  «        }| j        D ]0}	 t          ||¦  «        }| |¦   «         z  }Œ!# t          $ r Y Œ-w xY w|S r%   )r3   r"  rï   rµ   )r'   Úfunction_namer×   rS   Úmethods        r   Ú	try_mergezValueSet.try_merge  sp   € Ý˜R‘L”Lˆ	Ø”ð 	&ð 	&ˆAð&Ý   MÑ2Ô2�ð ˜V˜V™XœXÑ%�	�	øõ "ð ð ð Ø�ðøøøð Ðs   š8¸
AÁAc                 óT   — t                                d„ | j        D ¦   «         ¦  «        S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   )r?   rS  s     r   r5   z6ValueSet.gather_annotation_classes.<locals>.<listcomp>  s$   € Ð"TÐ"TÐ"TÀQ 1×#>Ò#>Ñ#@Ô#@Ð"TÐ"TÐ"Tr   r]  r>   s    r   r?   z"ValueSet.gather_annotation_classes  s'   € Ý×!Ò!Ð"TÐ"TÈ$Ì)Ð"TÑ"TÔ"TÑUÔUÐUr   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó@   — g | ]}|                      ¦   «         D ]}|‘ŒŒS r   )r›   )r4   rS   Úsigs      r   r5   z+ValueSet.get_signatures.<locals>.<listcomp>  s1   € ÐEÐEÐE˜°!×2BÒ2BÑ2DÔ2DÐEÐE¨3�ÐEÐEÐEÐEr   rI  r>   s    r   r›   zValueSet.get_signatures  s   € ØEÐE˜TœYÐEÑEÔEÐEr   Tc                 ót  ‡— ˆfd„| j         D ¦   «         }t          t          d |¦  «        ¦  «        }t          |¦  «        dk    r|d         S d|v }|r|                     d¦  «         t          |¦  «        dk    rd S t          |¦  «        dk    r	|d         }ndd                     |¦  «        z  }|rd|z  }|S )Nc                 ó<   •— g | ]}|                      ‰¬ ¦  «        ‘ŒS ))rÔ   )rÕ   )r4   ÚvrÔ   s     €r   r5   z*ValueSet.get_type_hint.<locals>.<listcomp>  s'   ø€ ÐOÐOÐOÀˆQ�_Š_¨Nˆ_Ñ;Ô;ÐOÐOÐOr   é   r   ÚNonez	Union[%s]r=  zOptional[%s])r"  ÚsortedrB  r:  Úremover@  )r'   rÔ   ÚtÚ
type_hintsÚoptionalr?  s    `    r   rÕ   zValueSet.get_type_hint  sÓ   ø€ ØOÐOÐOÐOÀTÄYÐOÑOÔOˆÝ�F 4¨™OœOÑ,Ô,ˆ
Ýˆz‰?Œ?˜aÒÐØ˜a”=Ð à˜ZÐ'ˆØð 	&Ø×Ò˜fÑ%Ô%Ð%åˆz‰?Œ?˜aÒÐØ�4Ý�‰_Œ_ Ò!Ð!Ø˜1”ˆAˆAà˜dŸiši¨
Ñ3Ô3Ñ3ˆAØð 	#Ø Ñ"ˆAØˆr   c                 óh   — ddl m} i }| j        D ]!} |||                     |¦  «        ¦  «         Œ"|S )Nr   )Úmerge_type_var_dicts)Ú!jedi.inference.gradual.annotationr|  r"  rØ   )r'   r×   r|  Útype_var_dictr(   s        r   rØ   zValueSet.infer_type_vars-  s`   € àJÐJÐJÐJÐJÐJàˆØ”Yð 	ð 	ˆEØ Ð ØØ×%Ò% iÑ0Ô0ñô ð ð ð Ðr   r†   rÙ   )r   r   r   rŒ   rñ   r'  rH   r/  r2  r4  r8  r;  rú   rB  rð   rJ  rL  rO  rR  rI   r-   r8   r^   rg   rg  rk  r?   r›   rÕ   rØ   r   r   r   r3   r3   ¯  sÔ  € € € € € ð3ð 3ð 3ð
 ðð ñ „[ðð
 ð
;ð 
;ñ „[ð
;ð=ð =ð =ð=ð =ð =ðð ð ðð ð ðð ð ð@ð @ð @ð>ð >ð >ðð ð ð'ð 'ð 'ð&ð &ð &ðð ð ð<ð <ð <ðð ð ð ð^ð ^ð ^ð]ð ]ð ]ðMð Mð Mð\ð \ð \ðSð Sð Sð	ð 	ð 	ðVð Vð VðFð Fð Fðð ð ð ð(
ð 
ð 
ð 
ð 
r   r3   c                 ó   ‡ — ˆ fd„}|S )Nc                  ó.   •— t           ‰| i |¤Ž¦  «        S r%   r2   )r„   r…   Úfuncs     €r   Úwrapperz&iterator_to_value_set.<locals>.wrapper>  s    ø€ Ý˜˜˜dÐ- fÐ-Ð-Ñ.Ô.Ð.r   r   )r�  r‚  s   ` r   Úiterator_to_value_setrƒ  =  s#   ø€ ð/ð /ð /ð /ð /ð €Nr   r†   )*rÚ   Ú	functoolsr   r¿   r   Ú	itertoolsr   Útypingr   r   Úparso.python.treer   Újedir	   Újedi.parser_utilsr
   Újedi.inference.helpersr   Újedi.inference.utilsr   Újedi.inference.cacher   Ú
jedi.cacher   Úobjectr¸   rW   r   Ú	Exceptionr   r   r‰   rá   rã   ró   rý   r  r  r  r3   r‘   rƒ  r   r   r   ú<module>r�     sø  ððð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø .Ð .Ð .Ð .Ð .Ð .Ø FÐ FÐ FÐ FÐ FÐ FØ %Ð %Ð %Ð %Ð %Ð %àˆ6‰8Œ8€àð .Ø-Ð-Ð-Ð-Ð-Ð-ð	ð 	ð 	ð 	ð 	�9ñ 	ô 	ð 	ðy1ð y1ð y1ð y1ð y1ñ y1ô y1ð y1ðxað að að að aÐñ aô að aðHð ð ð ð2ð 2ð 2ð 2ð 2Ð(ñ 2ô 2ð 2ð*"ð "ð "ð "ð "Ð(ñ "ô "ð "ð&Ið Ið Ið Ið IÐ$ñ Iô Ið IðFð Fð Fð Fð F�ñ Fô Fð FðUð Uð Uð Uð Uñ Uô Uð Uðð ð ð6Hð Hð Hð Hð Hñ Hô Hð HðV ˆH�R‰LŒL€	ðð ð ð ð r   