Ë
    ¬;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)y)%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y)ÚHasNoContextN)Ú__name__Ú
__module__Ú__qualname__© ó    új/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/base_value.pyr   r      s   „ Ør   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y)ÚHelperValueMixinÚparent_contextr   Úinference_stateÚnameÚget_filtersÚis_stubÚpy__getattribute__alternativesÚ
py__iter__Ú	py__mro__Ú_as_contextc                 óv   — | }|j                   €|j                  «       S 	 |j                   €|S |j                   }Œ©N)r   Ú
as_context)ÚselfÚvalues     r   Úget_root_contextz!HelperValueMixin.get_root_context,   sF   € ØˆØ×ÑÐ'Ø×#Ñ#Ó%Ð%àØ×#Ñ#Ð+Ø�Ø×(Ñ(ˆEð r   c                 ó<   — | j                   j                  | |¬«      S )N)Ú	arguments©r   Úexecute©r'   r+   s     r   r-   zHelperValueMixin.execute6   s   € Ø×#Ñ#×+Ñ+¨D¸IÐ+ÓFÐFr   c                 ó�   — ddl m}  ||D �cg c]  }t        |g«      ‘Œ c}«      }| j                  j	                  | |«      S c c}w )Nr   )ÚValuesArguments)Újedi.inference.argumentsr0   ÚValueSetr   r-   )r'   Ú
value_listr0   r(   r+   s        r   Úexecute_with_valuesz$HelperValueMixin.execute_with_values9   sD   € Ý<Ù#ÁJÓ$OÁJ¸5¤X¨u¨gÕ%6ÀJÑ$OÓPˆ	Ø×#Ñ#×+Ñ+¨D°)Ó<Ð<ùò %Ps   �Ac                 ó"   — | j                  «       S r%   ©r4   )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   Nc                 óZ   — t         j                  d„ | j                  ||«      D «       «      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr%   ©Úinfer©Ú.0Ú
lazy_values     r   Ú	<genexpr>z:HelperValueMixin.merge_types_of_iterate.<locals>.<genexpr>E   s!   è ø€ ð "
áI�
ð ×Ñ×ÙIùó   ‚©r2   Ú	from_setsÚiterate)r'   Úcontextualized_nodeÚis_asyncs      r   Úmerge_types_of_iteratez'HelperValueMixin.merge_types_of_iterateD   s.   € Ü×!Ñ!ñ "
à"Ÿl™lÐ+>ÀÔIó"
ó 
ð 	
r   c              #   óü   K  — t        |t        «      r|nd }| j                  |¬«      E d {  –—†  | j                  «       r6ddlm}  |t        | h«      «      D ]  }|j                  «       E d {  –—†  Œ y y 7 ŒK7 Œ
­w)N)Úorigin_scoper   )Úconvert_values)Ú
isinstancer   r   r   Ú!jedi.inference.gradual.conversionrN   r2   )r'   Úname_or_strrM   rN   Úcs        r   Ú_get_value_filtersz#HelperValueMixin._get_value_filtersJ   sn   è ø€ Ü&0°¼dÔ&C‘{ÈˆØ×#Ñ#°Ð#Ó>×>Ð>à�<‰<Œ>ÝHÙ#¤H¨d¨VÓ$4Ö5�ØŸ=™=›?×*Ñ*ñ 6ð ð 	?øð
 +ús"   ‚*A<¬A8­AA<Á/A:Á0	A<Á:A<c                 óˆ   — ddl m} | j                  |«      }|j                  ||«      }t	        j
                  d|| |«       |S )Nr   )Úfinderzcontext.goto %s in (%s): %s)Újedi.inferencerU   rS   Úfilter_namer	   Údbg)r'   rQ   Úname_contextÚanalysis_errorsrU   ÚfiltersÚnamess          r   ÚgotozHelperValueMixin.gotoS   s?   € Ý)Ø×)Ñ)¨+Ó6ˆØ×"Ñ" 7¨KÓ8ˆÜ�	‰	Ð/°¸dÀEÔJØˆr   c                 óZ  — |€| }| j                  |||«      }t        j                  d„ |D «       «      }|s/t        |t        «      r|j
                  n|}| j                  |«      }|s-|s+|r)t        |t        «      rddlm} |j                  || |«       t        j                  d||«       |S )zZ
        :param position: Position of the last statement -> tuple of line, column
        c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr%   r?   )rB   r   s     r   rD   z6HelperValueMixin.py__getattribute__.<locals>.<genexpr>b   s   è ø€ Ð#C¹U°T D§J¡J§L¹UùrE   r   ©Úanalysisz context.names_to_types: %s -> %s)r]   r2   rG   rO   r   r(   r    rV   ra   Úadd_attribute_errorr	   rX   )	r'   rQ   rY   ÚpositionrZ   r\   ÚvaluesÚnra   s	            r   Úpy__getattribute__z#HelperValueMixin.py__getattribute__Z   sŸ   € ð
 ÐØˆLØ—	‘	˜+ |°_ÓEˆÜ×#Ñ#Ñ#C¹UÓ#CÓCˆÙÜ%/°¼TÔ%B�×!Ò!ÈˆAØ×8Ñ8¸Ó;ˆFá™V©Ü˜+¤tÔ,Ý3Ø×,Ñ,Ø  $¨ô5ä�	‰	Ð4°e¸VÔDØˆr   c                 ót   — | j                  d«      }|st        j                  d| «       |j                  «       S )NÚ	__await__z"Tried to run __await__ on value %s)rf   r	   Úwarningr4   )r'   Úawait_value_sets     r   Úpy__await__zHelperValueMixin.py__await__o   s3   € Ø×1Ñ1°+Ó>ˆÙÜ�M‰MÐ>ÀÔEØ×2Ñ2Ó4Ð4r   c                 ó.   — | j                   j                  S r%   )r   Ústring_namer;   s    r   Ú
py__name__zHelperValueMixin.py__name__u   s   € Ø�y‰y×$Ñ$Ð$r   c                 óN  — t        j                  d| «       |r}ddlm} t	         || j                  d«      j                  «       j                  d«      j                  «       j                  d«      j                  «       j                  «       «      g«      S | j                  |«      S )Nz
iterate %sr   )ÚLazyKnownValuesÚ	__aiter__Ú	__anext__rh   )	r	   rX   Újedi.inference.lazy_valuerp   Úiterrf   r4   Úpy__stop_iteration_returnsr!   )r'   rI   rJ   rp   s       r   rH   zHelperValueMixin.iteratex   sŒ   € Ü�	‰	�, Ô%ÙÝAô ÙØ×+Ñ+¨KÓ8×LÑLÓNß+Ñ+¨KÓ8×9LÑ9LÓ9Nß+Ñ+¨KÓ8×9LÑ9LÓ9Nß3Ñ3Ó5ó	ðó ð ð �‰Ð2Ó3Ð3r   c                 ó&  — t        j                  d| ›d|›�d¬«      5  | j                  «       D ]4  }|j                  |«      sŒt        j                  dd¬«        d d d «       y t        j                  dd¬«       	 d d d «       y# 1 sw Y   y xY w)	Nzsubclass matching of z <=> ÚBLUE)Úcolorzmatched subclass TrueTzmatched subclass FalseF)r	   Úincrease_indent_cmr"   Úis_same_classrX   )r'   Úclass_valueÚclss      r   Úis_sub_class_ofz HelperValueMixin.is_sub_class_ofˆ   sx   € Ü×%Ò%Ê$ÑP[Ð&\Ø,2ö4à—~‘~Ö'�Ø×$Ñ$ [Õ1Ü—I‘IÐ5¸VÕDØ÷4ð 4à'ô �I‰IÐ.°fÕ=Ø÷4÷ 4ñ 4ús   ž%BÁBÁ%BÂBc                 óz   — t        |«      j                  t        j                  k7  r|j                  | «      S | |k(  S r%   )Útyperz   r   )r'   Úclass2s     r   rz   zHelperValueMixin.is_same_class’   s6   € ä�‹<×%Ñ%Ô)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Ð0r   ©NF)NT)NNT)r   r   r   r   Ú__annotations__r)   r-   r4   r8   r<   rK   rS   r]   rf   rk   rn   rH   r}   rz   r   r&   r   r   r   r   r   !   s™   … ØÓØ%Ó%Ø
ƒIØÓØƒLØ$'Ó'ØƒOØƒNØÓò)òGò=ò
*ò ó
ò+óð KOØ+/óò*5ò%ó4ò òð ñ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&y)$ÚValuez*
    To be implemented by subclasses.
    NÚnot_defined_please_report_bugc                 ó    — || _         || _        y r%   )r   r   )r'   r   r   s      r   Ú__init__zValue.__init__§   s   € Ø.ˆÔØ,ˆÕr   c                 ór   — ddl m} |j                  |j                  d|j                  d| z  ¬«       t
        S )Nr   r`   ztype-error-not-subscriptablez+TypeError: '%s' object is not subscriptable©Úmessage)rV   ra   r   r7   ÚnodeÚ	NO_VALUES)r'   Úindex_value_setrI   ra   s       r   Úpy__getitem__zValue.py__getitem__«   s;   € Ý+à�‰Ø×'Ñ'Ø*Ø×$Ñ$ØAÀDÑHð	 	ô 	
ô Ðr   c                 ó   — t         ‚r%   r   )r'   Úindexs     r   Úpy__simple_getitem__zValue.py__simple_getitem__¶   s   € Ü#Ð#r   c                 ó€   — |�2ddl m} |j                  |j                  d|j                  d| z  ¬«       t        g «      S )Nr   r`   ztype-error-not-iterablez&TypeError: '%s' object is not iterabler�   )rV   ra   r   r7   r�   rt   )r'   rI   ra   s      r   r!   zValue.py__iter__¹   sE   € ØÐ*Ý/Ø�L‰LØ#×+Ñ+Ø)Ø#×(Ñ(Ø@À4ÑGð	 ô Iô
 �B‹xˆr   c                 ó$   — | j                  |«      S r%   )r!   )r'   rI   s     r   Ú
py__next__zValue.py__next__Ã   s   € Ø�‰Ð2Ó3Ð3r   c                 ó   — g S r%   r   r;   s    r   Úget_signatureszValue.get_signaturesÆ   s   € Øˆ	r   c                  ó   — yr…   r   r;   s    r   Úis_classzValue.is_classÉ   ó   € Ør   c                  ó   — yr…   r   r;   s    r   Úis_class_mixinzValue.is_class_mixinÌ   r�   r   c                  ó   — yr…   r   r;   s    r   Úis_instancezValue.is_instanceÏ   r�   r   c                  ó   — yr…   r   r;   s    r   Úis_functionzValue.is_functionÒ   r�   r   c                  ó   — yr…   r   r;   s    r   Ú	is_modulezValue.is_moduleÕ   r�   r   c                  ó   — yr…   r   r;   s    r   Úis_namespacezValue.is_namespaceØ   r�   r   c                  ó   — yr…   r   r;   s    r   Úis_compiledzValue.is_compiledÛ   r�   r   c                  ó   — yr…   r   r;   s    r   Úis_bound_methodzValue.is_bound_methodÞ   r�   r   c                  ó   — yr…   r   r;   s    r   Úis_builtins_modulezValue.is_builtins_moduleá   r�   r   c                  ó   — y)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   € ð
 r   c                 óx   — 	 | j                   j                   t        | j                   «      S # t        $ r Y yw xY w)NÚ )Ú	tree_nodeÚget_doc_noder
   ÚAttributeErrorr;   s    r   Ú	py__doc__zValue.py__doc__ë   s9   € ð	9Ø�N‰N×'Ò'ô )¨¯©Ó8Ð8øô ò 	Ùð	ús   ‚- ­	9¸9c                 ó2   — |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Øˆr   c                 ó>   — t        j                  d|| |«       t        S )Nz!%s not possible between %s and %s©r	   ri   r�   )r'   ÚotherÚoperators      r   Úexecute_operationzValue.execute_operationø   s   € Ü�‰Ð9¸8ÀTÈ5Ô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ÜÐr   c                 ó:   — t        j                  d| «       t        S )Nz0Not possible to return the stop iterations of %sr¼   r;   s    r   ru   z Value.py__stop_iteration_returns   s   € Ü�‰ÐHÈ$ÔOÜÐr   c                 ó   — t         S )zH
        For now a way to add values in cases like __getattr__.
        )r�   )r'   rQ   s     r   r    z$Value.py__getattribute__alternatives  s
   € ô Ðr   c                 óF   — t        j                  d| «       t        | g«      S )NzNo __get__ defined on %s)r	   ri   r2   )r'   Úinstancer{   s      r   Ú	py__get__zValue.py__get__
  s   € Ü�‰Ð0°$Ô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                  ó   — y r%   r   r;   s    r   Úget_qualified_nameszValue.get_qualified_names  s   € àr   c                 ó6   — | j                   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   c                  ó   — y r%   r   )r'   Úadd_class_infos     r   Úget_type_hintzValue.get_type_hint   s   € Ør   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Á   ru   r    rÆ   rÊ   rÌ   r   r#   Úpropertyr   rÔ   r×   r   r   r   rˆ   rˆ   �   sÄ   „ ñð €Ið €JØ.€Hó-ò	ò$óó4òòòòòòòòòòòò9ð &.ó ò
òòòò òòò-òð ñ"ó ð"óór   rˆ   Nc                 ó\   — t         j                  d„ | j                  ||¬«      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  — | ]  }|j                  «       –— Œ y ­wr%   r?   rA   s     r   rD   z!iterate_values.<locals>.<genexpr>F  s!   è ø€ ð áPˆJð 	×Ñ×ÙPùrE   ©rJ   rF   )rd   rI   rJ   s      r   Úiterate_valuesrà   A  s2   € ô
 ×Ññ à Ÿ.™.Ð)<Àx˜.ÔPóó ð r   c                   óF   — e Zd Zed„ «       Ze e«       d„ «       «       Zd„ Zy)Ú_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å   rm   )r'   rä   Úwrapped_namerå   s       r   r   z_ValueWrapperBase.nameM  sK   € å2Ø×*Ñ*×/Ñ/ˆØ×!Ñ!Ð-Ù˜T <×#9Ñ#9Ó:Ð:åAÙ$ T¨<×+CÑ+CÓDÐDr   c                 ó   —  | |i |¤ŽS r%   r   )r|   r   rƒ   r„   s       r   Úcreate_cachedz_ValueWrapperBase.create_cachedW  s   € ñ �DÐ#˜FÑ#Ð#r   c                 óF   — |dk7  sJ d«       ‚t        | j                  |«      S )Nrç   zProblem with _get_wrapped_value)Úgetattrrç   )r'   r   s     r   Ú__getattr__z_ValueWrapperBase.__getattr__\  s*   € ØÐ'Ò'ÐJÐ)JÓJÐ'Ü�t×*Ñ*¨DÓ1Ð1r   N)	r   r   r   r   r   Úclassmethodr   rì   rï   r   r   r   râ   râ   L  s:   „ ØñEó ðEð Ù*Ó,ñ$ó -ó ð$ó2r   râ   c                   óN   — e Zd Zeredefd„«       Zneed„ «       «       Zd„ Z	d„ Z
y)ÚLazyValueWrapperÚreturnc                  ó   — y r%   r   r;   s    r   rç   zLazyValueWrapper._wrapped_valuec  s   € àr   c                 óx   — t        j                  d«      5  | j                  «       cd d d «       S # 1 sw Y   y xY w)NzResolve lazy value wrapper)r	   ry   Ú_get_wrapped_valuer;   s    r   rç   zLazyValueWrapper._wrapped_valueg  s,   € ô ×)Ñ)Ð*FÕGØ×.Ñ.Ó0÷ H×GÒGús   –0°9c                 ó4   — d| j                   j                  z  S )Nz<%s>)Ú	__class__r   r;   s    r   Ú__repr__zLazyValueWrapper.__repr__m  s   € Ø˜Ÿ™×0Ñ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  sD   „ ÙØ	ð	 Cò 	ó 
ñ	ð 
Ø	ñ	1ó 
ó 
ð	1ò2ó"r   rò   c                   ó   — e Zd Zd„ Zd„ Zy)ÚValueWrapperc                 ó   — || _         y r%   )rç   )r'   Úwrapped_values     r   r‹   zValueWrapper.__init__u  s
   € Ø+ˆÕr   c                 óN   — | j                   j                  ›d| j                  ›d�S )NÚ(Ú))rø   r   rç   r;   s    r   rù   zValueWrapper.__repr__x  s   € ØŸ>™>×2Ó2°D×4GÓ4GÐHÐHr   N)r   r   r   r‹   rù   r   r   r   rü   rü   t  s   „ ò,óIr   rü   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú	TreeValuec                 ó4   •— t         ‰| �  ||«       || _        y r%   )Úsuperr‹   r²   )r'   r   r   r²   rø   s       €r   r‹   zTreeValue.__init__}  s   ø€ Ü‰Ñ˜¨.Ô9Ø"ˆ�r   c                 óP   — d| j                   j                  ›d| j                  ›d�S )NÚ<ú: Ú>)rø   r   r²   r;   s    r   rù   zTreeValue.__repr__�  s   � Ø!Ÿ^™^×4Ó4°d·n³nÐEÐEr   )r   r   r   r‹   rù   Ú__classcell__)rø   s   @r   r  r  |  s   ø„ ô#öFr   r  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚContextualizedNodec                 ó    — || _         || _        y r%   )r7   r�   )r'   r7   r�   s      r   r‹   zContextualizedNode.__init__†  s   € ØˆŒØˆ�	r   c                 ó6   — | j                   j                  «       S r%   )r7   r)   r;   s    r   r)   z#ContextualizedNode.get_root_contextŠ  s   € Ø�|‰|×,Ñ,Ó.Ð.r   c                 óL   — | j                   j                  | j                  «      S r%   )r7   Ú
infer_noder�   r;   s    r   r@   zContextualizedNode.infer�  s   € Ø�|‰|×&Ñ& t§y¡yÓ1Ð1r   c                 ój   — d| j                   j                  ›d| j                  ›d| j                  ›d�S )Nr  r  z in r	  )rø   r   r�   r7   r;   s    r   rù   zContextualizedNode.__repr__�  s!   � Ø#'§>¡>×#:Ó#:¸D¿I»IÀtÇ|Ã|ÐTÐTr   N)r   r   r   r‹   r)   r@   rù   r   r   r   r  r  …  s   „ òò/ò2óUr   r  c                 ó€  — t         }t        «       }|D ]a  }|j                  d ¬«      }t        |«      t        t
        t        t        t        fv r	 || j                  |«      z  }ŒQ|j                  |«       Œc |s|s|| j                  t        |«      |«      z  }t        j                  d|«       |S # t        $ r Y ŒXw xY w)N)r¹   zpy__getitem__ result: %s)r�   Úsetrº   r   ÚfloatÚintÚstrÚsliceÚbytesr•   r   r   r’   r2   r	   rX   )r(   Úindex_valuesrI   ÚresultÚunused_valuesÚindex_valuer”   s          r   Ú_getitemr  ”  sÂ   € ä€FÜ“E€MÛ#ˆØ×*Ñ*°4Ð*Ó8ˆÜ�‹;œ5¤#¤s¬E´5Ð9Ñ9ðØ˜%×4Ñ4°UÓ;Ñ;�Øð 	×Ñ˜+Õ&ð $ñ ™LØ�%×%Ñ%Ü�]Ó#Øó
ñ 	
ˆô 
‡I�IÐ(¨&Ô1Ø€Møô )ò Ùðús   ÁB1Â1	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y)r2   c                 óV   — t        |«      | _        |D ]  }t        |t        «      sŒJ ‚ y r%   )Ú	frozensetÚ_setrO   r2   )r'   Úiterabler(   s      r   r‹   zValueSet.__init__°  s(   € Ü˜hÓ'ˆŒ	ÛˆEÜ! %¬Õ2Ð2Ð2ñ r   c                 ó6   — | j                  | «      }||_        |S r%   )Ú__new__r!  )r|   Ú
frozenset_r'   s      r   Ú_from_frozen_setzValueSet._from_frozen_setµ  s   € à�{‰{˜3ÓˆØˆŒ	Øˆr   c                 ó´   — t        «       }|D ]0  }t        |t        «      r||j                  z  }Œ#|t	        |«      z  }Œ2 | j                  t	        |«      «      S )z7
        Used to work with an iterable of set.
        )r  rO   r2   r!  r   r&  )r|   ÚsetsÚ
aggregatedÚset_s       r   rG   zValueSet.from_sets»  sS   € ô
 “Uˆ
ÛˆDÜ˜$¤Ô)Ø˜dŸi™iÑ'‘
àœi¨›oÑ-‘
ð	 ð
 ×#Ñ#¤I¨jÓ$9Ó:Ð:r   c                 óR   — | j                  | j                  |j                  z  «      S r%   ©r&  r!  ©r'   r½   s     r   Ú__or__zValueSet.__or__È  ó    € Ø×$Ñ$ T§Y¡Y°·±Ñ%;Ó<Ð<r   c                 óR   — | j                  | j                  |j                  z  «      S r%   r,  r-  s     r   Ú__and__zValueSet.__and__Ë  r/  r   c                 ó,   — t        | j                  «      S r%   )rt   r!  r;   s    r   Ú__iter__zValueSet.__iter__Î  ó   € Ü�D—I‘I‹Ðr   c                 ó,   — t        | j                  «      S r%   )Úboolr!  r;   s    r   Ú__bool__zValueSet.__bool__Ñ  r4  r   c                 ó,   — t        | j                  «      S r%   )Úlenr!  r;   s    r   Ú__len__zValueSet.__len__Ô  s   € Ü�4—9‘9‹~Ðr   c                 óL   — ddj                  d„ | j                  D «       «      z  S )NzS{%s}ú, c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr%   )r  )rB   Úss     r   rD   z$ValueSet.__repr__.<locals>.<genexpr>Ø  s   è ø€ Ð#>±I¨q¤C¨§F±Iùs   ‚)Újoinr!  r;   s    r   rù   zValueSet.__repr__×  s    € Ø˜$Ÿ)™)Ñ#>°D·I²IÓ#>Ó>Ñ?Ð?r   c                 óL   — | j                  t        || j                  «      «      S r%   )rø   Úfilterr!  )r'   Úfilter_funcs     r   rA  zValueSet.filterÚ  s   € Ø�~‰~œf [°$·)±)Ó<Ó=Ð=r   c                 ó   ‡ ‡— ˆˆ fd„}|S )Nc                  óT   •‡ ‡— ‰j                  ˆ ˆˆfd„‰j                  D «       «      S )Nc              3   óB   •K  — | ]  } t        |‰«      ‰i ‰¤Ž–— Œ y ­wr%   )rî   )rB   r(   rƒ   r„   r   s     €€€r   rD   z7ValueSet.__getattr__.<locals>.mapper.<locals>.<genexpr>ß  s,   øè ø€ ð "á&�Eð %”˜˜tÓ$ dÐ5¨fÕ5Ù&ùó   ƒ)rG   r!  )rƒ   r„   r   r'   s   ``€€r   Úmapperz$ValueSet.__getattr__.<locals>.mapperÞ  s%   ú€ Ø—>‘>õ "à!ŸYšYó"ó ð r   r   )r'   r   rG  s   `` r   rï   zValueSet.__getattr__Ý  s   ù€ õ	ð
 ˆr   c                 ó4   — | j                   |j                   k(  S r%   )r!  r-  s     r   Ú__eq__zValueSet.__eq__å  s   € Ø�y‰y˜EŸJ™JÑ&Ð&r   c                 ó&   — | j                  |«       S r%   )rI  r-  s     r   Ú__ne__zValueSet.__ne__è  s   € Ø—;‘;˜uÓ%Ð%Ð%r   c                 ó,   — t        | j                  «      S r%   )Úhashr!  r;   s    r   Ú__hash__zValueSet.__hash__ë  r4  r   c                 ó:   — t        d„ | j                  D «       «      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr%   )Úpy__class__)rB   rR   s     r   rD   z'ValueSet.py__class__.<locals>.<genexpr>ï  s   è ø€ Ð;±¨A˜Ÿ™Ÿ±ùrE   )r2   r!  r;   s    r   rQ  zValueSet.py__class__î  s   € ÜÑ;°·²Ó;Ó;Ð;r   Nc              #   óÐ   K  — ddl m} | j                  D �cg c]  }|j                  ||¬«      ‘Œ }}t	        |Ž D ]  } ||D �cg c]  }|€Œ|‘Œ	 c}«      –— Œ y c c}w c c}w ­w)Nr   )Úget_merged_lazy_valuerß   )rs   rS  r!  rH   r   )r'   rI   rJ   rS  rR   Ú
type_itersÚlazy_valuesÚls           r   rH   zValueSet.iterateñ  sp   è ø€ ÝCØQU×QZÒQZÓ[ÑQZÈA�a—i‘iÐ 3¸h�iÕGÐQZˆ
Ð[Ü&¨
Ó3ˆKÙ'Ù'Ó9™K�q¨1©=’˜KÑ9óó ñ 4ùò \ùò :ùs!   ‚A&—A±A&ÁA!
ÁA!
ÁA&c                 óT   ‡— t         j                  ˆfd„| j                  D «       «      S )Nc              3   óV   •K  — | ]   }|j                   j                  |‰«      –— Œ" y ­wr%   r,   )rB   rR   r+   s     €r   rD   z#ValueSet.execute.<locals>.<genexpr>ú  s'   øè ø€ Ð!]ÑS\Èa !×"3Ñ"3×";Ñ";¸A¸y×"IÑS\ùs   ƒ&)©r2   rG   r!  r.   s    `r   r-   zValueSet.executeù  s!   ø€ Ü×!Ñ!Ó!]ÐSW×S\ÒS\Ó!]Ó]Ð]r   c                 óX   ‡‡— t         j                  ˆˆfd„| j                  D «       «      S )Nc              3   óB   •K  — | ]  } |j                   ‰i ‰¤Ž–— Œ y ­wr%   r6   ©rB   rR   rƒ   r„   s     €€r   rD   z/ValueSet.execute_with_values.<locals>.<genexpr>ý  s'   øè ø€ Ð!\ÑR[ÈQÐ"7 !×"7Ñ"7¸Ð"HÀÕ"HÑR[ùrF  rY  r‚   s    ``r   r4   zValueSet.execute_with_valuesü  s!   ù€ Ü×!Ñ!Ô!\ÐRV×R[ÒR[Ó!\Ó\Ð\r   c                 ó~   — t        t        | j                  D �cg c]  } |j                  |i |¤Ž‘Œ c}g «      S c c}w r%   )r   r   r!  r]   )r'   rƒ   r„   rR   s       r   r]   zValueSet.gotoÿ  s7   € Ü”c¸T¿YºYÓG¹Y¸˜F˜AŸF™F DÐ3¨FÓ3¸YÑGÈÓLÐLùÒGs   ™:
c                 óX   ‡‡— t         j                  ˆˆfd„| j                  D «       «      S )Nc              3   óB   •K  — | ]  } |j                   ‰i ‰¤Ž–— Œ y ­wr%   )rf   r\  s     €€r   rD   z.ValueSet.py__getattribute__.<locals>.<genexpr>  s'   øè ø€ Ð![ÑQZÈAÐ"6 !×"6Ñ"6¸Ð"GÀÕ"GÑQZùrF  rY  r‚   s    ``r   rf   zValueSet.py__getattribute__  s!   ù€ Ü×!Ñ!Ô![ÐQU×QZÒQZÓ![Ó[Ð[r   c                 óX   ‡‡— t         j                  ˆˆfd„| j                  D «       «      S )Nc              3   ó<   •K  — | ]  }t        |g‰¢­i ‰¤Ž–— Œ y ­wr%   )r  r\  s     €€r   rD   z$ValueSet.get_item.<locals>.<genexpr>  s!   øè ø€ Ð!RÉ	À1¤(¨1Ð">¨tÒ">°vÕ">É	ùs   ƒrY  r‚   s    ``r   Úget_itemzValueSet.get_item  s   ù€ Ü×!Ñ!Ô!RÈÏ	Ê	Ó!RÓRÐRr   c                 óŠ   — t        g «      }| j                  D ]  }	 t        ||«      }| |«       z  }Œ |S # t        $ r Y Œ)w xY wr%   )r2   r!  rî   r´   )r'   Úfunction_namerÖ   rR   Úmethods        r   Ú	try_mergezValueSet.try_merge  sT   € Ü˜R“Lˆ	Ø—”ˆAð&Ü   MÓ2�ð ™V›XÑ%‘	ð ð Ðøô	 "ò Ùðús   œ6¶	AÁAc                 ó‚   — t         j                  | j                  D �cg c]  }|j                  «       ‘Œ c}«      S c c}w r%   )r2   rG   r!  r<   )r'   rR   s     r   r<   z"ValueSet.gather_annotation_classes  s2   € Ü×!Ñ!È$Ï)Ê)Ó"TÉ)ÀQ 1×#>Ñ#>Õ#@È)Ñ"TÓUÐUùÒ"Ts   ž<c                 óp   — | j                   D ��cg c]  }|j                  «       D ]  }|‘Œ Œ c}}S c c}}w r%   )r!  rš   )r'   rR   Úsigs      r   rš   zValueSet.get_signatures  s0   € Ø!ŸYšYÔE™Y˜°!×2BÑ2BÖ2D¨3’Ð2D�˜YÒEÐEùÓEs   �2c                 ó\  — | j                   D �cg c]  }|j                  |¬«      ‘Œ }}t        t        d |«      «      }t	        |«      dk(  r|d   S d|v }|r|j                  d«       t	        |«      dk(  ry t	        |«      dk(  r|d   }nddj                  |«      z  }|rd|z  }|S c c}w )N)rÓ   é   r   ÚNonez	Union[%s]r<  zOptional[%s])r!  rÔ   ÚsortedrA  r9  Úremover?  )r'   rÓ   ÚvÚtÚ
type_hintsÚoptionalr>  s          r   rÔ   zValueSet.get_type_hint  sµ   € ØEIÇYÂYÓOÁYÀˆQ�_‰_¨Nˆ_Õ;ÀYˆÐOÜœF 4¨›OÓ,ˆ
Üˆz‹?˜aÒØ˜a‘=Ð à˜ZÐ'ˆÙØ×Ñ˜fÔ%äˆz‹?˜aÒØÜ�‹_ Ò!Ø˜1‘‰Aà˜dŸi™i¨
Ó3Ñ3ˆAÙØ Ñ"ˆAØˆùò# Ps   �B)c                 óh   — ddl m} i }| j                  D ]  } |||j                  |«      «       Œ |S )Nr   )Úmerge_type_var_dicts)Ú!jedi.inference.gradual.annotationrt  r!  r×   )r'   rÖ   rt  Útype_var_dictr(   s        r   r×   zValueSet.infer_type_vars-  s9   € åJàˆØ—Y”YˆEÙ ØØ×%Ñ% iÓ0õð ð
 Ðr   r…   rØ   )r   r   r   r‹   rð   r&  rG   r.  r1  r3  r7  r:  rù   rA  rï   rI  rK  rN  rQ  rH   r-   r4   r]   rf   rb  rf  r<   rš   rÔ   r×   r   r   r   r2   r2   ¯  sª   „ ò3ð
 ñó ðð
 ñ
;ó ð
;ò=ò=òòòò@ò>òò'ò&òò<óò^ò]òMò\òSò	òVòFóó(
r   r2   c                 ó   ‡ — ˆ fd„}|S )Nc                  ó&   •— t         ‰| i |¤Ž«      S r%   r:   )rƒ   r„   Úfuncs     €r   Úwrapperz&iterator_to_value_set.<locals>.wrapper>  s   ø€ Ü™˜dÐ- fÑ-Ó.Ð.r   r   )ry  rz  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·   rV   r   Ú	Exceptionr   r   rˆ   rà   râ   rò   rü   r  r  r  r2   r�   r{  r   r   r   Ú<module>rˆ     sÍ   ðñõ Ý Ý !ß %å "å Ý 3Ý 8Ý .Ý FÝ %á‹8€áÝ-ô	�9ô 	÷y1ñ y1ôxaÐô aóHô2Ð(ô 2ô*"Ð(ô "ô&IÐ$ô IôF�ô F÷Uñ Uò÷6Hñ HñV �R‹L€	ór   