ó
    Ð]j’S  ã                   óú  • S r SSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
J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  SSKJr  SSKJr  SSKJr  SSK J!r!  SSK"J#r#  SSK$J%r%J&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      r. " S# S$\5      r/S%S&S'S(S&S).r0S* r1S+ r2S, r3S- r4\3\" 5       S. 5       5       r5g)/z$
Imitate the parser representation.
é    N)Úpartial)Ú	Parameter)ÚPath)ÚOptional)Údebug)Úto_list)Úmemoize_method)ÚAbstractFilter)ÚAbstractNameDefinitionÚValueNameMixinÚParamNameInterface)ÚValueÚValueSetÚ	NO_VALUES)ÚLazyKnownValue)Ú	_sentinel)Úinference_state_function_cache)Úreraise_getitem_errors)ÚBuiltinSignature)ÚCompiledContextÚCompiledModuleContextc                   ó.   • \ rS rSrSrSS jrS rS rSrg)	ÚCheckAttributeé   zARaises :exc:`AttributeError` if the attribute X is not available.Nc                 ó   • Xl         g ©N)Ú
check_name)Úselfr   s     ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/jedi/inference/compiled/value.pyÚ__init__ÚCheckAttribute.__init__   s   € à$�ó    c                 óT   • Xl         U R                  c  UR                  SS  U l        U $ )Né   )Úfuncr   Ú__name__)r   r%   s     r   Ú__call__ÚCheckAttribute.__call__   s(   € ØŒ	Ø�?‰?Ñ"Ø"Ÿm™m¨A¨BÐ/ˆDŒOØˆr"   c                 ó‚   • Uc  U $ UR                   R                  U R                  5        [        U R                  U5      $ r   )Úaccess_handleÚgetattr_pathsr   r   r%   )r   ÚinstanceÚowners      r   Ú__get__ÚCheckAttribute.__get__%   s8   € ØÑØˆKð 	×Ñ×,Ñ,¨T¯_©_Ô=Ü�t—y‘y (Ó+Ð+r"   )r   r%   r   )	r&   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    r'   r.   Ú__static_attributes__© r"   r   r   r      s   † ÙKô%òõ,r"   r   c                   ó¦  ^ • \ rS rSrS'U 4S jjrU 4S jr\" 5       S 5       r\" 5       S 5       r\" 5       S 5       r	S r
S rS	 rS
 rS rS rS rS rS r\S 5       rS rS r\S 5       r\S 5       rS(S jr\S 5       rU 4S jrU 4S jrS'U 4S jjrS r \S 5       r!S r"\#4S jr$S r%U 4S jr&S  r'S! r(S" r)\S# 5       r*S$ r+S)S% jr,S&r-U =r.$ )*ÚCompiledValueé.   c                 ó0   >• [         TU ]  X5        X l        g r   )Úsuperr    r*   )r   Úinference_stater*   Úparent_contextÚ	__class__s       €r   r    ÚCompiledValue.__init__/   s   ø€ Ü‰Ñ˜Ô9Ø*Õr"   c                 óà  >• U R                   R                  5       nUb/  [        U R                  U5      R	                  UR
                  5      $  U R                   R                  S5        U R                   R                  5       (       a.  SSKJ	n  [        U" U R                  U R                  X5      /5      $ [        U R                  U5      5      $ ! [         a    [        TU ]=  U5      s $ f = f)Nr'   r   )ÚCompiledInstance)r*   Úget_return_annotationÚcreate_from_access_pathr;   Úexecute_annotationÚcontextr+   Úis_classÚjedi.inference.valuer@   r   r<   Ú_execute_functionÚAttributeErrorr:   Ú
py__call__)r   Ú	argumentsÚreturn_annotationr@   r=   s       €r   rI   ÚCompiledValue.py__call__3   sâ   ø€ Ø ×.Ñ.×DÑDÓFÐØÑ(Ü*Ø×$Ñ$Ø!ó÷ !Ñ  ×!2Ñ!2Ó3ð4ð
	CØ×Ñ×,Ñ,¨ZÔ8ð ×!Ñ!×*Ñ*×,Ñ,ÝAÜÙ$ T×%9Ñ%9¸4×;NÑ;NÐPTÓ`ð!ó ð ô   × 6Ñ 6°yÓ AÓBÐBøô ó 	1Ü‘7Ñ% iÓ0Ò0ð	1ús   ÁC ÃC-Ã,C-c                 ó^   • [        U R                  U R                  R                  5       5      $ r   )rB   r;   r*   Úpy__class__©r   s    r   rN   ÚCompiledValue.py__class__H   s$   € ä& t×';Ñ';¸T×=OÑ=O×=[Ñ=[Ó=]Ó^Ð^r"   c                 óf   ^ • T 4[        U 4S jT R                  R                  5        5       5      -   $ )Nc              3   óP   >#   • U  H  n[        TR                  U5      v •  M     g 7fr   ©rB   r;   ©Ú.0Úaccessr   s     €r   Ú	<genexpr>Ú*CompiledValue.py__mro__.<locals>.<genexpr>N   s(   øé € ð 
â@�ô $ D×$8Ñ$8¸&×AÐAÚ@ùó   ƒ#&)Útupler*   Úpy__mro__accessesrO   s   `r   Ú	py__mro__ÚCompiledValue.py__mro__L   s5   ø€ àˆwœô 
à×,Ñ,×>Ñ>Ô@ó
ó 
ñ 
ð 	
r"   c                 ó^   ^ • [        U 4S jT R                  R                  5        5       5      $ )Nc              3   óP   >#   • U  H  n[        TR                  U5      v •  M     g 7fr   rS   rT   s     €r   rW   Ú,CompiledValue.py__bases__.<locals>.<genexpr>U   s(   øé € ð 
â:�ô $ D×$8Ñ$8¸&×AÐAÚ:ùrY   )rZ   r*   Úpy__bases__rO   s   `r   ra   ÚCompiledValue.py__bases__S   s,   ø€ äô 
à×,Ñ,×8Ñ8Ô:ó
ó 
ð 	
r"   c                 ó6   • U R                   R                  5       $ r   )r*   Úget_qualified_namesrO   s    r   rd   Ú!CompiledValue.get_qualified_namesZ   s   € Ø×!Ñ!×5Ñ5Ó7Ð7r"   c                 ó6   • U R                   R                  5       $ r   )r*   Ú
py__bool__rO   s    r   rg   ÚCompiledValue.py__bool__]   ó   € Ø×!Ñ!×,Ñ,Ó.Ð.r"   c                 ó6   • U R                   R                  5       $ r   )r*   rE   rO   s    r   rE   ÚCompiledValue.is_class`   s   € Ø×!Ñ!×*Ñ*Ó,Ð,r"   c                 ó6   • U R                   R                  5       $ r   )r*   Úis_functionrO   s    r   rm   ÚCompiledValue.is_functionc   ó   € Ø×!Ñ!×-Ñ-Ó/Ð/r"   c                 ó6   • U R                   R                  5       $ r   )r*   Ú	is_modulerO   s    r   rq   ÚCompiledValue.is_modulef   ó   € Ø×!Ñ!×+Ñ+Ó-Ð-r"   c                 ó   • g)NTr5   rO   s    r   Úis_compiledÚCompiledValue.is_compiledi   s   € Ør"   c                 ó   • g)NFr5   rO   s    r   Úis_stubÚCompiledValue.is_stubl   s   € Ør"   c                 ó6   • U R                   R                  5       $ r   )r*   Úis_instancerO   s    r   r{   ÚCompiledValue.is_instanceo   ro   r"   c                 ó6   • U R                   R                  5       $ r   )r*   Ú	py__doc__rO   s    r   r~   ÚCompiledValue.py__doc__r   rs   r"   c              #   ó¼  #   •  U R                   R                  5       nU H  n[        X5      v •  M     g ! [         aš    U R	                  5       u  p4U(       d  / nOUR                  S5      nU R                   R                  5       (       a  UR                  SS5        U H3  nUR                  5       R                  S5      u  pxn	[        XU	5      v •  M5      g f = f7f)NÚ,r   r   Ú=)r*   Úget_signature_paramsÚSignatureParamNameÚ
ValueErrorÚ_parse_function_docÚsplitÚismethoddescriptorÚinsertÚstripÚ	partitionÚUnresolvableParamName)
r   Úsignature_paramsÚsignature_paramÚ
params_strÚretÚtokensÚpÚnameÚ_Údefaults
             r   Úget_param_namesÚCompiledValue.get_param_namesu   sÆ   é € ð	@Ø#×1Ñ1×FÑFÓHÐó $4�Ü(¨Ó?Ô?ò $4øô ó 
	AØ"×6Ñ6Ó8‰OˆJÞØ‘à#×)Ñ)¨#Ó.�Ø×!Ñ!×4Ñ4×6Ñ6Ø—‘˜a Ô(Û�Ø#$§7¡7£9×#6Ñ#6°sÓ#;Ñ �˜Ü+¨D¸Ó@Ô@ó ð
	Aüs&   ‚C„5 žCµB!CÃCÃCÃCc                 ó>   • U R                  5       u  p[        X5      /$ r   )r†   r   )r   r”   Úreturn_strings      r   Úget_signaturesÚCompiledValue.get_signaturesˆ   s!   € Ø×3Ñ3Ó5ÑˆÜ  Ó5Ð6Ð6r"   c                 óp   • SU R                   R                  < SU R                  R                  5       < S3$ ©NÚ<ú: Ú>)r=   r&   r*   Úget_reprrO   s    r   Ú__repr__ÚCompiledValue.__repr__Œ   s&   � Ø!Ÿ^™^×4Ô4°d×6HÑ6H×6QÑ6QÖ6SÐTÐTr"   c                 ó@   • U R                  5       nUc  g[        U5      $ )N)Ú r¥   )r~   r†   )r   Údocs     r   r†   Ú!CompiledValue._parse_function_doc�   s!   € à�n‰nÓˆØ‰;Øä" 3Ó'Ð'r"   c                 ó6   • U R                   R                  5       $ r   )r*   Úget_api_typerO   s    r   Úapi_typeÚCompiledValue.api_type—   s   € à×!Ñ!×.Ñ.Ó0Ð0r"   c              #   ó2   #   • U R                  U5      v •  g 7fr   )Ú_ensure_one_filter)r   r{   Úorigin_scopes      r   Úget_filtersÚCompiledValue.get_filters›   s   é € Ø×%Ñ% kÓ2Ó2ùs   ‚c                 ó.   • [        U R                  X5      $ r   )ÚCompiledValueFilterr;   )r   r{   s     r   r­   Ú CompiledValue._ensure_one_filterž   s   € ä" 4×#7Ñ#7¸ÓKÐKr"   c                 óˆ  >• [        [        [        [        5          U R                  R                  UU R                  R                  (       + S9n S S S 5        Wc  [        TU ]  U5      $ [        [        U R                  U5      /5      $ ! [         a    [        TU ]  U5      s sS S S 5        $ f = f! , (       d  f       Nh= f©N)Úsafe)r   Ú
IndexErrorÚKeyErrorÚ	TypeErrorr*   Úpy__simple_getitem__r;   Úallow_unsafe_executionsrH   r:   r   rB   )r   ÚindexrV   r=   s      €r   rº   Ú"CompiledValue.py__simple_getitem__¢   s²   ø€ Ü#¤J´¼)ÕDð;Ø×+Ñ+×@Ñ@ØØ!×1Ñ1×IÑIÔIð Að ‘÷ Eð ‰>Ü‘7Ñ/°Ó6Ð6äÔ0°×1EÑ1EÀvÓNÐOÓPÐPøô "ó ;Ü‘wÑ3°EÓ:Ñ:÷ EÑDð;ú÷ EÕDús(   ›B3�3BÂB0Â$B3Â/B0Â0B3Â3
Cc                 óˆ   >^ • T R                   R                  5       nUc  [        TT ]  X5      $ [	        U 4S jU 5       5      $ )Nc              3   óP   >#   • U  H  n[        TR                  U5      v •  M     g 7fr   rS   rT   s     €r   rW   Ú.CompiledValue.py__getitem__.<locals>.<genexpr>¶   s(   øé € ð 
â*�ô $ D×$8Ñ$8¸&×AÐAÚ*ùrY   )r*   Úpy__getitem__all_valuesr:   Úpy__getitem__r   )r   Úindex_value_setÚcontextualized_nodeÚall_access_pathsr=   s   `   €r   rÂ   ÚCompiledValue.py__getitem__°   sJ   ù€ Ø×-Ñ-×EÑEÓGÐØÑ#ô ‘7Ñ(¨ÓNÐNÜô 
á*ó
ó 
ð 	
r"   c              #   ó  >#   • U R                   R                  5       (       d  [        TU ]  U5       S h  v•N   U R                   R	                  5       nUc  g U H$  n[        [        U R                  U5      5      v •  M&     g  NM7fr   )r*   Úhas_iterr:   Ú
py__iter__Úpy__iter__listr   rB   r;   )r   rÄ   Úaccess_path_listrV   r=   s       €r   rÉ   ÚCompiledValue.py__iter__»   su   øé € Ø×!Ñ!×*Ñ*×,Ñ,Ü‘wÑ)Ð*=Ó>×>Ð>à×-Ñ-×<Ñ<Ó>ÐØÑ#àã&ˆFÜ Ô!8¸×9MÑ9MÈvÓ!VÓWÔWò 'ñ ?ùs   ƒ2BµB¶ABc                 ó6   • U R                   R                  5       $ r   )r*   Ú
py__name__rO   s    r   rÎ   ÚCompiledValue.py__name__Ç   ri   r"   c                 ór   • U R                  5       nUc  U R                  R                  5       n[        X5      $ r   )rÎ   r*   r¡   ÚCompiledValueName©r   r“   s     r   r“   ÚCompiledValue.nameÊ   s2   € à�‰Ó ˆØ‰<Ø×%Ñ%×.Ñ.Ó0ˆDÜ  Ó,Ð,r"   c              #   ó¾  #   • SSK Jn  SSKJn  U R                  S:w  a  g U R                  5       S   R                  5        Hi  n U R                  R                  R                  R                  U5        U" U R                  U5      nU R                  R                  XQ5       S h  v•N   Mk     UR                  U 5       S h  v•N   g  N"! [         a     M–  f = f N7f)Nr   )Ú
docstrings©Úbuiltin_from_nameÚfunctioné   )Újedi.inferencerÕ   Újedi.inference.compiledr×   rª   r†   r‡   r;   Úbuiltins_moduler*   r+   ÚexecuterH   Úinfer_return_types)r   ÚparamsrÕ   r×   r“   Úbltn_objs         r   rG   ÚCompiledValue._execute_functionÑ   sÇ   é € Ý-Ý=Ø�=‰=˜JÓ&Øà×,Ñ,Ó.¨qÑ1×7Ñ7Ö9ˆDðJð ×$Ñ$×4Ñ4×BÑB×PÑPÐQUÔVñ -¨T×-AÑ-AÀ4ÓH�Ø×/Ñ/×7Ñ7¸ÓI×IÒIñ :ð ×0Ñ0°Ó6×6Ñ6ñ Jøô	 "ó Úðúñ
 	7ùsB   ‚ACÁ/C
Á41CÂ%CÂ&CÃCÃCÃ

CÃCÃCÃCc                 ór   •  U R                   R                  5       $ ! [         a    U[        :X  a  e Us $ f = fr   )r*   Úget_safe_valuer…   r   )r   r•   s     r   rã   ÚCompiledValue.get_safe_valueã   s;   € ð	Ø×%Ñ%×4Ñ4Ó6Ð6øÜó 	Øœ)Ó#ØØŠNð	ús   ‚ œ6µ6c           	      ó¸   •  [        [        U R                  U R                  R	                  UR                  U5      5      /5      $ ! [
         a	    [        s $ f = fr   )r   rB   r;   r*   Úexecute_operationr¹   r   )r   ÚotherÚoperators      r   ræ   ÚCompiledValue.execute_operationë   s]   € ð	ÜÔ4Ø×$Ñ$Ø×"Ñ"×4Ñ4°U×5HÑ5HÈ(ÓSóð ó ð øô ó 	ÜÒð	ús   ‚AA ÁAÁAc           	      ó8  >^• U R                   R                  5       S:X  a  [        U /5      $ U R                   R                  5       u  p#U Vs/ s H#  n[        [	        U R
                  U5      /5      PM%     nnUS:X  a   [        R                  " U4S jU 5       5      $ U(       a]  [        U R
                  R                  R                  U5       Vs/ s H  nUR                  U5      PM     sn5      R                  T5      $ [        TU ])  T5      $ s  snf s  snf )NÚNoneÚUnionc              3   óF   >#   • U  H  nUR                  T5      v •  M     g 7fr   )rC   )rU   ÚargrD   s     €r   rW   Ú3CompiledValue.execute_annotation.<locals>.<genexpr>ÿ   s&   øé € ð &&â$�Cð ×&Ñ& w×/Ð/Ú$ùs   ƒ!)r*   r¡   r   Úget_annotation_name_and_argsrB   r;   Ú	from_setsÚtyping_moduleÚpy__getattribute__Úwith_genericsrC   r:   )r   rD   r“   ÚargsÚpathrJ   Úvr=   s    `     €r   rC   Ú CompiledValue.execute_annotationô   s  ù€ Ø×Ñ×&Ñ&Ó(¨FÓ2ä˜T˜FÓ#Ð#à×'Ñ'×DÑDÓF‰
ˆñ ó
â�ô Ô-¨d×.BÑ.BÀDÓIÐJÖKÙð 	ð 
ð �7‹?Ü×%Ò%ô &&á$ó&&ó &ð &ö ô à×-Ñ-×;Ñ;×NÑNÈtÔTóâT�Að —‘ 	Ö*ÙTñó ÷ "Ñ! 'Ó*ð+ô ‰wÑ)¨'Ó2Ð2ùò!
ùòs   Á*DÃDc                 ó^   • [        U R                  U R                  R                  5       5      $ r   )rB   r;   r*   ÚnegaterO   s    r   rú   ÚCompiledValue.negate  s$   € Ü& t×';Ñ';¸T×=OÑ=O×=VÑ=VÓ=XÓYÐYr"   c                 ó   • [         $ r   ©r   rO   s    r   Úget_metaclassesÚCompiledValue.get_metaclasses  ó   € ÜÐr"   c                 ó   • [        U 5      $ r   )r   rO   s    r   Ú_as_contextÚCompiledValue._as_context  s   € Ü˜tÓ$Ð$r"   c                 ó6   • U R                   R                  5       $ r   )r*   Úget_array_typerO   s    r   Ú
array_typeÚCompiledValue.array_type  s   € à×!Ñ!×0Ñ0Ó2Ð2r"   c                 óŠ   • U R                   R                  5        Vs/ s H  n[        U R                  U5      PM     sn$ s  snf r   )r*   Úget_key_pathsrB   r;   )r   Úks     r   Úget_key_valuesÚCompiledValue.get_key_values  sE   € ð ×'Ñ'×5Ñ5Ô7ó
â7�ô $ D×$8Ñ$8¸!Ö<Ù7ñ
ð 	
ùò 
s   � A c                 óB   • U R                   R                  5       S;   a  gg )N)rë   z<class 'NoneType'>rë   )r*   r¡   )r   Úadd_class_infos     r   Úget_type_hintÚCompiledValue.get_type_hint  s    € Ø×Ñ×&Ñ&Ó(Ð,JÓJØØr"   )r*   r   )FN)T)/r&   r0   r1   r2   r    rI   r   rN   r\   ra   rd   rg   rE   rm   rq   ru   rx   r{   r~   r   r–   rš   r¢   r	   r†   Úpropertyrª   r¯   r­   rº   rÂ   rÉ   rÎ   r“   rG   r   rã   ræ   rC   rú   rþ   r  r  r  r  r4   Ú__classcell__)r=   s   @r   r7   r7   .   s\  ø† ÷+õCñ* Óñ_ó ð_ñ Óñ
ó ð
ñ Óñ
ó ð
ò8ò/ò-ò0ò.òòò0ò.ð ñ@ó ð@ò$7òUð ñ(ó ð(ð ñ1ó ð1ô3ð ñLó ðLõQõ	
÷
Xò/ð ñ-ó ð-ò7ð$ &/ô òõ3ò0Zòò%ð ñ3ó ð3ò
÷ò r"   r7   c                   óN   • \ rS rSrSrS rS rS r\S 5       r	S\
\   4S jrS	rg)
ÚCompiledModulei%  Nc                 ó   • [        U 5      $ r   )r   rO   s    r   r  ÚCompiledModule._as_context(  s   € Ü$ TÓ*Ð*r"   c                 ó6   • U R                   R                  5       $ r   )r*   Ú
py__path__rO   s    r   r  ÚCompiledModule.py__path__+  ri   r"   c                 ó&   • U R                  5       S L$ r   )r  rO   s    r   Ú
is_packageÚCompiledModule.is_package.  s   € Ø�‰Ó ¨Ð,Ð,r"   c                 ó^   • U R                  5       nUc  g[        UR                  S5      5      $ )Nr5   Ú.)rÎ   rZ   r‡   rÒ   s     r   Ústring_namesÚCompiledModule.string_names1  s+   € ð �‰Ó ˆØ‰<ØÜ�T—Z‘Z “_Ó%Ð%r"   Úreturnc                 ó6   • U R                   R                  5       $ r   )r*   Ú
py__file__rO   s    r   r#  ÚCompiledModule.py__file__9  ri   r"   r5   )r&   r0   r1   r2   Úfile_ior  r  r  r  r  r   r   r#  r4   r5   r"   r   r  r  %  s:   † Ø€Gò+ò/ò-ð ñ&ó ð&ð/˜H T™N÷ /r"   r  c                   óX   • \ rS rSrS rS rS rS rS r\	S 5       r
S r\S	 5       rS
rg)ÚCompiledNamei=  c                 ó^   • Xl         UR                  5       U l        X l        X0l        X@l        g r   )Ú_inference_stateÚ
as_contextr<   Ú_parent_valueÚstring_nameÚis_descriptor)r   r;   Úparent_valuer“   r-  s        r   r    ÚCompiledName.__init__>  s+   € Ø /ÔØ*×5Ñ5Ó7ˆÔØ)ÔØÔØ*Õr"   c                 ó>   • U R                  5       R                  5       $ r   )Úinfer_compiled_valuer~   rO   s    r   r~   ÚCompiledName.py__doc__E  s   € Ø×(Ñ(Ó*×4Ñ4Ó6Ð6r"   c                 ó\   • U R                   R                  5       nUc  g XR                  4-   $ r   )r<   rd   r,  )r   Úparent_qualified_namess     r   Ú_get_qualified_namesÚ!CompiledName._get_qualified_namesH  s2   € Ø!%×!4Ñ!4×!HÑ!HÓ!JÐØ!Ñ)ØØ%×)9Ñ)9Ð(;Ñ;Ð;r"   c                 ó¤   • U R                   nUR                  5       (       d  UR                  5       (       a  U R                   R                  5       $ g r   )r<   rq   rE   Ú	get_value)r   rD   s     r   Úget_defining_qualified_valueÚ)CompiledName.get_defining_qualified_valueN  sB   € Ø×%Ñ%ˆØ×Ñ×Ñ '×"2Ñ"2×"4Ñ"4Ø×&Ñ&×0Ñ0Ó2Ð2àr"   c                 ó®   •  U R                   R                  nSU R                  R                  < SU< SU R
                  < S3$ ! [         a    S n N;f = f)Nrž   z: (z).r    )r<   r“   rH   r=   r&   r,  rÒ   s     r   r¢   ÚCompiledName.__repr__U  sN   € ð	Ø×&Ñ&×+Ñ+ˆDøð #'§.¡.×"9Ô"9»4À×AQÔAQÐRÐRøô ó 	ØŠDð	ús   ‚A ÁAÁAc                 óZ   • U R                   (       a  gU R                  5       R                  $ )Nr,   )r-  r1  rª   rO   s    r   rª   ÚCompiledName.api_type\  s%   € à××ð Ø×(Ñ(Ó*×3Ñ3Ð3r"   c                 ó6   • [        U R                  5       /5      $ r   )r   r1  rO   s    r   ÚinferÚCompiledName.infere  s   € Ü˜×2Ñ2Ó4Ð5Ó6Ð6r"   c                 óX   • [        U R                  U R                  U R                  5      $ r   )Úcreate_from_namer)  r+  r,  rO   s    r   r1  Ú!CompiledName.infer_compiled_valueh  s#   € ä × 5Ñ 5°t×7IÑ7IÈ4×K[ÑK[Ó\Ð\r"   )r)  r+  r-  r<   r,  N)r&   r0   r1   r2   r    r~   r5  r9  r¢   r  rª   r@  r	   r1  r4   r5   r"   r   r'  r'  =  sK   † ò+ò7ò<òòSð ñ4ó ð4ò7ð ñ]ó ó]r"   r'  c                   ó<   • \ rS rSrS r\S 5       rS rS rS r	Sr
g)	r„   im  c                 ó2   • UR                   U l         X l        g r   )r<   Ú_signature_param)r   Úcompiled_valuerŽ   s      r   r    ÚSignatureParamName.__init__n  s   € Ø,×;Ñ;ˆÔØ /Õr"   c                 ó.   • U R                   R                  $ r   )rG  r“   rO   s    r   r,  ÚSignatureParamName.string_namer  s   € à×$Ñ$×)Ñ)Ð)r"   c                 ó  • U R                  5       U R                  -   nU R                  R                  (       a  USU R                  R                  -   -  nU R                  R
                  (       a  USU R                  R                  -   -  nU$ )NrŸ   r‚   )Ú_kind_stringr,  rG  Úhas_annotationÚannotation_stringÚhas_defaultÚdefault_string)r   Úss     r   Ú	to_stringÚSignatureParamName.to_stringv  st   € Ø×ÑÓ $×"2Ñ"2Ñ2ˆØ× Ñ ×/×/Ø�˜×-Ñ-×?Ñ?Ñ?Ñ?ˆAØ× Ñ ×,×,Ø��t×,Ñ,×;Ñ;Ñ;Ñ;ˆAØˆr"   c                 óJ   • [        [        U R                  R                  5      $ r   )Úgetattrr   rG  Ú	kind_namerO   s    r   Úget_kindÚSignatureParamName.get_kind~  s   € Ü”y $×"7Ñ"7×"AÑ"AÓBÐBr"   c                 ó&  • U R                   nU R                  R                  n[        nUR                  (       a  [        [        X!R                  5      /5      nUR                  (       a'  [        X!R                  5      nX4R                  5       -  nU$ r   )rG  r<   r;   r   rP  r   rB   r•   rN  Ú
annotationÚexecute_with_values)r   r’   r;   Úvaluesr[  s        r   r@  ÚSignatureParamName.infer�  sn   € Ø×!Ñ!ˆØ×-Ñ-×=Ñ=ˆÜˆØ�=�=ÜÔ6°Ï	É	ÓRÐSÓTˆFØ××Ü0°Ç,Á,ÓOˆJØ×4Ñ4Ó6Ñ6ˆFØˆr"   )rG  r<   N)r&   r0   r1   r2   r    r  r,  rS  rX  r@  r4   r5   r"   r   r„   r„   m  s+   † ò0ð ñ*ó ð*òòCõ	r"   r„   c                   ó,   • \ rS rSrS rS rS rS rSrg)rŒ   i�  c                 ó>   • UR                   U l         X l        X0l        g r   )r<   r,  Ú_default)r   rH  r“   r•   s       r   r    ÚUnresolvableParamName.__init__Ž  s   € Ø,×;Ñ;ˆÔØÔØ�r"   c                 ó"   • [         R                  $ r   )r   ÚPOSITIONAL_ONLYrO   s    r   rX  ÚUnresolvableParamName.get_kind“  s   € Ü×(Ñ(Ð(r"   c                 ód   • U R                   nU R                  (       a  USU R                  -   -  nU$ )Nr‚   )r,  ra  )r   Ústrings     r   rS  ÚUnresolvableParamName.to_string–  s,   € Ø×!Ñ!ˆØ�=�=Ø�c˜DŸM™MÑ)Ñ)ˆFØˆr"   c                 ó   • [         $ r   rý   rO   s    r   r@  ÚUnresolvableParamName.inferœ  r   r"   )ra  r<   r,  N)	r&   r0   r1   r2   r    rX  rS  r@  r4   r5   r"   r   rŒ   rŒ   �  s   † ò ò
)òõr"   rŒ   c                   ó   • \ rS rSrS rSrg)rÑ   i   c                 ó>   • X l         Xl        UR                  U l        g r   )r,  Ú_valuer<   )r   Úvaluer“   s      r   r    ÚCompiledValueName.__init__¡  s   € ØÔØŒØ#×2Ñ2ˆÕr"   )rm  r<   r,  N)r&   r0   r1   r2   r    r4   r5   r"   r   rÑ   rÑ      s   † õ3r"   rÑ   c                   ó$   • \ rS rSrSrS rS rSrg)ÚEmptyCompiledNamei§  z›
Accessing some names will raise an exception. To avoid not having any
completions, just give Jedi the option to return this object. It infers to
nothing.
c                 ó2   • UR                   U l        X l        g r   )rÜ   r<   r,  )r   r;   r“   s      r   r    ÚEmptyCompiledName.__init__­  s   € Ø-×=Ñ=ˆÔØÕr"   c                 ó   • [         $ r   rý   rO   s    r   r@  ÚEmptyCompiledName.infer±  r   r"   )r<   r,  N)r&   r0   r1   r2   r3   r    r@  r4   r5   r"   r   rq  rq  §  s   † ñò
 õr"   rq  c                   ó\   • \ rS rSrSS jrS rSS jr\SSS.S jj5       rS r	S	 r
S
 rSrg)r²   iµ  Fc                 ó(   • Xl         X l        X0l        g r   ©r)  rH  r{   )r   r;   rH  r{   s       r   r    ÚCompiledValueFilter.__init__¶  s   € Ø /ÔØ,ÔØ&Õr"   c                 óž   ^^• U R                   R                  mU R                  R                  (       + mU R	                  UUU4S jU4S jSS9$ )Nc                 ó$   >• TR                  U TS9$ rµ   )Úis_allowed_getattr)r“   r*   r¶   s    €€r   Ú<lambda>Ú)CompiledValueFilter.get.<locals>.<lambda>À  s   ø€ ˜×9Ñ9¸$ÀTÐ9ÑJr"   c                 ó*   >• U TR                  5       ;   $ r   )Údir)r“   r*   s    €r   r}  r~  Á  s   ø€ ˜ ×!2Ñ!2Ó!4Ò4r"   T)Úcheck_has_attribute)rH  r*   r)  r»   Ú_get)r   r“   r*   r¶   s     @@r   ÚgetÚCompiledValueFilter.get»  sJ   ù€ Ø×+Ñ+×9Ñ9ˆØ×(Ñ(×@Ñ@Ô@ˆØ�y‰yØÝJÜ4Ø $ð	 ð 
ð 	
r"   c                 ó¬  • U" U5      u  pVnUbH  [        U R                  U5      R                  S5      nU(       a  U V	s/ s H  n	[        X‘5      PM     sn	$ U(       a	  U(       d  / $ U(       d  U(       d,  U R                  R                  (       d  U R                  USS9/$ U R                  (       a  U" U5      (       d  / $ U R                  XS9/$ s  sn	f )zE
To remove quite a few access calls we introduced the callback here.
NT)Úis_empty©r-  )rB   r)  rC   rÑ   r»   Ú_get_cached_namer{   )
r   r“   Úallowed_getattr_callbackÚin_dir_callbackr�  Úhas_attributer-  Úproperty_return_annotationr]  r÷   s
             r   r‚  ÚCompiledValueFilter._getÅ  sÔ   € ñ D\ØóD
Ñ@ˆÐ&@ð &Ñ1Ü,Ø×%Ñ%Ø*ó÷ !Ñ  Ó&ð ö Ù<BÓCºF°qÔ)¨!Ö2¹FÑCÐCæ¦}ØˆIæ¦Ø×-Ñ-×E×EØ×)Ñ)¨$¸Ð)Ð>Ð?Ð?à××¡O°D×$9Ñ$9ØˆIØ×%Ñ% dÐ%ÐHÐIÐIùò Ds   ¿Cr‡  c                óZ   • U(       a  [        U R                  U5      $ U R                  XS9$ )Nr‡  )rq  r)  Ú_create_name)r   r“   r†  r-  s       r   rˆ  Ú$CompiledValueFilter._get_cached_nameß  s,   € æÜ$ T×%:Ñ%:¸DÓAÐAà×$Ñ$ TÐ$ÐGÐGr"   c                 óV  ^• SSK Jn  / nU R                  R                  R	                  5       u  nmT H   nX R                  UU4S jU4S j5      -  nM"     U R                  (       dA  U(       a:  U" U R                  S5      R                  5        H  nX%R                  5       -  nM     U$ )Nr   rÖ   c                 ó   >• TU    $ r   r5   ©r“   Ú	dir_infoss    €r   r}  Ú,CompiledValueFilter.values.<locals>.<lambda>ò  s	   ø€ ˜Y tš_r"   c                 ó   >• U T;   $ r   r5   r“  s    €r   r}  r•  ó  s
   ø€ ˜T YÒ.r"   Útype)
rÛ   r×   rH  r*   Úget_dir_infosr‚  r{   r)  r¯   r]  )r   r×   ÚnamesÚneeds_type_completionsr“   Úfilterr”  s         @r   r]  ÚCompiledValueFilter.valuesæ  s•   ø€ Ý=ØˆØ,0×,?Ñ,?×,MÑ,M×,[Ñ,[Ó,]Ñ)Ð 	ó ˆDØ—Y‘YØÜ,Ü.óñ ŠEñ ð ××Ö$:Ù+¨D×,AÑ,AÀ6ÓJ×VÑVÖX�ØŸ™›Ñ(’ñ Yàˆr"   c                 óF   • [        U R                  U R                  UU5      $ r   )r'  r)  rH  )r   r“   r-  s      r   r�  Ú CompiledValueFilter._create_nameü  s'   € ÜØ×!Ñ!Ø×ÑØØó	
ð 	
r"   c                 óT   • SU R                   R                  < SU R                  < S3$ r�   )r=   r&   rH  rO   s    r   r¢   ÚCompiledValueFilter.__repr__  s   � Ø!Ÿ^™^×4Ô4°d×6IÔ6IÐJÐJr"   rx  N)F)r&   r0   r1   r2   r    rƒ  r‚  r	   rˆ  r]  r�  r¢   r4   r5   r"   r   r²   r²   µ  s@   † ô'ò

ôJð4 ðHÀeõ Hó ðHòò,
õKr"   r²   ÚfloatÚstrÚintÚdict)zfloating point numberÚ	characterÚintegerÚ
dictionaryrg  c                 óÎ  •  SnU R                  S5      n[        XS 5       H(  u  p4US:X  a  US-  nOUS:X  a  US-  nUS:X  d  M$  X#-   n  O   XS-   W nS n [        R                  " SXv5      u  phUS:X  a  OM"  UR                  S
S5      n[        R                  " SXUS-    5      n	U	c  S	n
Xj4$ XYR                  5       -   n[        R                  " S5      nUR                  X5      R                  S5      R                  5       n[        R                  " SSU5      n[         R#                  XÝ5      n
Xj4$ ! [        [
        4 a    [        R                  " S5        SnS	n Nèf = f)zæ
Takes a function and returns the params and return value as a tuple.
This is nothing more than a docstring parser.

TODO docstrings like utime(path, (atime, mtime)) and a(b [, b]) -> None
TODO docstrings like 'tuple of integers'
r   Ú(NrÙ   Ú)c                 óÆ   • U R                  S5      R                  S5      n[        U5       H"  u  p#U(       d  M  SU;  d  M  X==   S-  ss'   M$     SR                  U5      $ )NrÙ   r�   r‚   z=None)Úgroupr‡   Ú	enumerateÚjoin)Úmrõ   ÚiÚas       r   Úchange_optionsÚ+_parse_function_doc.<locals>.change_options.  sQ   € Ø—7‘7˜1“:×#Ñ# CÓ(ˆDÜ! $ž‘�ß�1˜ A�Ø“G˜wÑ&•Gñ (ð —8‘8˜D“>Ð!r"   z ?\[([^\[\]]+)\]zno brackets found - no paramr¥   Ú-r”   z-[>-]* é   z(,\n|[^\n-])+z[nN]ew (.*)z\1())r¼   r­  ÚreÚsubnr…   ÚUnboundLocalErrorr   ÚdbgÚreplaceÚsearchÚendÚcompileÚmatchr¬  rŠ   ÚsubÚdocstr_defaultsrƒ  )r¦   ÚcountÚstartr°  rR  r¼  Ú	param_strr²  ÚchangesÚrr�   r¼   ÚpatternÚret_strs                 r   r†   r†     s~  € ðØˆØ—	‘	˜#“ˆÜ˜c &˜kÖ*‰DˆAØ�C‹xØ˜‘
‘Ø�c“Ø˜‘
�Ø˜�zØ‘i�Ùñ +ð  ™	 #Ð&ˆ	ò	"ð Ü!#§¢Ð)<Ø)7ó"DÑˆIà˜!‹|Øñ	 ð
 ×!Ñ! # sÓ+€Iô 	�	Š	�)˜S S¨1¡WÐ-Ó.€AØ�yØˆð ˆ>Ðð —e‘e“g‘ˆä—*’*Ð-Ó.ˆØ—-‘- Ó+×1Ñ1°!Ó4×:Ñ:Ó<ˆä—&’&˜¨°'Ó:ˆä×!Ñ! 'Ó3ˆàˆ>ÐøôI Ô)Ð*ó ô 	�	Š	Ð0Ô1ØˆØŠ	ðús   ‚A D7 ÁD7 Ä7*E$Å#E$c                 óŒ   • UR                   R                  US S9nS nU H!  n[        U UUc  S OUR                  5       S9nM#     U$ )N)r•   ©r<   )r*   r+   Úcreate_cached_compiled_valuer*  )r;   rH  r“   Úaccess_pathsrn  Úaccess_paths         r   rC  rC  M  sU   € Ø!×/Ñ/×=Ñ=¸dÈDÐ=ÐQ€Là€EÛ#ˆÜ,ØØØ#(¡=™4°e×6FÑ6FÓ6Hñ
Šñ $ð €Lr"   c                 ó   ^ • SU 4S jjnU$ )z5The cache doesn't care about keyword vs. normal args.c                 ó   >• T" XU5      $ r   r5   )r;   Úobjr<   r%   s      €r   ÚwrapperÚ'_normalize_create_args.<locals>.wrapper\  s   ø€ Ù�O¨.Ó9Ð9r"   r   r5   )r%   rÐ  s   ` r   Ú_normalize_create_argsrÒ  Z  s   ø€ ÷:à€Nr"   c                 óp   • S nUR                    H#  u  p4[        U UUc  S OUR                  5       S9nM%     U$ )NrÉ  )ÚaccessesrÊ  r*  )r;   rÌ  rn  r“   rV   s        r   rB   rB   a  sB   € Ø€EØ#×,Ô,‰ˆÜ,ØØØ#(¡=™4°e×6FÑ6FÓ6Hñ
Šñ -ð €Lr"   c                 ób   • [        U[        5      (       a   eUc  [        nO[        nU" XU5      $ r   )Ú
isinstancer7   r  )r;   r*   r<   Úclss       r   rÊ  rÊ  l  s4   € ô ˜.¬-×8Ñ8Ð8Ð8ØÑÜ‰äˆÙˆ¨~Ó>Ð>r"   )6r3   r¶  Ú	functoolsr   Úinspectr   Úpathlibr   Útypingr   Újedir   Újedi.inference.utilsr   Ú
jedi.cacher	   Újedi.inference.filtersr
   Újedi.inference.namesr   r   r   Újedi.inference.base_valuer   r   r   Újedi.inference.lazy_valuer   Újedi.inference.compiled.accessr   Újedi.inference.cacher   Újedi.inference.helpersr   Újedi.inference.signaturer   Újedi.inference.contextr   r   r   r7   r  r'  r„   rŒ   rÑ   rq  r²   rÀ  r†   rC  rÒ  rB   rÊ  r5   r"   r   Ú<module>rè     s  ðñó 
Ý Ý Ý Ý å Ý (Ý %Ý 1÷ñ ç @Ñ @Ý 4Ý 4Ý ?Ý 9Ý 5ß I÷,ñ ,ô*t�Eô tôn/�]ô /ô0-]Ð)ô -]ô`Ð+Ð-Cô ô@Ð.Ð0Fô ô&3˜Ð(>ô 3ôÐ.ô ôPK˜.ô PKðh %ØØØØñ€ò9òx
òòð ÙÓ!ñ?ó "ó ñ?r"   