Ë
    ¬;j8\  ã                   óž  — d Z ddlmZ ddlmZ ddlmZ ddlmZmZm	Z	 ddl
mZmZmZmZ ddlmZmZ ddlmZ dd	lmZmZ dd
lmZmZmZmZmZmZmZ ddlm Z  ddl!m"Z" ddl#m$Z$  G d„ d«      Z% G d„ dee%«      Z& G d„ de&«      Z'd„ Z( G d„ d«      Z) G d„ d«      Z* G d„ dee%«      Z+ G d„ de)«      Z, G d„ de,e+«      Z- G d„ d e,e+«      Z. G d!„ d"e,e&«      Z/ G d#„ d$«      Z0 G d%„ d&e)e+e0«      Z1 G d'„ d(e+«      Z2 G d)„ d*e*e2e0«      Z3 G d+„ d,e+«      Z4 G d-„ d.e4«      Z5 G d/„ d0e4«      Z6 G d1„ d2e*e+e0«      Z7 G d3„ d4e+«      Z8d5„ Z9 G d6„ d7e«      Z:y8)9zd
Contains all classes and functions to deal with lists, dicts, generators and
iterators in general.
é    )ÚAny)Úcompiled)Úanalysis)ÚLazyKnownValueÚLazyKnownValuesÚLazyTreeValue)Úget_int_or_noneÚ	is_stringÚreraise_getitem_errorsÚSimpleGetItemNotFound)Úsafe_propertyÚto_list)Úinference_state_method_cache)ÚLazyAttributeOverwriteÚpublish_method)ÚValueSetÚValueÚ	NO_VALUESÚContextualizedNodeÚiterate_valuesÚsentinelÚLazyValueWrapper)Úget_sync_comp_fors©ÚCompForContext)Úcheck_array_additionsc                   óH   — e Zd ZU eed<   eed<   dd„Zd„ Zej                  Zy)ÚIterableMixinÚ
py__iter__Úinference_stateNc                 ó$   — | j                  |«      S ©N)r   ©ÚselfÚcontextualized_nodes     ún/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/value/iterable.pyÚ
py__next__zIterableMixin.py__next__   s   € Ø�‰Ð2Ó3Ð3ó    c                 óV   — t        t        j                  | j                  d«      g«      S ©NÚNone©r   r   Úbuiltin_from_namer    ©r$   s    r&   Úpy__stop_iteration_returnsz(IterableMixin.py__stop_iteration_returns   ó#   € Üœ×3Ñ3°D×4HÑ4HÈ&ÓQÐRÓSÐSr(   r"   )	Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r'   r/   r   Úget_safe_value© r(   r&   r   r      s%   … ØƒOØÓó4òTð ×)Ñ)�Nr(   r   c                   óŒ   — e Zd ZdZd„ Zd„ Zd„ Z ed«      d„ «       Z ed«       ed«      d	„ «       «       Z	d
„ Z
ed„ «       Zd„ Zy)ÚGeneratorBaseNc                 óH   — | j                  «       j                  d «      \  }|S r"   )Ú_get_clsÚexecute_annotation)r$   Úinstances     r&   Ú_get_wrapped_valuez GeneratorBase._get_wrapped_value.   s   € Ø—M‘M“O×6Ñ6°tÓ<‰	ˆØˆr(   c                 óT   — | j                   j                  j                  d«      \  }|S )NÚGeneratorType)r    Útypes_moduleÚpy__getattribute__)r$   Ú	generators     r&   r:   zGeneratorBase._get_cls2   s&   € Ø×)Ñ)×6Ñ6×IÑIÈ/ÓZ‰
ˆ	ØÐr(   c                  ó   — y)NTr6   r.   s    r&   Ú
py__bool__zGeneratorBase.py__bool__6   ó   € Ør(   Ú__iter__c                 ó   — t        | g«      S r"   )r   ©r$   Ú	argumentss     r&   Ú_iterzGeneratorBase._iter9   s   € ä˜˜ÓÐr(   ÚsendÚ__next__c                 óV   — t        j                  d„ | j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr"   ©Úinfer©Ú.0Ú
lazy_values     r&   Ú	<genexpr>z&GeneratorBase._next.<locals>.<genexpr>@   ó   è ø€ Ð!YÑGX¸ *×"2Ñ"2×"4ÑGXùó   ‚©r   Ú	from_setsr   rH   s     r&   Ú_nextzGeneratorBase._next=   s"   € ô ×!Ñ!Ñ!YÀtÇÁÔGXÓ!YÓYÐYr(   c                 óV   — t        t        j                  | j                  d«      g«      S r*   r,   r.   s    r&   r/   z(GeneratorBase.py__stop_iteration_returnsB   r0   r(   c                 ó.   — t        j                  | d«      S )NÚ	Generator)r   ÚCompiledValueNamer.   s    r&   ÚnamezGeneratorBase.nameE   s   € ä×)Ñ)¨$°Ó<Ð<r(   c                 ó®   — ddl m} | j                  «       j                  «       } ||t        t        f«      }| j                  «       j                  |«      S )Nr   ©ÚTupleGenericManager)Újedi.inference.gradual.genericsra   Úmerge_types_of_iterateÚpy__class__r   r:   Úwith_generics)r$   ra   Ú
gen_valuesÚgms       r&   Úget_annotated_class_objectz(GeneratorBase.get_annotated_class_objectI   sD   € ÝGØ×0Ñ0Ó2×>Ñ>Ó@ˆ
Ù  *¬i¼Ð!CÓDˆØ�}‰}‹×,Ñ,¨RÓ0Ð0r(   )r1   r2   r3   Ú
array_typer=   r:   rD   r   rJ   rY   r/   Úpropertyr^   rh   r6   r(   r&   r8   r8   +   sv   „ Ø€Jòòòñ �JÓñ ó  ð ñ �FÓÙ�JÓñZó  ó ðZòTð ñ=ó ð=ó1r(   r8   c                   ó6   ‡ — e Zd ZdZˆ fd„Zdd„Zd„ Zd„ Zˆ xZS )r\   zHandling of `yield` functions.c                 ó2   •— t         ‰| �  |«       || _        y r"   )ÚsuperÚ__init__Ú_func_execution_context)r$   r    Úfunc_execution_contextÚ	__class__s      €r&   rn   zGenerator.__init__R   s   ø€ Ü‰Ñ˜Ô)Ø'=ˆÕ$r(   c                 ó�   — | j                   j                  «       }|r|j                  |«      S | j                   j                  «       S r"   )ro   Úinfer_annotationsÚiterateÚget_yield_lazy_values)r$   r%   Ú	iteratorss      r&   r   zGenerator.py__iter__V   s@   € Ø×0Ñ0×BÑBÓDˆ	ÙØ×$Ñ$Ð%8Ó9Ð9Ø×+Ñ+×AÑAÓCÐCr(   c                 ó6   — | j                   j                  «       S r"   )ro   Úget_return_valuesr.   s    r&   r/   z$Generator.py__stop_iteration_returns\   s   € Ø×+Ñ+×=Ñ=Ó?Ð?r(   c                 óN   — dt        | «      j                  ›d| j                  ›d�S ©NÚ<z of Ú>)Útyper1   ro   r.   s    r&   Ú__repr__zGenerator.__repr___   s   � Ü# D›z×2Ó2°D×4PÓ4PÐQÐQr(   r"   )	r1   r2   r3   Ú__doc__rn   r   r/   r~   Ú__classcell__©rq   s   @r&   r\   r\   P   s   ø„ Ù(ô>óDò@öRr(   r\   c                 óü  — |j                   d   }|j                   d   }|dk(  r}|j                   d   j                   d   dk(  rW|j                   d   }|j                  dk(  r|j                   d   }t        | |||j                   d   |j                   d   ¬«      S t        }n|d	k(  rt        }n|d
k(  rt
        }|j                   d   }|j                  dk(  r|j                   d   } | |||j                   d   ¬«      S )Nr   é   Ú{Ú:é   Úcomp_foré   )Úsync_comp_for_nodeÚkey_nodeÚ
value_nodeÚ(Ú[)Údefining_contextr‰   Ú
entry_node)Úchildrenr}   ÚDictComprehensionÚSetComprehensionÚGeneratorComprehensionÚListComprehension)r    ÚvalueÚatomÚbracketÚtest_list_compÚsync_comp_forÚclss          r&   Úcomprehension_from_atomr›   c   s  € Ø�m‰m˜AÑ€GØ—]‘] 1Ñ%€Nà�#‚~Ø�=‰=˜Ñ×$Ñ$ QÑ'¨3Ò.Ø*×3Ñ3°AÑ6ˆMØ×!Ñ! ZÒ/Ø -× 6Ñ 6°qÑ 9�ä$ØØØ#0Ø'×0Ñ0°Ñ3Ø)×2Ñ2°1Ñ5ôð ô #‰CØ	�CŠÜ$‰Ø	�CŠÜˆà"×+Ñ+¨AÑ.€MØ×Ñ˜ZÒ'Ø%×.Ñ.¨qÑ1ˆáØØØ(Ø!×*Ñ*¨1Ñ-ô	ð r(   c                   ó˜   — e Zd ZU eed<   eed<   eed<   eed<   eed<    e«       d„ «       Zdd„Z eg ¬	«      ed
„ «       «       Z	dd„Z
d„ Zy)ÚComprehensionMixinÚ_defining_contextÚ_entry_noderi   Ú_value_nodeÚ_sync_comp_for_nodec                 ó   — t        ||«      S r"   r   )r$   Úparent_contextr‡   s      r&   Ú_get_comp_for_contextz(ComprehensionMixin._get_comp_for_contextŽ   s   € ä˜n¨hÓ7Ð7r(   Nc              #   óÐ  K  — |d   }|j                   j                  dk(  }|j                  d   }|xs | j                  }|j	                  |«      }t        ||«      }|j                  ||¬«      }|j                  d   }	t        |«      D ]m  \  }
}|j                  «       }t        |||	«      }| j                  ||«      }|j                  ||«      5  	 | j                  |dd  |«      E d {  –—†  d d d «       Œo y 7 Œ# t        $ rQ |j	                  | j                  «      }| j                  dk(  r ||j	                  | j                   «      f–— n|–— Y Œfw xY w# 1 sw Y   ŒÙxY w­w)Nr   r‡   r†   )Úis_asyncrƒ   Údict)Úparentr}   r�   rž   Ú
infer_noder   rt   Ú	enumeraterP   Úunpack_tuple_to_dictr¤   Úpredefine_namesÚ_nestedÚ
IndexErrorrŸ   ri   r    )r$   Ú	comp_forsr£   r‡   r¦   Ú
input_nodeÚinput_typesÚcnÚiteratedÚexprlistÚirS   ÚtypesÚdctÚcontexts                  r&   r­   zComprehensionMixin._nested’   sc  è ø€ Ø˜Q‘<ˆà—?‘?×'Ñ'¨:Ñ5ˆà×&Ñ& qÑ)ˆ
Ø'ÒA¨4×+AÑ+AˆØ$×/Ñ/°
Ó;ˆä °
Ó;ˆØ×&Ñ& r°HÐ&Ó=ˆØ×$Ñ$ QÑ'ˆÜ& xÖ0‰MˆAˆzØ×$Ñ$Ó&ˆEÜ& ~°u¸hÓGˆCØ×0Ñ0ØØóˆGð ×(Ñ(¨°3Õ7ð'Ø#Ÿ|™|¨I°a°b¨M¸7ÓC×CÐC÷ 8Ð7ñ 1ð DùÜ!ò 'Ø&×1Ñ1°$×2BÑ2BÓC�HØ—‘¨&Ò0Ø&¨×(:Ñ(:¸4×;KÑ;KÓ(LÐLÓLà&šùð'ú÷ 8Ð7üsO   ‚CE&ÃEÃC=Ã+C;Ã,C=Ã0E&Ã;C=Ã=AEÅEÅEÅEÅE#	ÅE&©Údefaultc              #   ó~   K  — t        t        | j                  «      «      }| j                  |«      E d {  –—†  y 7 Œ­wr"   )Útupler   r¡   r­   )r$   r¯   s     r&   Ú_iteratezComprehensionMixin._iterate¯   s0   è ø€ ô Ô,¨T×-EÑ-EÓFÓGˆ	Ø—<‘< 	Ó*×*Ò*ús   ‚3=µ;¶=c              #   óP   K  — | j                  «       D ]  }t        |«      –— Œ y ­wr"   ©r½   r   )r$   r%   Úset_s      r&   r   zComprehensionMixin.py__iter__µ   s!   è ø€ Ø—M‘M–OˆDÜ! $Ó'Ó'ñ $ùs   ‚$&c                 óN   — dt        | «      j                  ›d| j                  ›d�S rz   )r}   r1   r¡   r.   s    r&   r~   zComprehensionMixin.__repr__¹   s   � Ü# D›z×2Ó2°D×4LÓ4LÐMÐMr(   r"   )r1   r2   r3   r   r4   r   r¤   r­   r   r½   r   r~   r6   r(   r&   r�   r�   ‡   se   … ØÓØÓØƒOØÓØÓá!Ó#ñ8ó $ð8ó'ñ: "¨"Ô-Øñ+ó ó .ð+ó(óNr(   r�   c                   ó   — e Zd ZU eed<   d„ Zy)Ú
_DictMixinÚget_mapping_item_valuesc                 óB   — t        d„ | j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr"   )rd   )rR   Úc_sets     r&   rT   z+_DictMixin._get_generics.<locals>.<genexpr>Á   s   è ø€ ÐUÑ6T¨U�U×&Ñ&×(Ñ6TùrV   )r¼   rÄ   r.   s    r&   Ú_get_genericsz_DictMixin._get_genericsÀ   s   € ÜÑU°d×6RÑ6RÔ6TÓUÓUÐUr(   N)r1   r2   r3   r   r4   rÈ   r6   r(   r&   rÃ   rÃ   ½   s   … Ø Ó óVr(   rÃ   c                   óf   — e Zd ZdZed„ «       Zd„ Z ed¬«      d„ «       Zd„ Z	d„ Z
ed	„ «       Zd
„ Zy)ÚSequencer<   c                 óB   — t        j                  | | j                  «      S r"   )r   r]   ri   r.   s    r&   r^   zSequence.nameÇ   s   € ä×)Ñ)¨$°·±Ó@Ð@r(   c                 ó@   — | j                  «       j                  «       fS r"   )rc   rd   r.   s    r&   rÈ   zSequence._get_genericsË   s   € Ø×+Ñ+Ó-×9Ñ9Ó;Ð=Ð=r(   r6   r¹   c                 ó"   — | j                  «       S r"   )rÈ   r.   s    r&   Ú_cached_genericszSequence._cached_genericsÎ   s   € à×!Ñ!Ó#Ð#r(   c                 óÎ   — ddl m} ddlm} t	        j
                  | j                  | j                  «      } || || j                  «       «      «      j                  d «      \  }|S )Nr   )ÚGenericClassr`   )
Újedi.inference.gradual.baserÐ   rb   ra   r   r-   r    ri   rÎ   r;   )r$   rÐ   ra   ÚklassÚcs        r&   r=   zSequence._get_wrapped_valueÒ   s[   € Ý<ÝGÜ×*Ñ*¨4×+?Ñ+?ÀÇÁÓQˆÙØÙ × 5Ñ 5Ó 7Ó8ó
÷ Ñ
˜TÓ
"ñ 	ˆð ˆr(   c                  ó   — y r"   r6   r.   s    r&   rD   zSequence.py__bool__Ü   rE   r(   c                 ó.   — | j                   j                  S r"   )r    Úbuiltins_moduler.   s    r&   r¨   zSequence.parentß   s   € à×#Ñ#×3Ñ3Ð3r(   c                 ój   — | j                   dk(  r| j                  «       S t        t        | g«      «      S )Nr§   )ri   Ú_dict_valuesr   r   )r$   Úindex_value_setr%   s      r&   Úpy__getitem__zSequence.py__getitem__ã   s/   € Ø�?‰?˜fÒ$Ø×$Ñ$Ó&Ð&Üœh¨ vÓ.Ó/Ð/r(   N)r1   r2   r3   Úapi_typerj   r^   rÈ   r   rÎ   r=   rD   r   r¨   rÚ   r6   r(   r&   rÊ   rÊ   Ä   s\   „ Ø€HàñAó ðAò>ñ "¨"Ô-ñ$ó .ð$òòð ñ4ó ð4ó0r(   rÊ   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )Ú_BaseComprehensionc                 óp   •— |j                   dk(  sJ ‚t        ‰| �	  |«       || _        || _        || _        y ©Nr™   )r}   rm   rn   rž   r¡   rŸ   )r$   r    rŽ   r‰   r�   rq   s        €r&   rn   z_BaseComprehension.__init__ê   s<   ø€ Ø!×&Ñ&¨/Ò9Ð9Ð9Ü‰Ñ˜Ô)Ø!1ˆÔØ#5ˆÔ Ø%ˆÕr(   )r1   r2   r3   rn   r€   r�   s   @r&   rÝ   rÝ   é   s   ø„ ÷&ð &r(   rÝ   c                   ó   — e Zd ZdZd„ Zy)r”   Úlistc                 ó  — t        |t        «      rt        | g«      S t        | j	                  «       «      }t        t        t        «      5  ||   }d d d «       |j                  «       S # 1 sw Y   j                  «       S xY wr"   )	Ú
isinstanceÚslicer   rá   r   r   r®   Ú	TypeErrorrP   )r$   ÚindexÚ	all_typesrS   s       r&   Úpy__simple_getitem__z&ListComprehension.py__simple_getitem__õ   sg   € Ü�eœUÔ#Ü˜T˜FÓ#Ð#ä˜Ÿ™Ó*Ó+ˆ	Ü#¤J´	Õ:Ø" 5Ñ)ˆJ÷ ;à×ÑÓ!Ð!÷ ;à×ÑÓ!Ð!ús   Á
A(Á(B N)r1   r2   r3   ri   rè   r6   r(   r&   r”   r”   ò   s   „ Ø€Jó"r(   r”   c                   ó   — e Zd ZdZy)r’   ÚsetN©r1   r2   r3   ri   r6   r(   r&   r’   r’   ÿ   s   „ Ø�Jr(   r’   c                   ó   — e Zd Zy)r“   N)r1   r2   r3   r6   r(   r&   r“   r“     s   „ Ør(   r“   c                   ó.   — e Zd ZU eed<   eed<   d„ Zd„ Zy)Ú_DictKeyMixinÚ
_dict_keysrØ   c                 óB   — | j                  «       | j                  «       fS r"   )rï   rØ   r.   s    r&   rÄ   z%_DictKeyMixin.get_mapping_item_values  s   € Ø�‰Ó  $×"3Ñ"3Ó"5Ð5Ð5r(   c                 ó"   — | j                  «       S r"   )rï   r.   s    r&   Úget_key_valuesz_DictKeyMixin.get_key_values  s   € à�‰Ó Ð r(   N)r1   r2   r3   r   r4   rÄ   rò   r6   r(   r&   rî   rî     s   … ØƒOØÓò6ó!r(   rî   c                   óz   ‡ — e Zd ZdZˆ fd„Zdd„Zd„ Zd„ Zd„ Z e	d«      d„ «       Z
 e	d	«      d
„ «       Zd„ Zˆ xZS )r‘   r§   c                 ó~   •— |j                   dk(  sJ ‚t        ‰| �	  |«       || _        || _        || _        || _        y rß   )r}   rm   rn   rž   r¡   rŸ   r    )r$   r    rŽ   r‰   rŠ   r‹   rq   s         €r&   rn   zDictComprehension.__init__  sD   ø€ Ø!×&Ñ&¨/Ò9Ð9Ð9Ü‰Ñ˜Ô)Ø!1ˆÔØ#5ˆÔ Ø#ˆÔØ%ˆÕr(   c              #   óV   K  — | j                  «       D ]  \  }}t        |«      –— Œ y ­wr"   r¿   )r$   r%   ÚkeysÚvaluess       r&   r   zDictComprehension.py__iter__  s%   è ø€ Ø ŸM™MžO‰LˆD�&Ü! $Ó'Ó'ñ ,ùs   ‚')c                 óš   — | j                  «       D ]/  \  }}|D ]%  }|j                  t        «       ¬«      |k(  sŒ!|c c S  Œ1 t        «       ‚)Nr¹   )r½   r5   Úobjectr   )r$   ræ   rö   r÷   Úks        r&   rè   z&DictComprehension.py__simple_getitem__#  sJ   € Ø ŸM™MžO‰LˆD�&Û�ð ×#Ñ#¬F«HÐ#Ó5¸Ó>Ø!”Mñ	 ð ,ô $Ó%Ð%r(   c                 óV   — t        j                  d„ | j                  «       D «       «      S )Nc              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr"   r6   ©rR   rö   r÷   s      r&   rT   z/DictComprehension._dict_keys.<locals>.<genexpr>-  s   è ø€ Ð!K¹?©<¨4°¤$¹?ùó   ‚©r   rX   r½   r.   s    r&   rï   zDictComprehension._dict_keys,  s   € Ü×!Ñ!Ñ!K¸4¿=¹=¼?Ó!KÓKÐKr(   c                 óV   — t        j                  d„ | j                  «       D «       «      S )Nc              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr"   r6   rý   s      r&   rT   z1DictComprehension._dict_values.<locals>.<genexpr>0  s   è ø€ Ð!M¹_©\¨T°6¤&¹_ùrþ   rÿ   r.   s    r&   rØ   zDictComprehension._dict_values/  s   € Ü×!Ñ!Ñ!M¸T¿]¹]¼_Ó!MÓMÐMr(   r÷   c                 óv   — t        | j                  «       «      }t        t        | j                  |g«      g«      S r"   ©r   rØ   r   ÚFakeListr    ©r$   rI   rS   s      r&   Ú_imitate_valuesz!DictComprehension._imitate_values2  ó2   € ä$ T×%6Ñ%6Ó%8Ó9ˆ
Üœ $×"6Ñ"6¸¸ÓEÐFÓGÐGr(   Úitemsc                 óô   — | j                  «       D ��cg c]8  \  }}t        t        | j                  t	        |«      t	        |«      g«      «      ‘Œ: }}}t        t        | j                  |«      g«      S c c}}w r"   )r½   r   Ú	FakeTupler    r   r   r  )r$   rI   Úkeyr•   Úlazy_valuess        r&   Ú_imitate_itemsz DictComprehension._imitate_items7  s   € ð #Ÿm™mœoô	
ñ .‘
��Uô ÜØ×(Ñ(Ü$ SÓ)Ü$ UÓ+ð-óõð .ð 	ñ 	
ô œ $×"6Ñ"6¸ÓDÐEÓFÐFùó	
s   ”=A4c                 ó   — g S r"   r6   r.   s    r&   Úexact_key_itemsz!DictComprehension.exact_key_itemsF  s	   € ð ˆ	r(   r"   )r1   r2   r3   ri   rn   r   rè   rï   rØ   r   r  r  r  r€   r�   s   @r&   r‘   r‘     s^   ø„ Ø€Jô&ó(ò&òLòNñ �HÓñHó ðHñ �GÓñGó ðGör(   r‘   c                   óX   ‡ — e Zd ZdZddddœZˆ fd„Zˆ fd„Zd„ Zdd	„Zd
„ Z	d„ Z
d„ Zˆ xZS )ÚSequenceLiteralValue)Útestlist_star_exprÚtestlistÚsubscriptlistr¼   rá   rê   )rŒ   r�   r„   c                 óÞ   •— t         ‰| �  |«       || _        || _        | j                  j                  | j
                  v rd| _        y t        j                  |j                  d      | _        y )Nr¼   r   )
rm   rn   r–   rž   r}   Ú_TUPLE_LIKEri   r  Úmappingr�   )r$   r    rŽ   r–   rq   s       €r&   rn   zSequenceLiteralValue.__init__R  sZ   ø€ Ü‰Ñ˜Ô)ØˆŒ	Ø!1ˆÔà�9‰9�>‰>˜T×-Ñ-Ñ-Ø%ˆD�Oä2×:Ñ:¸4¿=¹=ÈÑ;KÑLˆDŒOØKr(   c                 ó~   •— | j                   dk(  r t        d„ | j                  «       D «       «      S t        ‰| �  «       S )Nr¼   c              3   óX   K  — | ]"  }|j                  «       j                  «       –— Œ$ y ­wr"   )rP   rd   )rR   Úxs     r&   rT   z5SequenceLiteralValue._get_generics.<locals>.<genexpr>_  s"   è ø€ ÐLÑ:K°Q˜Ÿ™›×.Ñ.×0Ñ:Kùs   ‚(*)ri   r¼   r   rm   rÈ   )r$   rq   s    €r&   rÈ   z"SequenceLiteralValue._get_generics]  s5   ø€ Ø�?‰?˜gÒ%ÜÑL¸$¿/¹/Ô:KÓLÓLÐLÜ‰wÑ$Ó&Ð&r(   c                 ó&  — t        |t        «      rt        | g«      S t        t        t
        t        «      5  | j                  «       |   }ddd«       dk(  s|j                  dk(  rt        S | j                  j                  |«      S # 1 sw Y   Œ>xY w)ú9Here the index is an int/str. Raises IndexError/KeyError.Nr…   Ú	subscript)rã   rä   r   r   rå   ÚKeyErrorr®   Úget_tree_entriesr}   r   rž   r©   )r$   ræ   Únodes      r&   rè   z)SequenceLiteralValue.py__simple_getitem__b  sw   € ä�eœUÔ#Ü˜T˜FÓ#Ð#ä'¬	´8¼ZÕHØ×,Ñ,Ó.¨uÑ5�÷ Ià�sŠ{˜dŸi™i¨;Ò6Ü Ð Ø×)Ñ)×4Ñ4°TÓ:Ð:÷	 IÐHús   ¶BÂBc           	   #   ó  K  — | j                  «       D ]R  }|dk(  s|j                  dk(  r$t        t        | j                  ddd«      «      –— Œ;t        | j                  |«      –— ŒT t        | j                  | «      E d{  –—†  y7 Œ­w)úŒ
        While values returns the possible values for any array field, this
        function returns the value for a certain index.
        r…   r  N)r  r}   r   ÚSlicerž   r   r   )r$   r%   r   s      r&   r   zSequenceLiteralValue.py__iter__m  sv   è ø€ ð
 ×)Ñ)Ö+ˆDØ�sŠ{˜dŸi™i¨;Ò6ô %¤U¨4×+AÑ+AÀ4ÈÈtÓ%TÓUÓUä# D×$:Ñ$:¸DÓAÓAð ,ô )¨×)?Ñ)?ÀÓF×FÒFús   ‚A?B	ÂBÂB	c                 ó4   — t        | j                  «       «      S r"   )Úlenr  r.   s    r&   Ú	py__len__zSequenceLiteralValue.py__len__{  s   € ä�4×(Ñ(Ó*Ó+Ð+r(   c                 ó¦  — | j                   j                  }| j                   j                  | j                  v r|d d d…   S |d   }|dv rg S |j                  dk(  r/|j                  d d d…   D �cg c]  }|j                  dk7  r|‘Œ c}S |j                  dk(  r¡g }t	        |j                  «      }|D ]ƒ  }|dk(  rt        |«       t        |d «       Œ t        |d «      }|�|dk(  r"|j                  dk(  rŒC|j                  |«       ŒU|d	k(  sJ ‚|j                  |t        |«      f«       t        |d «       Œ… |S |j                  dk(  rg S |gS c c}w )
Nrˆ   rƒ   )Ú]Ú}Ú)Útestlist_compÚ	star_exprÚdictorsetmakerz**Ú,r…   )r–   r�   r}   r  ÚiterÚnextÚappend)r$   rÓ   Ú
array_noder•   ÚkvÚiteratorr  Úops           r&   r  z%SequenceLiteralValue.get_tree_entries  s\  € Ø�I‰I×Ñˆà�9‰9�>‰>˜T×-Ñ-Ñ-Ø‘S�q�S‘6ˆMà�q‘Tˆ
Ø˜Ñ(ØˆIà�?‰?˜oÒ-à'1×':Ñ':¹3¸Q¸3Ò'?ó 2Ñ'?˜eØ—z‘z [Ò0ò Ð'?ñ 2ð 2à�_‰_Ð 0Ò0ØˆBÜ˜J×/Ñ/Ó0ˆHÛ�Ø˜$’;ô ˜”NÜ˜ 4Õ(ä˜h¨Ó-�BØ�z R¨3¢YØŸ8™8 {Ò2ð !àŸI™I c�Nà! SšyÐ(˜yØŸ	™	 3¬¨X«Ð"7Ô8Ü˜X tÕ,ð%  ð& ˆIà�‰ +Ò-ð �	à"�|Ð#ùò?2s   Á/Ec                 óP   — d| j                   j                  ›d| j                  ›d�S rz   )rq   r1   r–   r.   s    r&   r~   zSequenceLiteralValue.__repr__¬  s   � Ø#Ÿ~™~×6Ó6¸¿	»	ÐBÐBr(   r"   )r1   r2   r3   r  r  rn   rÈ   rè   r   r&  r  r~   r€   r�   s   @r&   r  r  L  s?   ø„ ØC€KØØØñ€Gô	Lô'ò
	;óGò,ò+$öZCr(   r  c                   ón   — e Zd ZdZd„ Zd„ Zdd„Z ed«      d„ «       Z ed«      d	„ «       Z	d
„ Z
d„ Zd„ Zy)ÚDictLiteralValuer§   c                 óL   — t         j                  | |«       || _        || _        y r"   )rÊ   rn   rž   r–   )r$   r    rŽ   r–   s       r&   rn   zDictLiteralValue.__init__³  s#   € ô 	×Ñ˜$ Ô0Ø!1ˆÔØˆ�	r(   c                 ó^  — t        j                  | j                  |«      }| j                  «       D ]m  \  }}| j                  j                  |«      D ]J  }|j                  |d«      D ]3  }|j                  «       sŒ| j                  j                  |«      c c c S  ŒL Œo t        d| z  «      ‚)r  z==zNo key found in dictionary %s.)	r   Úcreate_simple_objectr    r  rž   r©   Úexecute_operationr5   r   )r$   ræ   Úcompiled_value_indexr  r•   rú   Úkey_vs          r&   rè   z%DictLiteralValue.py__simple_getitem__º  s�   € ä'×<Ñ<¸T×=QÑ=QÐSXÓYÐØ×/Ñ/Ö1‰JˆC�Ø×+Ñ+×6Ñ6°sÖ;�Ø×0Ñ0Ð1EÀtÖL�EØ×+Ñ+Õ-Ø#×5Ñ5×@Ñ@ÀÓGÖGñ Mñ <ð 2ô
 $Ð$DÀtÑ$KÓLÐLr(   Nc              #   ó¬   K  — t         }| j                  «       D ]#  \  }}|| j                  j                  |«      z  }Œ% |D ]  }t	        |«      –— Œ y­w)r"  N)r   r  rž   r©   r   )r$   r%   r¶   rú   Ú_s        r&   r   zDictLiteralValue.py__iter__Ä  sV   è ø€ ô ˆØ×)Ñ)Ö+‰DˆAˆqØ�T×+Ñ+×6Ñ6°qÓ9Ñ9‰Eð ,ó ˆAÜ! %Ó(Ó(ñ ùs   ‚AAr÷   c                 óv   — t        | j                  «       «      }t        t        | j                  |g«      g«      S r"   r  r  s      r&   r  z DictLiteralValue._imitate_valuesÒ  r  r(   r  c                 ó   — | j                  «       D ��cg c]N  \  }}t        t        | j                  t	        | j
                  |«      t	        | j
                  |«      f«      «      ‘ŒP }}}t        t        | j                  |«      g«      S c c}}w r"   )r  r   r
  r    r   rž   r   r  )r$   rI   rŠ   r‹   r  s        r&   r  zDictLiteralValue._imitate_items×  s•   € ð ,0×+@Ñ+@Ô+Bô
ñ
 ,CÑ'�8˜Zô	 œ9Ø×$Ñ$Ü˜t×5Ñ5°xÓ@Ü˜t×5Ñ5°zÓBðDóõ ð ,Cð 	ñ 
ô œ $×"6Ñ"6¸ÓDÐEÓFÐFùó
s   ”AB
c              #   óä   K  — | j                  «       D ]Y  \  }}| j                  j                  |«      D ]6  }t        |«      sŒ|j	                  «       t        | j                  |«      f–— Œ8 Œ[ y­w)z˜
        Returns a generator of tuples like dict.items(), where the key is
        resolved (as a string) and the values are still lazy values.
        N)r  rž   r©   r
   r5   r   )r$   rŠ   r•   r  s       r&   r  z DictLiteralValue.exact_key_itemsã  sd   è ø€ ð
  $×4Ñ4Ö6‰OˆH�eØ×-Ñ-×8Ñ8¸ÖB�Ü˜S•>Ø×,Ñ,Ó.´¸d×>TÑ>TÐV[Ó0\Ð\Ó\ñ Cñ  7ùs   ‚A A0Á-A0c                 ó\   ‡ — t        j                  ˆ fd„‰ j                  «       D «       «      S )Nc              3   óZ   •K  — | ]"  \  }}‰j                   j                  |«      –— Œ$ y ­wr"   ©rž   r©   ©rR   rú   Úvr$   s      €r&   rT   z0DictLiteralValue._dict_values.<locals>.<genexpr>î  ó.   øè ø€ ð "
á/‘��1ð ×"Ñ"×-Ñ-¨a×0Ù/ùó   ƒ(+©r   rX   r  r.   s   `r&   rØ   zDictLiteralValue._dict_valuesí  ó,   ø€ Ü×!Ñ!ó "
à×-Ñ-Ô/ó"
ó 
ð 	
r(   c                 ó\   ‡ — t        j                  ˆ fd„‰ j                  «       D «       «      S )Nc              3   óZ   •K  — | ]"  \  }}‰j                   j                  |«      –— Œ$ y ­wr"   rF  rG  s      €r&   rT   z.DictLiteralValue._dict_keys.<locals>.<genexpr>ô  rI  rJ  rK  r.   s   `r&   rï   zDictLiteralValue._dict_keysó  rL  r(   r"   )r1   r2   r3   ri   rn   rè   r   r   r  r  r  rØ   rï   r6   r(   r&   r8  r8  °  s]   „ Ø€JòòMó)ñ �HÓñHó ðHñ �GÓñ	Gó ð	Gò]ò
ó
r(   r8  c                   ó8   ‡ — e Zd Zˆ fd„Zd„ Zdd„Zd„ Zd„ Zˆ xZS )Ú_FakeSequencec                 ó2   •— t         ‰| �  |«       || _        y)z7
        type should be one of "tuple", "list"
        N)rm   rn   Ú_lazy_value_list)r$   r    Úlazy_value_listrq   s      €r&   rn   z_FakeSequence.__init__û  s   ø€ ô 	‰Ñ˜Ô)Ø /ˆÕr(   c                 óè   — t        |t        «      rt        | g«      S t        t        t
        «      5  | j                  |   }d d d «       |j                  «       S # 1 sw Y   j                  «       S xY wr"   )rã   rä   r   r   r®   rå   rR  rP   ©r$   ræ   rS   s      r&   rè   z"_FakeSequence.py__simple_getitem__  s\   € Ü�eœUÔ#Ü˜T˜FÓ#Ð#ä#¤J´	Õ:Ø×.Ñ.¨uÑ5ˆJ÷ ;à×ÑÓ!Ð!÷ ;à×ÑÓ!Ð!ús   ±AÁA1c                 ó   — | j                   S r"   )rR  r#   s     r&   r   z_FakeSequence.py__iter__
  s   € Ø×$Ñ$Ð$r(   c                 ó>   — t        t        | j                  «      «      S r"   )Úboolr%  rR  r.   s    r&   rD   z_FakeSequence.py__bool__  s   € Ü”C˜×-Ñ-Ó.Ó/Ð/r(   c                 óN   — dt        | «      j                  ›d| j                  ›d�S rz   )r}   r1   rR  r.   s    r&   r~   z_FakeSequence.__repr__  s   � Ü# D›z×2Ó2°D×4IÓ4IÐJÐJr(   r"   )	r1   r2   r3   rn   rè   r   rD   r~   r€   r�   s   @r&   rP  rP  ú  s   ø„ ô0ò"ó%ò0öKr(   rP  c                   ó   — e Zd ZdZy)r
  r¼   Nrë   r6   r(   r&   r
  r
    ó   „ Ø�Jr(   r
  c                   ó   — e Zd ZdZy)r  r¼   Nrë   r6   r(   r&   r  r    r[  r(   r  c                   ód   ‡ — e Zd ZdZˆ fd„Zdd„Zd„ Z ed«      d„ «       Zd„ Z	d„ Z
d	„ Zd
„ Zˆ xZS )ÚFakeDictr§   c                 ó2   •— t         ‰| �  |«       || _        y r"   )rm   rn   Ú_dct)r$   r    r·   rq   s      €r&   rn   zFakeDict.__init__  s   ø€ Ü‰Ñ˜Ô)Øˆ�	r(   c              #   ó„   K  — | j                   D ]-  }t        t        j                  | j                  |«      «      –— Œ/ y ­wr"   )r`  r   r   r;  r    )r$   r%   r  s      r&   r   zFakeDict.py__iter__#  s3   è ø€ Ø—9”9ˆCÜ ¤×!>Ñ!>¸t×?SÑ?SÐUXÓ!YÓZÓZñ ùs   ‚>A c                 ó°   — t        t        t        «      5  | j                  |   }d d d «       |j	                  «       S # 1 sw Y   j	                  «       S xY wr"   )r   r  rå   r`  rP   rU  s      r&   rè   zFakeDict.py__simple_getitem__'  sC   € Ü#¤H¬iÕ8ØŸ™ 5Ñ)ˆJ÷ 9à×ÑÓ!Ð!÷ 9à×ÑÓ!Ð!ús	   •=½Ar÷   c           	      ór   — t        t        | j                  t        | j	                  «       «      g«      g«      S r"   )r   r
  r    r   rØ   rH   s     r&   Ú_valueszFakeDict._values,  s8   € äœØ× Ñ Ü˜T×.Ñ.Ó0Ó1Ð2ó
ð ó ð 	r(   c                 ój   — t        j                  d„ | j                  j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr"   rO   rQ   s     r&   rT   z(FakeDict._dict_values.<locals>.<genexpr>4  s   è ø€ Ð!ZÑGY¸ *×"2Ñ"2×"4ÑGYùrV   )r   rX   r`  r÷   r.   s    r&   rØ   zFakeDict._dict_values3  s&   € Ü×!Ñ!Ñ!ZÀtÇyÁy×GWÑGWÔGYÓ!ZÓZÐZr(   c                 óV   — t        j                  d„ | j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr"   rO   rQ   s     r&   rT   z&FakeDict._dict_keys.<locals>.<genexpr>7  rU   rV   rW   r.   s    r&   rï   zFakeDict._dict_keys6  ó    € Ü×!Ñ!Ñ!YÀtÇÁÔGXÓ!YÓYÐYr(   c                 ó6   — | j                   j                  «       S r"   )r`  r  r.   s    r&   r  zFakeDict.exact_key_items9  s   € Ø�y‰y�‰Ó Ð r(   c                 óP   — d| j                   j                  ›d| j                  ›d�S )Nr{   z: r|   )rq   r1   r`  r.   s    r&   r~   zFakeDict.__repr__<  s   � Ø!Ÿ^™^×4Ó4°d·i³iÐ@Ð@r(   r"   )r1   r2   r3   ri   rn   r   rè   r   rd  rØ   rï   r  r~   r€   r�   s   @r&   r^  r^    sH   ø„ Ø€Jôó[ò"ñ
 �HÓñó ðò[òZò!öAr(   r^  c                   ó,   ‡ — e Zd Zˆ fd„Zdd„Zd„ Zˆ xZS )ÚMergedArrayc                 óZ   •— t         ‰| �  |«       |d   j                  | _        || _        y )Néÿÿÿÿ)rm   rn   ri   Ú_arrays)r$   r    Úarraysrq   s      €r&   rn   zMergedArray.__init__A  s(   ø€ Ü‰Ñ˜Ô)Ø  ™*×/Ñ/ˆŒØˆ�r(   c              #   ób   K  — | j                   D ]  }|j                  «       E d {  –—†  Œ y 7 Œ­wr"   )rp  r   )r$   r%   Úarrays      r&   r   zMergedArray.py__iter__F  s)   è ø€ Ø—\”\ˆEØ×'Ñ'Ó)×)Ñ)ñ "Ø)ús   ‚#/¥-¦/c                 óV   — t        j                  d„ | j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr"   rO   rQ   s     r&   rT   z3MergedArray.py__simple_getitem__.<locals>.<genexpr>K  rU   rV   rW   )r$   ræ   s     r&   rè   z MergedArray.py__simple_getitem__J  ri  r(   r"   )r1   r2   r3   rn   r   rè   r€   r�   s   @r&   rm  rm  @  s   ø„ ôó
*öZr(   rm  c           	      óà  — |j                   dk(  r|j                  |iS |j                   dk(  r+|j                  d   dv rt        | ||j                  d   «      S |j                   dv r¨i }t	        |j                  ddd…   «      }d}|j                  t        | |«      «      D ]=  }|dz  }	 t        |«      }|j                  t        | |j                  «       |«      «       Œ? t        |d«      }|r|�t        j                  | d|d|z  ¬«       |S |j                   dk(  s|j                   dk(  ri S |j                   dk(  ri S t        ‚# t        $ r t        j                  | d	d
|z  ¬«       Y ŒÌw xY w)zG
    Unpacking tuple assignments in for statements and expr_stmts.
    r^   r–   r   )rŒ   r�   rƒ   )r  r+  r´   r  Nrˆ   zvalue-error-too-many-valuesz3ValueError: too many values to unpack (expected %s))Úmessagezvalue-error-too-few-valuesz.ValueError: need more than %s values to unpackÚpowerÚ	atom_exprr,  )r}   r•   r�   r«   r/  rt   r   r0  ÚupdaterP   ÚStopIterationr   ÚaddÚNotImplementedError)	r¸   r¶   r´   r·   ÚpartsÚnrS   ÚpartÚ	has_partss	            r&   r«   r«   N  s}  € ð ‡}�}˜ÒØ—‘ Ð&Ð&Ø	�‰˜&Ò	  X×%6Ñ%6°qÑ%9¸ZÑ%GÜ# G¨U°H×4EÑ4EÀaÑ4HÓIÐIØ	�‰ð 1ñ 
1àˆÜ�X×&Ñ&¡s¨ sÑ+Ó,ˆØˆØŸ-™-Ô(:¸7ÀHÓ(MÖNˆJØ�‰FˆAðTÜ˜E“{�ð
 —
‘
Ô/°¸×9IÑ9IÓ9KÈTÓRÕSð Oô ˜ Ó%ˆ	Ù�YÐ*Ü�L‰L˜Ð">À	Ø!QÐTUÑ!UõWàˆ
Ø	�‰˜'Ò	! X§]¡]°kÒ%Að ˆ	Ø	�‰˜+Ò	%àˆ	Ü
Ðøô% !ò `Ü—‘˜WÐ&CÀTØ%ZÐ]^Ñ%^÷`ð`ús   Â)EÅ%E-Å,E-c                   ó"   — e Zd Zd„ Zd„ Zefd„Zy)r#  c                 ó^   — |j                   | _         || _        || _        || _        || _        y r"   )r    Ú_contextÚ_startÚ_stopÚ_step)r$   Úpython_contextÚstartÚstopÚsteps        r&   rn   zSlice.__init__u  s,   € Ø-×=Ñ=ˆÔØ&ˆŒàˆŒØˆŒ
Øˆ�
r(   c                 ó~   — t        j                  | j                  j                  d«      }|j	                  «       \  }|S )Nrä   )r   r-   r„  r    Úexecute_with_values)r$   r•   Úslice_values      r&   r=   zSlice._get_wrapped_value}  s4   € Ü×*Ñ*¨4¯=©=×+HÑ+HÈ'ÓRˆØ×0Ñ0Ó2‰ˆØÐr(   c                 óÂ   ‡ — ˆ fd„}	 t         |‰ j                  «       |‰ j                  «       |‰ j                  «      «      S # t        $ r t        ddd«      cY S w xY w)ze
        Imitate CompiledValue.obj behavior and return a ``builtin.slice()``
        object.
        c                 ó†   •— | €y ‰j                   j                  | «      }t        |«      dk7  rt        ‚|\  }t	        |«      S )Nrƒ   )r„  r©   r%  r®   r	   )ÚelementÚresultr•   r$   s      €r&   Úgetz!Slice.get_safe_value.<locals>.get‡  sE   ø€ ØˆØà—]‘]×-Ñ-¨gÓ6ˆFÜ�6‹{˜aÒô !Ð à‰FˆEÜ" 5Ó)Ð)r(   N)rä   r…  r†  r‡  r®   )r$   rº   r“  s   `  r&   r5   zSlice.get_safe_value‚  sS   ø€ ô
	*ð	+Ü™˜TŸ[™[Ó)©3¨t¯z©z«?¹CÀÇ
Á
»OÓLÐLøÜò 	+Ü˜˜t TÓ*Ò*ð	+ús   ˆ<A ÁAÁAN)r1   r2   r3   rn   r=   r   r5   r6   r(   r&   r#  r#  t  s   „ òòð
 &.ô +r(   r#  N);r   Útypingr   Újedi.inferencer   r   Újedi.inference.lazy_valuer   r   r   Újedi.inference.helpersr	   r
   r   r   Újedi.inference.utilsr   r   Újedi.inference.cacher   Újedi.inference.filtersr   r   Újedi.inference.base_valuer   r   r   r   r   r   r   Újedi.parser_utilsr   Újedi.inference.contextr   Ú#jedi.inference.value.dynamic_arraysr   r   r8   r\   r›   r�   rÃ   rÊ   rÝ   r”   r’   r“   rî   r‘   r  r8  rP  r
  r  r^  rm  r«   r#  r6   r(   r&   Ú<module>rŸ     sx  ðñõ å #Ý #÷ñ ÷2ó 2ç 7Ý =ß I÷÷ ñ õ 1Ý 1Ý E÷*ñ *ô&"1Ð*¨Mô "1ôJR�ô Rò&!÷H3Nñ 3N÷lVñ Vô"0Ð% }ô "0ôJ&Ð+ô &ô
"Ð*¨Hô 
"ôÐ)¨8ô ô	Ð/°ô 	÷
!ñ 
!ô5Ð*¨H°mô 5ôpaC˜8ô aCôHG
�zÐ#7¸ô G
ôTK�Hô Kô4�ô ôˆ}ô ô!Aˆz˜8 ]ô !AôHZ�(ô Zò#ôL#+Ðõ #+r(   