ó
    Ð]j8\  ã                   óž  • S r SSKJr  SSKJr  SSKJr  SSKJrJrJ	r	  SSK
JrJrJrJr  SSKJrJr  SSKJr  SS	KJrJr  SS
KJrJrJrJrJrJrJr  SSKJ r   SSK!J"r"  SSK#J$r$   " S S5      r% " S S\\%5      r& " S S\&5      r'S r( " S S5      r) " S S5      r* " S S\\%5      r+ " S S\)5      r, " S S\,\+5      r- " S S \,\+5      r. " S! S"\,\&5      r/ " S# S$5      r0 " S% S&\)\+\05      r1 " S' S(\+5      r2 " S) S*\*\2\05      r3 " S+ S,\+5      r4 " S- S.\45      r5 " S/ S0\45      r6 " S1 S2\*\+\05      r7 " S3 S4\+5      r8S5 r9 " S6 S7\5      r:g8)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                   óR   • \ rS rSr% \\S'   \\S'   SS jrS r\R                  r	Sr
g)	ÚIterableMixiné   Ú
py__iter__Úinference_stateNc                 ó$   • U R                  U5      $ ©N)r    ©ÚselfÚcontextualized_nodes     ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/jedi/inference/value/iterable.pyÚ
py__next__ÚIterableMixin.py__next__   s   € Ø�‰Ð2Ó3Ð3ó    c                 óX   • [        [        R                  " U R                  S5      /5      $ ©NÚNone©r   r   Úbuiltin_from_namer!   ©r%   s    r'   Úpy__stop_iteration_returnsÚ(IterableMixin.py__stop_iteration_returns   ó#   € Üœ×3Ò3°D×4HÑ4HÈ&ÓQÐRÓSÐSr*   © r#   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__annotations__r(   r1   r   Úget_safe_valueÚ__static_attributes__r4   r*   r'   r   r      s%   ‡ ØƒOØÓô4òTð ×)Ñ)ƒNr*   r   c                   ó”   • \ rS rSrSrS rS rS r\" S5      S 5       r	\" S5      \" S	5      S
 5       5       r
S r\S 5       rS rSrg)ÚGeneratorBaseé+   Nc                 óH   • U R                  5       R                  S 5      u  nU$ r#   )Ú_get_clsÚexecute_annotation)r%   Úinstances     r'   Ú_get_wrapped_valueÚ GeneratorBase._get_wrapped_value.   s   € Ø—M‘M“O×6Ñ6°tÓ<‰	ˆØˆr*   c                 óT   • U R                   R                  R                  S5      u  nU$ )NÚGeneratorType)r!   Útypes_moduleÚpy__getattribute__)r%   Ú	generators     r'   r@   ÚGeneratorBase._get_cls2   s&   € Ø×)Ñ)×6Ñ6×IÑIÈ/ÓZ‰
ˆ	ØÐr*   c                 ó   • g)NTr4   r0   s    r'   Ú
py__bool__ÚGeneratorBase.py__bool__6   ó   € Ør*   Ú__iter__c                 ó   • [        U /5      $ r#   )r   ©r%   Ú	argumentss     r'   Ú_iterÚGeneratorBase._iter9   s   € ä˜˜ÓÐr*   ÚsendÚ__next__c                 óX   • [         R                  " S U R                  5        5       5      $ )Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr#   ©Úinfer©Ú.0Ú
lazy_values     r'   Ú	<genexpr>Ú&GeneratorBase._next.<locals>.<genexpr>@   ó   é € Ð!YÒGX¸×"2Ñ"2×"4Ð"4ÒGXùó   ‚©r   Ú	from_setsr    rQ   s     r'   Ú_nextÚGeneratorBase._next=   s"   € ô ×!Ò!Ñ!YÀtÇÁÔGXÓ!YÓYÐYr*   c                 óX   • [        [        R                  " U R                  S5      /5      $ r,   r.   r0   s    r'   r1   Ú(GeneratorBase.py__stop_iteration_returnsB   r3   r*   c                 ó0   • [         R                  " U S5      $ )NÚ	Generator)r   ÚCompiledValueNamer0   s    r'   ÚnameÚGeneratorBase.nameE   s   € ä×)Ò)¨$°Ó<Ð<r*   c                 ó®   • SSK Jn  U R                  5       R                  5       nU" U[        [        45      nU R                  5       R                  U5      $ )Nr   ©ÚTupleGenericManager)Újedi.inference.gradual.genericsro   Úmerge_types_of_iterateÚpy__class__r   r@   Úwith_generics)r%   ro   Ú
gen_valuesÚgms       r'   Úget_annotated_class_objectÚ(GeneratorBase.get_annotated_class_objectI   sD   € ÝGØ×0Ñ0Ó2×>Ñ>Ó@ˆ
Ù  *¬i¼Ð!CÓDˆØ�}‰}‹×,Ñ,¨RÓ0Ð0r*   r4   )r5   r6   r7   r8   Ú
array_typerC   r@   rL   r   rS   rd   r1   Úpropertyrk   rv   r;   r4   r*   r'   r=   r=   +   sv   † Ø€Jòòòñ �JÓñ ó  ð ñ �FÓÙ�JÓñZó  ó ðZòTð ñ=ó ð=õ1r*   r=   c                   óB   ^ • \ rS rSrSrU 4S jrSS jrS rS rSr	U =r
$ )	ri   éP   zHandling of `yield` functions.c                 ó0   >• [         TU ]  U5        X l        g r#   )ÚsuperÚ__init__Ú_func_execution_context)r%   r!   Úfunc_execution_contextÚ	__class__s      €r'   r~   ÚGenerator.__init__R   s   ø€ Ü‰Ñ˜Ô)Ø'=Õ$r*   c                 óš   • U R                   R                  5       nU(       a  UR                  U5      $ U R                   R                  5       $ r#   )r   Úinfer_annotationsÚiterateÚget_yield_lazy_values)r%   r&   Ú	iteratorss      r'   r    ÚGenerator.py__iter__V   s@   € Ø×0Ñ0×BÑBÓDˆ	ÞØ×$Ñ$Ð%8Ó9Ð9Ø×+Ñ+×AÑAÓCÐCr*   c                 ó6   • U R                   R                  5       $ r#   )r   Úget_return_valuesr0   s    r'   r1   Ú$Generator.py__stop_iteration_returns\   s   € Ø×+Ñ+×=Ñ=Ó?Ð?r*   c                 óR   • S[        U 5      R                  < SU R                  < S3$ ©NÚ<z of Ú>)Útyper5   r   r0   s    r'   Ú__repr__ÚGenerator.__repr___   s   � Ü# D›z×2Ô2°D×4PÔ4PÐQÐQr*   )r   r#   )r5   r6   r7   r8   Ú__doc__r~   r    r1   r‘   r;   Ú__classcell__©r�   s   @r'   ri   ri   P   s#   ø† Ù(õ>ôDò@÷Rð Rr*   ri   c                 óü  • UR                   S   nUR                   S   nUS:X  a|  UR                   S   R                   S   S:X  aU  UR                   S   nUR                  S:X  a  UR                   S   n[        U UUUR                   S   UR                   S   S9$ [        nOUS	:X  a  [        nOUS
:X  a  [
        nUR                   S   nUR                  S:X  a  UR                   S   nW" U UUUR                   S   S9$ )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                   óž   • \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \" 5       S 5       rSS	 jr\" / S
9\	S 5       5       r
SS jrS rSrg)ÚComprehensionMixiné‡   Ú_defining_contextÚ_entry_noderx   Ú_value_nodeÚ_sync_comp_for_nodec                 ó   • [        X5      $ r#   r   )r%   Úparent_contextr›   s      r'   Ú_get_comp_for_contextÚ(ComprehensionMixin._get_comp_for_contextŽ   s   € ä˜nÓ7Ð7r*   Nc              #   óÞ  #   • US   nUR                   R                  S:H  nUR                  S   nU=(       d    U R                  nUR	                  U5      n[        X%5      nUR                  XtS9nUR                  S   n	[        U5       Hk  u  p«UR                  5       n[        X,U	5      nU R                  UU5      nUR                  X=5          U R                  USS  U5       S h  v•N   S S S 5        Mm     g  N! [         aR    UR	                  U R                  5      nU R                  S:X  a   XŽR	                  U R                   5      4v •   NdUv •   Njf = f! , (       d  f       Mà  = f7f)Nr   r›   rš   )Úis_asyncr—   Údict)Úparentr�   r¤   r³   Ú
infer_noder   r…   Ú	enumeraterZ   Úunpack_tuple_to_dictr¹   Úpredefine_namesÚ_nestedÚ
IndexErrorr´   rx   rµ   )r%   Ú	comp_forsr¸   r›   r¼   Ú
input_nodeÚinput_typesÚcnÚiteratedÚexprlistÚir]   ÚtypesÚdctÚcontexts                  r'   rÃ   ÚComprehensionMixin._nested’   sU  é € Ø˜Q‘<ˆà—?‘?×'Ñ'¨:Ñ5ˆà×&Ñ& qÑ)ˆ
Ø'×A¨4×+AÑ+AˆØ$×/Ñ/°
Ó;ˆä Ó;ˆØ×&Ñ& rÐ&Ð=ˆØ×$Ñ$ QÑ'ˆÜ& xÖ0‰MˆAØ×$Ñ$Ó&ˆEÜ& ~¸hÓGˆCØ×0Ñ0ØØóˆGð ×(Ñ(¨Õ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üs[   ‚CE-ÃEÃC<Ã(C:Ã)C<Ã-E-Ã:C<Ã<AEÅEÅEÅEÅEÅEÅ
E*	Å%E-©Údefaultc              #   ó~   #   • [        [        U R                  5      5      nU R                  U5       S h  v•N   g  N7fr#   )Útupler   r¶   rÃ   )r%   rÅ   s     r'   Ú_iterateÚComprehensionMixin._iterate¯   s/   é € ô Ô,¨T×-EÑ-EÓFÓGˆ	Ø—<‘< 	Ó*×*Ó*ùs   ‚3=µ;¶=c              #   óT   #   • U R                  5        H  n[        U5      v •  M     g 7fr#   ©rÔ   r   )r%   r&   Úset_s      r'   r    ÚComprehensionMixin.py__iter__µ   s    é € Ø—M‘M–OˆDÜ! $Ó'Ô'ò $ùs   ‚&(c                 óR   • S[        U 5      R                  < SU R                  < S3$ r�   )r�   r5   r¶   r0   s    r'   r‘   ÚComprehensionMixin.__repr__¹   s   � Ü# D›z×2Ô2°D×4LÔ4LÐMÐMr*   r4   r#   )r5   r6   r7   r8   r   r9   r   r¹   rÃ   r   rÔ   r    r‘   r;   r4   r*   r'   r±   r±   ‡   se   ‡ ØÓØÓØƒOØÓØÓá!Ó#ñ8ó $ð8ô'ñ: "¨"Ñ-Øñ+ó ó .ð+ô(õNr*   r±   c                   ó&   • \ rS rSr% \\S'   S rSrg)Ú
_DictMixiné½   Úget_mapping_item_valuesc                 óB   • [        S U R                  5        5       5      $ )Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr#   )rr   )r\   Úc_sets     r'   r^   Ú+_DictMixin._get_generics.<locals>.<genexpr>Á   s   é € ÐUÒ6T¨U×&Ñ&×(Ð(Ò6Tùra   )rÓ   rß   r0   s    r'   Ú_get_genericsÚ_DictMixin._get_genericsÀ   s   € ÜÑU°d×6RÑ6RÔ6TÓUÓUÐUr*   r4   N)r5   r6   r7   r8   r   r9   rä   r;   r4   r*   r'   rÝ   rÝ   ½   s   ‡ Ø Ó õVr*   rÝ   c                   óh   • \ rS rSrSr\S 5       rS r\" SS9S 5       r	S r
S	 r\S
 5       rS rSrg)ÚSequenceéÄ   rB   c                 óB   • [         R                  " X R                  5      $ r#   )r   rj   rx   r0   s    r'   rk   ÚSequence.nameÇ   s   € ä×)Ò)¨$·±Ó@Ð@r*   c                 ó@   • U R                  5       R                  5       4$ r#   )rq   rr   r0   s    r'   rä   ÚSequence._get_genericsË   s   € Ø×+Ñ+Ó-×9Ñ9Ó;Ð=Ð=r*   r4   rÐ   c                 ó"   • U R                  5       $ r#   )rä   r0   s    r'   Ú_cached_genericsÚSequence._cached_genericsÎ   s   € à×!Ñ!Ó#Ð#r*   c                 óÐ   • SSK Jn  SSKJn  [        R
                  " U R                  U R                  5      nU" UU" U R                  5       5      5      R                  S 5      u  nU$ )Nr   )ÚGenericClassrn   )
Újedi.inference.gradual.baserñ   rp   ro   r   r/   r!   rx   rî   rA   )r%   rñ   ro   ÚklassÚcs        r'   rC   ÚSequence._get_wrapped_valueÒ   s[   € Ý<ÝGÜ×*Ò*¨4×+?Ñ+?ÀÇÁÓQˆÙØÙ × 5Ñ 5Ó 7Ó8ó
÷ Ñ
˜TÓ
"ñ 	ˆð ˆr*   c                 ó   • g r#   r4   r0   s    r'   rL   ÚSequence.py__bool__Ü   rN   r*   c                 ó.   • U R                   R                  $ r#   )r!   Úbuiltins_moduler0   s    r'   r¾   ÚSequence.parentß   s   € à×#Ñ#×3Ñ3Ð3r*   c                 ól   • U R                   S:X  a  U R                  5       $ [        [        U /5      5      $ )Nr½   )rx   Ú_dict_valuesr   r   )r%   Úindex_value_setr&   s      r'   Úpy__getitem__ÚSequence.py__getitem__ã   s/   € Ø�?‰?˜fÓ$Ø×$Ñ$Ó&Ð&Üœh¨ vÓ.Ó/Ð/r*   N)r5   r6   r7   r8   Úapi_typery   rk   rä   r   rî   rC   rL   r   r¾   rþ   r;   r4   r*   r'   rç   rç   Ä   s\   † Ø€HàñAó ðAò>ñ "¨"Ñ-ñ$ó .ð$òòð ñ4ó ð4õ0r*   rç   c                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )Ú_BaseComprehensionéé   c                 ól   >• UR                   S:X  d   e[        TU ]	  U5        X l        X0l        X@l        g ©Nr­   )r�   r}   r~   r³   r¶   r´   )r%   r!   r¢   r�   r£   r�   s        €r'   r~   Ú_BaseComprehension.__init__ê   s6   ø€ Ø!×&Ñ&¨/Ó9Ð9Ð9Ü‰Ñ˜Ô)Ø!1ÔØ#5Ô Ø%Õr*   )r³   r´   r¶   )r5   r6   r7   r8   r~   r;   r”   r•   s   @r'   r  r  é   s   ø† ÷&ó &r*   r  c                   ó   • \ rS rSrSrS rSrg)r¨   éò   Úlistc                 ó  • [        U[        5      (       a  [        U /5      $ [        U R	                  5       5      n[        [        [        5         X!   nS S S 5        UR                  5       $ ! , (       d  f       WR                  5       $ = fr#   )	Ú
isinstanceÚslicer   r	  r    r   rÄ   Ú	TypeErrorrZ   )r%   ÚindexÚ	all_typesr]   s       r'   Úpy__simple_getitem__Ú&ListComprehension.py__simple_getitem__õ   sk   € Ü�eœU×#Ñ#Ü˜T˜FÓ#Ð#ä˜Ÿ™Ó*Ó+ˆ	Ü#¤J´	Õ:Ø"Ñ)ˆJ÷ ;à×ÑÓ!Ð!÷ ;Ô:à×ÑÓ!Ð!ús   ÁA,Á,
B	r4   N)r5   r6   r7   r8   rx   r  r;   r4   r*   r'   r¨   r¨   ò   s   † Ø€Jõ"r*   r¨   c                   ó   • \ rS rSrSrSrg)r¦   éÿ   Úsetr4   N©r5   r6   r7   r8   rx   r;   r4   r*   r'   r¦   r¦   ÿ   s   † ØƒJr*   r¦   c                   ó   • \ rS rSrSrg)r§   i  r4   N)r5   r6   r7   r8   r;   r4   r*   r'   r§   r§     s   † Úr*   r§   c                   ó6   • \ rS rSr% \\S'   \\S'   S rS rSrg)Ú_DictKeyMixini  Ú
_dict_keysrü   c                 óB   • U R                  5       U R                  5       4$ r#   )r  rü   r0   s    r'   rß   Ú%_DictKeyMixin.get_mapping_item_values  s   € Ø�‰Ó  $×"3Ñ"3Ó"5Ð5Ð5r*   c                 ó"   • U R                  5       $ r#   )r  r0   s    r'   Úget_key_valuesÚ_DictKeyMixin.get_key_values  s   € à�‰Ó Ð r*   r4   N)	r5   r6   r7   r8   r   r9   rß   r  r;   r4   r*   r'   r  r    s   ‡ ØƒOØÓò6õ!r*   r  c                   ó†   ^ • \ rS rSrSrU 4S jrSS jrS rS rS r	\
" S5      S	 5       r\
" S
5      S 5       rS rSrU =r$ )r¥   i  r½   c                 óx   >• UR                   S:X  d   e[        TU ]	  U5        X l        X0l        X@l        XPl        g r  )r�   r}   r~   r³   r¶   r´   rµ   )r%   r!   r¢   r�   rž   rŸ   r�   s         €r'   r~   ÚDictComprehension.__init__  s<   ø€ Ø!×&Ñ&¨/Ó9Ð9Ð9Ü‰Ñ˜Ô)Ø!1ÔØ#5Ô Ø#ÔØ%Õr*   c              #   óX   #   • U R                  5        H  u  p#[        U5      v •  M     g 7fr#   r×   )r%   r&   ÚkeysÚvaluess       r'   r    ÚDictComprehension.py__iter__  s"   é € Ø ŸM™MžO‰LˆDÜ! $Ó'Ô'ò ,ùs   ‚(*c                 óœ   • U R                  5        H/  u  p#U H$  nUR                  [        5       S9U:X  d  M   Us  s  $    M1     [        5       e)NrÐ   )rÔ   r:   Úobjectr   )r%   r  r#  r$  Úks        r'   r  Ú&DictComprehension.py__simple_getitem__#  sH   € Ø ŸM™MžO‰LˆDÛ�ð ×#Ñ#¬F«HÐ#Ð5¸Õ>Ø!”Mó	 ñ ,ô $Ó%Ð%r*   c                 óX   • [         R                  " S U R                  5        5       5      $ )Nc              3   ó*   #   • U  H	  u  pUv •  M     g 7fr#   r4   ©r\   r#  r$  s      r'   r^   Ú/DictComprehension._dict_keys.<locals>.<genexpr>-  s   é € Ð!Kº?©<¨4¥$º?ùó   ‚©r   rc   rÔ   r0   s    r'   r  ÚDictComprehension._dict_keys,  s   € Ü×!Ò!Ñ!K¸4¿=¹=¼?Ó!KÓKÐKr*   c                 óX   • [         R                  " S U R                  5        5       5      $ )Nc              3   ó*   #   • U  H	  u  pUv •  M     g 7fr#   r4   r,  s      r'   r^   Ú1DictComprehension._dict_values.<locals>.<genexpr>0  s   é € Ð!Mº_©\¨T¥&º_ùr.  r/  r0   s    r'   rü   ÚDictComprehension._dict_values/  s   € Ü×!Ò!Ñ!M¸T¿]¹]¼_Ó!MÓMÐMr*   r$  c                 óv   • [        U R                  5       5      n[        [        U R                  U/5      /5      $ r#   ©r   rü   r   ÚFakeListr!   ©r%   rR   r]   s      r'   Ú_imitate_valuesÚ!DictComprehension._imitate_values2  ó2   € ä$ T×%6Ñ%6Ó%8Ó9ˆ
Üœ $×"6Ñ"6¸¸ÓEÐFÓGÐGr*   Úitemsc                 óø   • U R                  5        VVs/ s H8  u  p#[        [        U R                  [	        U5      [	        U5      /5      5      PM:     nnn[        [        U R                  U5      /5      $ s  snnf r#   )rÔ   r   Ú	FakeTupler!   r   r   r7  )r%   rR   Úkeyr©   Úlazy_valuess        r'   Ú_imitate_itemsÚ DictComprehension._imitate_items7  s}   € ð #Ÿm™mœoô	
ò .‘
�ô ÜØ×(Ñ(Ü$ SÓ)Ü$ UÓ+ð-óöñ .ð 	ñ 	
ô œ $×"6Ñ"6¸ÓDÐEÓFÐFùó	
s   ”?A6c                 ó   • / $ r#   r4   r0   s    r'   Úexact_key_itemsÚ!DictComprehension.exact_key_itemsF  s	   € ð ˆ	r*   )r³   r´   r¶   rµ   r#   )r5   r6   r7   r8   rx   r~   r    r  r  rü   r   r9  rA  rD  r;   r”   r•   s   @r'   r¥   r¥     sc   ø† Ø€Jõ&ô(ò&òLòNñ �HÓñHó ðHñ �GÓñGó ðG÷ð r*   r¥   c                   óf   ^ • \ rS rSrSrSSSS.rU 4S jrU 4S jrS	 rSS
 jr	S r
S rS rSrU =r$ )ÚSequenceLiteralValueiL  )Útestlist_star_exprÚtestlistÚsubscriptlistrÓ   r	  r  )r    r¡   r˜   c                 óÞ   >• [         TU ]  U5        X0l        X l        U R                  R                  U R
                  ;   a  SU l        g [        R                  UR                  S      U l        g )NrÓ   r   )
r}   r~   rª   r³   r�   Ú_TUPLE_LIKErx   rG  Úmappingr¤   )r%   r!   r¢   rª   r�   s       €r'   r~   ÚSequenceLiteralValue.__init__R  sV   ø€ Ü‰Ñ˜Ô)ØŒ	Ø!1Ôà�9‰9�>‰>˜T×-Ñ-Ó-Ø%ˆD�Oä2×:Ñ:¸4¿=¹=ÈÑ;KÑLˆDŒOØKr*   c                 ó€   >• U R                   S:X  a   [        S U R                  5        5       5      $ [        TU ]  5       $ )NrÓ   c              3   ó\   #   • U  H"  oR                  5       R                  5       v •  M$     g 7fr#   )rZ   rr   )r\   Úxs     r'   r^   Ú5SequenceLiteralValue._get_generics.<locals>.<genexpr>_  s"   é € ÐLÒ:K°QŸ™›×.Ñ.×0Ð0Ò:Kùs   ‚*,)rx   rÓ   r    r}   rä   )r%   r�   s    €r'   rä   Ú"SequenceLiteralValue._get_generics]  s5   ø€ Ø�?‰?˜gÓ%ÜÑL¸$¿/¹/Ô:KÓLÓLÐLÜ‰wÑ$Ó&Ð&r*   c                 ó>  • [        U[        5      (       a  [        U /5      $ [        [        [
        [        5         U R                  5       U   nSSS5        WS:X  d  UR                  S:X  a  [        $ U R                  R                  U5      $ ! , (       d  f       NE= f)ú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  Ú)SequenceLiteralValue.py__simple_getitem__b  sz   € ä�eœU×#Ñ#Ü˜T˜FÓ#Ð#ä'¬	´8¼ZÕHØ×,Ñ,Ó.¨uÑ5�÷ Ià�s‹{˜dŸi™i¨;Ó6Ü Ð Ø×)Ñ)×4Ñ4°TÓ:Ð:÷	 IÕHús   »BÂ
Bc           	   #   ó   #   • U R                  5        HV  nUS:X  d  UR                  S:X  a%  [        [        U R                  SSS5      5      v •  M>  [        U R                  U5      v •  MX     [        U R                  U 5       Sh  v•N   g N7f)út
While values returns the possible values for any array field, this
function returns the value for a certain index.
r™   rV  N)rX  r�   r   ÚSlicer³   r   r   )r%   r&   rY  s      r'   r    ÚSequenceLiteralValue.py__iter__m  su   é € ð
 ×)Ñ)Ö+ˆDØ�s‹{˜dŸi™i¨;Ó6ô %¤U¨4×+AÑ+AÀ4ÈÈtÓ%TÓUÔUä# D×$:Ñ$:¸DÓAÔAñ ,ô )¨×)?Ñ)?ÀÓF×FÓFùs   ‚BBÂBÂBc                 ó4   • [        U R                  5       5      $ r#   )ÚlenrX  r0   s    r'   Ú	py__len__ÚSequenceLiteralValue.py__len__{  s   € ä�4×(Ñ(Ó*Ó+Ð+r*   c                 óÔ  • U R                   R                  nU R                   R                  U R                  ;   a  US S S2   $ US   nUS;   a  / $ UR                  S:X  a5  UR                  S S S2    Vs/ s H  nUR                  S:w  d  M  UPM     sn$ UR                  S:X  a«  / n[	        UR                  5      nU HŒ  nUS:X  a  [        U5        [        US 5        M"  [        US 5      nUb  US:X  a%  UR                  S:X  a  MI  UR                  U5        M\  US	:X  d   eUR                  U[        U5      45        [        US 5        MŽ     U$ UR                  S:X  a  / $ U/$ s  snf )
Nrœ   r—   )Ú]Ú}Ú)Útestlist_compÚ	star_exprÚdictorsetmakerz**Ú,r™   )rª   r¤   r�   rL  ÚiterÚnextÚappend)r%   rô   Ú
array_noder©   ÚkvÚiteratorr?  Úops           r'   rX  Ú%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   Á4E%ÂE%c                 óT   • SU R                   R                  < SU R                  < S3$ r�   )r�   r5   rª   r0   s    r'   r‘   ÚSequenceLiteralValue.__repr__¬  s   � Ø#Ÿ~™~×6Ô6¸¿	¼	ÐBÐBr*   )r³   rx   rª   r#   )r5   r6   r7   r8   rL  rM  r~   rä   r  r    ra  rX  r‘   r;   r”   r•   s   @r'   rG  rG  L  sE   ø† ØC€KØØØñ€Gõ	Lõ'ò
	;ôGò,ò+$÷ZCð Cr*   rG  c                   óx   • \ rS rSrSrS rS rSS jr\" S5      S 5       r	\" S	5      S
 5       r
S rS rS rSrg)ÚDictLiteralValuei°  r½   c                 óF   • [         R                  X5        X l        X0l        g r#   )rç   r~   r³   rª   )r%   r!   r¢   rª   s       r'   r~   ÚDictLiteralValue.__init__³  s   € ô 	×Ñ˜$Ô0Ø!1ÔØ�	r*   c                 ót  • [         R                  " U R                  U5      nU R                  5        Hv  u  p4U R                  R                  U5       HR  nUR                  US5       H9  nUR                  5       (       d  M  U R                  R                  U5      s  s  s  $    MT     Mx     [        SU -  5      e)rU  z==zNo key found in dictionary %s.)	r   Úcreate_simple_objectr!   rX  r³   r¿   Úexecute_operationr:   r   )r%   r  Úcompiled_value_indexr?  r©   r(  Úkey_vs          r'   r  Ú%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              #   ó°   #   • [         nU R                  5        H"  u  p4X R                  R                  U5      -  nM$     U H  n[	        U5      v •  M     g7f)r\  N)r   rX  r³   r¿   r   )r%   r&   rÌ   r(  Ú_s        r'   r    ÚDictLiteralValue.py__iter__Ä  sQ   é € ô ˆØ×)Ñ)Ö+‰DˆAØ×+Ñ+×6Ñ6°qÓ9Ñ9ŠEñ ,ó ˆAÜ! %Ó(Ô(ò ùs   ‚AAr$  c                 óv   • [        U R                  5       5      n[        [        U R                  U/5      /5      $ r#   r6  r8  s      r'   r9  Ú DictLiteralValue._imitate_valuesÒ  r;  r*   r<  c                 ó$  • U R                  5        VVs/ s HN  u  p#[        [        U R                  [	        U R
                  U5      [	        U R
                  U5      45      5      PMP     nnn[        [        U R                  U5      /5      $ s  snnf r#   )rX  r   r>  r!   r   r³   r   r7  )r%   rR   rž   rŸ   r@  s        r'   rA  ÚDictLiteralValue._imitate_items×  s“   € ð ,0×+@Ñ+@Ô+Bô
ò
 ,CÑ'�8ô	 œ9Ø×$Ñ$Ü˜t×5Ñ5°xÓ@Ü˜t×5Ñ5°zÓBðDóö ñ ,Cð 	ñ 
ô œ $×"6Ñ"6¸ÓDÐEÓFÐFùó
s   ”ABc              #   óö   #   • U R                  5        Ha  u  pU R                  R                  U5       H=  n[        U5      (       d  M  UR	                  5       [        U R                  U5      4v •  M?     Mc     g7f)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)rX  r³   r¿   r
   r:   r   )r%   rž   r©   r?  s       r'   rD  Ú DictLiteralValue.exact_key_itemsã  sc   é € ð
  $×4Ñ4Ö6‰OˆHØ×-Ñ-×8Ñ8¸ÖB�Ü˜S—>“>Ø×,Ñ,Ó.´¸d×>TÑ>TÐV[Ó0\Ð\Ô\ó Cò  7ùs   ‚AA9Á1A9c                 ó`   ^ • [         R                  " U 4S jT R                  5        5       5      $ )Nc              3   ó^   >#   • U  H"  u  pTR                   R                  U5      v •  M$     g 7fr#   ©r³   r¿   ©r\   r(  Úvr%   s      €r'   r^   Ú0DictLiteralValue._dict_values.<locals>.<genexpr>î  ó.   øé € ð "
â/‘�ð ×"Ñ"×-Ñ-¨a×0Ð0Ú/ùó   ƒ*-©r   rc   rX  r0   s   `r'   rü   ÚDictLiteralValue._dict_valuesí  ó,   ø€ Ü×!Ò!ô "
à×-Ñ-Ô/ó"
ó 
ð 	
r*   c                 ó`   ^ • [         R                  " U 4S jT R                  5        5       5      $ )Nc              3   ó^   >#   • U  H"  u  pTR                   R                  U5      v •  M$     g 7fr#   rŠ  r‹  s      €r'   r^   Ú.DictLiteralValue._dict_keys.<locals>.<genexpr>ô  rŽ  r�  r�  r0   s   `r'   r  ÚDictLiteralValue._dict_keysó  r’  r*   )r³   rª   r#   )r5   r6   r7   r8   rx   r~   r  r    r   r9  rA  rD  rü   r  r;   r4   r*   r'   rv  rv  °  s]   † Ø€JòòMô)ñ �HÓñHó ðHñ �GÓñ	Gó ð	Gò]ò
õ
r*   rv  c                   óD   ^ • \ rS rSrU 4S jrS rSS jrS rS rSr	U =r
$ )	Ú_FakeSequenceiú  c                 ó0   >• [         TU ]  U5        X l        g)z'
type should be one of "tuple", "list"
N)r}   r~   Ú_lazy_value_list)r%   r!   Úlazy_value_listr�   s      €r'   r~   Ú_FakeSequence.__init__û  s   ø€ ô 	‰Ñ˜Ô)Ø /Õr*   c                 óü   • [        U[        5      (       a  [        U /5      $ [        [        [
        5         U R                  U   nS S S 5        UR                  5       $ ! , (       d  f       WR                  5       $ = fr#   )r  r  r   r   rÄ   r  rš  rZ   ©r%   r  r]   s      r'   r  Ú"_FakeSequence.py__simple_getitem__  sb   € Ü�eœU×#Ñ#Ü˜T˜FÓ#Ð#ä#¤J´	Õ:Ø×.Ñ.¨uÑ5ˆJ÷ ;à×ÑÓ!Ð!÷ ;Ô:à×ÑÓ!Ð!ús   ¶AÁ
A;c                 ó   • U R                   $ r#   ©rš  r$   s     r'   r    Ú_FakeSequence.py__iter__
  s   € Ø×$Ñ$Ð$r*   c                 ó>   • [        [        U R                  5      5      $ r#   )Úboolr`  rš  r0   s    r'   rL   Ú_FakeSequence.py__bool__  s   € Ü”C˜×-Ñ-Ó.Ó/Ð/r*   c                 óR   • S[        U 5      R                  < SU R                  < S3$ r�   )r�   r5   rš  r0   s    r'   r‘   Ú_FakeSequence.__repr__  s   � Ü# D›z×2Ô2°D×4IÔ4IÐJÐJr*   r¡  r#   )r5   r6   r7   r8   r~   r  r    rL   r‘   r;   r”   r•   s   @r'   r˜  r˜  ú  s#   ø† õ0ò"ô%ò0÷Kð Kr*   r˜  c                   ó   • \ rS rSrSrSrg)r>  i  rÓ   r4   Nr  r4   r*   r'   r>  r>    ó   † ØƒJr*   r>  c                   ó   • \ rS rSrSrSrg)r7  i  rÓ   r4   Nr  r4   r*   r'   r7  r7    r©  r*   r7  c                   óp   ^ • \ rS rSrSrU 4S jrSS jrS r\" S5      S 5       r	S r
S	 rS
 rS rSrU =r$ )ÚFakeDicti  r½   c                 ó0   >• [         TU ]  U5        X l        g r#   )r}   r~   Ú_dct)r%   r!   rÍ   r�   s      €r'   r~   ÚFakeDict.__init__  s   ø€ Ü‰Ñ˜Ô)Ø�	r*   c              #   óŠ   #   • U R                    H/  n[        [        R                  " U R                  U5      5      v •  M1     g 7fr#   )r®  r   r   rz  r!   )r%   r&   r?  s      r'   r    ÚFakeDict.py__iter__#  s2   é € Ø—9”9ˆCÜ ¤×!>Ò!>¸t×?SÑ?SÐUXÓ!YÓZÔZò ùs   ‚AAc                 óº   • [        [        [        5         U R                  U   nS S S 5        UR	                  5       $ ! , (       d  f       WR	                  5       $ = fr#   )r   rW  r  r®  rZ   rž  s      r'   r  ÚFakeDict.py__simple_getitem__'  sF   € Ü#¤H¬iÕ8ØŸ™ 5Ñ)ˆJ÷ 9à×ÑÓ!Ð!÷ 9Ô8à×ÑÓ!Ð!ús	   •=½
Ar$  c           	      ór   • [        [        U R                  [        U R	                  5       5      /5      /5      $ r#   )r   r>  r!   r   rü   rQ   s     r'   Ú_valuesÚFakeDict._values,  s8   € äœØ× Ñ Ü˜T×.Ñ.Ó0Ó1Ð2ó
ð ó ð 	r*   c                 ól   • [         R                  " S U R                  R                  5        5       5      $ )Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr#   rY   r[   s     r'   r^   Ú(FakeDict._dict_values.<locals>.<genexpr>4  s   é € Ð!ZÒGY¸×"2Ñ"2×"4Ð"4ÒGYùra   )r   rc   r®  r$  r0   s    r'   rü   ÚFakeDict._dict_values3  s&   € Ü×!Ò!Ñ!ZÀtÇyÁy×GWÑGWÔGYÓ!ZÓZÐZr*   c                 óX   • [         R                  " S U R                  5        5       5      $ )Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr#   rY   r[   s     r'   r^   Ú&FakeDict._dict_keys.<locals>.<genexpr>7  r`   ra   rb   r0   s    r'   r  ÚFakeDict._dict_keys6  ó    € Ü×!Ò!Ñ!YÀtÇÁÔGXÓ!YÓYÐYr*   c                 ó6   • U R                   R                  5       $ r#   )r®  r<  r0   s    r'   rD  ÚFakeDict.exact_key_items9  s   € Ø�y‰y�‰Ó Ð r*   c                 óT   • SU R                   R                  < SU R                  < S3$ )NrŽ   z: r�   )r�   r5   r®  r0   s    r'   r‘   ÚFakeDict.__repr__<  s   � Ø!Ÿ^™^×4Ô4°d·i´iÐ@Ð@r*   )r®  r#   )r5   r6   r7   r8   rx   r~   r    r  r   rµ  rü   r  rD  r‘   r;   r”   r•   s   @r'   r¬  r¬    sN   ø† Ø€Jõô[ò"ñ
 �HÓñó ðò[òZò!÷Að Ar*   r¬  c                   ó8   ^ • \ rS rSrU 4S jrSS jrS rSrU =r$ )ÚMergedArrayi@  c                 óX   >• [         TU ]  U5        US   R                  U l        X l        g )Néÿÿÿÿ)r}   r~   rx   Ú_arrays)r%   r!   Úarraysr�   s      €r'   r~   ÚMergedArray.__init__A  s&   ø€ Ü‰Ñ˜Ô)Ø  ™*×/Ñ/ˆŒØ�r*   c              #   óf   #   • U R                    H  nUR                  5        S h  v•N   M     g  N	7fr#   )rÈ  r    )r%   r&   Úarrays      r'   r    ÚMergedArray.py__iter__F  s(   é € Ø—\”\ˆEØ×'Ñ'Ó)×)Ò)ò "Ù)ùs   ‚#1¥/¦
1c                 óX   • [         R                  " S U R                  5        5       5      $ )Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr#   rY   r[   s     r'   r^   Ú3MergedArray.py__simple_getitem__.<locals>.<genexpr>K  r`   ra   rb   )r%   r  s     r'   r  Ú MergedArray.py__simple_getitem__J  r¿  r*   )rÈ  rx   r#   )	r5   r6   r7   r8   r~   r    r  r;   r”   r•   s   @r'   rÅ  rÅ  @  s   ø† õô
*÷Zð Zr*   rÅ  c           	      óø  • UR                   S:X  a  UR                  U0$ UR                   S:X  a,  UR                  S   S;   a  [        XUR                  S   5      $ UR                   S;   a¬  0 n[	        UR                  SSS2   5      nSnUR                  [        X5      5       H=  nUS-  n [        U5      nUR                  [        XR                  5       U5      5        M?     [        US5      nU(       a  Ub  [        R                  " U SUSU-  S9  U$ UR                   S:X  d  UR                   S:X  a  0 $ UR                   S:X  a  0 $ [        e! [         a    [        R                  " U S	WS
U-  S9   MÔ  f = f)z?
Unpacking tuple assignments in for statements and expr_stmts.
rk   rª   r   )r    r¡   r—   )rI  rg  rÊ   rH  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_exprrh  )r�   r©   r¤   rÁ   rk  r…   r   rl  ÚupdaterZ   ÚStopIterationr   ÚaddÚNotImplementedError)	rÎ   rÌ   rÊ   rÍ   ÚpartsÚnr]   ÚpartÚ	has_partss	            r'   rÁ   rÁ   N  sw  € ð ‡}�}˜ÓØ—‘ Ð&Ð&Ø	�‰˜&Ó	  X×%6Ñ%6°qÑ%9¸ZÓ%GÜ# G°H×4EÑ4EÀaÑ4HÓIÐIØ	�‰ð 1ó 
1àˆÜ�X×&Ñ&¡s¨ sÑ+Ó,ˆØˆØŸ-™-Ô(:¸7Ó(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Å$E9Å8E9c                   ó,   • \ rS rSrS rS r\4S jrSrg)r]  it  c                 óV   • UR                   U l         Xl        X l        X0l        X@l        g r#   )r!   Ú_contextÚ_startÚ_stopÚ_step)r%   Úpython_contextÚstartÚstopÚsteps        r'   r~   ÚSlice.__init__u  s$   € Ø-×=Ñ=ˆÔØ&ŒàŒØŒ
Ø�
r*   c                 ó€   • [         R                  " U R                  R                  S5      nUR	                  5       u  nU$ )Nr  )r   r/   rà  r!   Úexecute_with_values)r%   r©   Úslice_values      r'   rC   ÚSlice._get_wrapped_value}  s4   € Ü×*Ò*¨4¯=©=×+HÑ+HÈ'ÓRˆØ×0Ñ0Ó2‰ˆØÐr*   c                 óÆ   ^ • U 4S jn [        U" T R                  5      U" T R                  5      U" T R                  5      5      $ ! [         a    [        SSS5      s $ f = f)zM
Imitate CompiledValue.obj behavior and return a ``builtin.slice()``
object.
c                 óŠ   >• U c  g TR                   R                  U 5      n[        U5      S:w  a  [        eUu  n[	        U5      $ )Nr—   )rà  r¿   r`  rÄ   r	   )ÚelementÚresultr©   r%   s      €r'   ÚgetÚ!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'   r:   ÚSlice.get_safe_value‚  sS   ø€ õ
	*ð	+Ü™˜TŸ[™[Ó)©3¨t¯z©z«?¹CÀÇ
Á
»OÓLÐLøÜó 	+Ü˜˜t TÓ*Ò*ð	+ús   ‰<A ÁA ÁA )rà  rá  rã  râ  r!   N)	r5   r6   r7   r8   r~   rC   r   r:   r;   r4   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   r=   ri   r¯   r±   rÝ   rç   r  r¨   r¦   r§   r  r¥   rG  rv  r˜  r>  r7  r¬  rÅ  rÁ   r]  r4   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*   