ó
    Ð]jÙt  ã                  óø  • S SK Jr  S SKrS SKrS SKJr  S SKJrJr  S SK	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Jr  S SKJrJr  S SKJr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+J,r,  S SK-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9  \(       a  S SK:J;r;  S SK<J=r=J>r>  S SKJ?r?  SSSS.r@ S1S1SS1SS1S1S1S.rA SS1rB SSSSSSS.                   S"S jjrC " S  S!5      rDg)#é    )ÚannotationsN)Úsuppress)ÚTYPE_CHECKINGÚFinal)Úget_instance_namesÚ	get_names)Úast_childrenÚast_kindÚast_next)Úget_docstring)Úsafe_get__all__)Úrelative_to_absolute)Úget_parameters)ÚLinesCollectionÚModulesCollection)ÚKindÚTypeParameterKind)ÚAliasResolutionErrorÚCyclicAliasErrorÚLastNodeError)ÚExprÚExprNameÚsafe_get_annotationÚsafe_get_base_classÚsafe_get_class_keywordÚsafe_get_conditionÚsafe_get_expression)Ú
ExtensionsÚload_extensions)ÚAliasÚ	AttributeÚClassÚ	DecoratorÚ	DocstringÚFunctionÚModuleÚ	ParameterÚ
ParametersÚ	TypeAliasÚTypeParameterÚTypeParameters)ÚPath)ÚDocstringOptionsÚDocstringStyle)ÚParserÚpropertyÚstaticmethodÚclassmethod)r0   r1   r2   ÚabstractmethodÚcachedÚ	dataclass)zabc.abstractmethodzfunctools.cachezfunctools.cached_propertyzcached_property.cached_propertyzfunctools.lru_cachezdataclasses.dataclassztyping.overloadztyping_extensions.overload)Ú
extensionsÚparentÚdocstring_parserÚdocstring_optionsÚlines_collectionÚmodules_collectionc               ób   • [        U UUU=(       d
    [        5       UUUUUS9	R                  5       $ )a:  Parse and visit a module file.

We provide this function for static analysis. It uses a [`NodeVisitor`][ast.NodeVisitor]-like class,
the [`Visitor`][griffe.Visitor], to compile and parse code (using [`compile`][])
then visit the resulting AST (Abstract Syntax Tree).

Important:
    This function is generally not used directly.
    In most cases, users can rely on the [`GriffeLoader`][griffe.GriffeLoader]
    and its accompanying [`load`][griffe.load] shortcut and their respective options
    to load modules using static analysis.

Parameters:
    module_name: The module name (as when importing [from] it).
    filepath: The module file path.
    code: The module contents.
    extensions: The extensions to use when visiting the AST.
    parent: The optional parent of this module.
    docstring_parser: The docstring parser to use. By default, no parsing is done.
    docstring_options: Docstring parsing options.
    lines_collection: A collection of source code lines.
    modules_collection: A collection of modules.

Returns:
    The module, with its members populated.
)r8   r9   r:   r;   )ÚVisitorr   Ú
get_module)	Úmodule_nameÚfilepathÚcoder6   r7   r8   r9   r:   r;   s	            Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/griffe/_internal/agents/visitor.pyÚvisitrC   P   s>   € ôL ØØØØ×'”oÓ'ØØ)Ø+Ø)Ø-ñ
÷ �jƒlð
ó    c                  óL  ^ • \ rS rSr% Sr     S!                   S"U 4S jjjrSS.S#S jjr\R                  S:¼  aX  \	R                  \R                  \	R                  \R                  \	R                  \R                   0rS	\S
'   SS.     S$S jjrOSS.     S%S jjrS&S jrS'S jrS'S jrS(S jrS)S jrS*S jrS+S jrS,S-S jjrS.S jrS/S jr\R                  S:¼  a  S0S jrS1S jrS2S jr  S,     S3S jjr!S4S jr"S5S jr#S6S jr$S7S jr%S r&U =r'$ )8r=   éƒ   zgThis class is used to instantiate a visitor.

Visitors iterate on AST nodes to extract data from them.
Nc
                ó  >• [         T
U ]  5         Xl         X l         X0l         X@l         XPl         SU l         X`l         U=(       d    0 U l	         U=(       d
    [        5       U l         U	=(       d
    [        5       U l         SU l        g)aÌ  Initialize the visitor.

Parameters:
    module_name: The module name.
    filepath: The module filepath.
    code: The module source code.
    extensions: The extensions to use when visiting.
    parent: An optional parent for the final module object.
    docstring_parser: The docstring parser to use.
    docstring_options: Docstring parsing options.
    lines_collection: A collection of source code lines.
    modules_collection: A collection of modules.
NF)ÚsuperÚ__init__r?   r@   rA   r6   r7   Úcurrentr8   r9   r   r:   r   r;   Útype_guarded)Úselfr?   r@   rA   r6   r7   r8   r9   r:   r;   Ú	__class__s             €rB   rI   ÚVisitor.__init__‰   sŽ   ø€ ô2 	‰ÑÔà +ÔØà&ŒØ"àŒ	Ø%à&0ŒØ:à%+ŒØ=à'+ˆŒØ/à@PÔØ*à3D×3JÈˆÔØ,à1A×1VÄ_ÓEVˆÔØ0à5G×5^ÔK\ÓK^ˆÔØ&à"'ˆÔØ>rD   F©Ústrictc               ód   • [        XS9u  p4nUc  g [        UUUU R                  U R                  S9$ )NrO   )ÚlinenoÚ	endlinenoÚparserÚparser_options)r   r$   r8   r9   )rL   ÚnoderP   ÚvaluerR   rS   s         rB   Ú_get_docstringÚVisitor._get_docstringÅ   sA   € Ü#0°Ñ#EÑ ˆ�yØ‰=ØÜØØØØ×(Ñ(Ø×1Ñ1ñ
ð 	
rD   )é   é   z4Final[dict[type[ast.type_param], TypeParameterKind]]Ú_type_parameter_kind_map©Úscopec               ó  • UR                    Vs/ s Hk  n[        UR                  U R                  [	        U5         [        [        USS 5      U R                  US9[        [        USS 5      U R                  US9S9PMm     sn$ s  snf )NÚbound©r7   ÚmemberÚdefault_value)Úkindr`   Údefault)Útype_paramsr*   Únamer\   Útyper   ÚgetattrrJ   )rL   rV   r^   Ú
type_params       rB   Ú_get_type_parametersÚVisitor._get_type_parametersÙ   s�   € ð" #'×"2Ò"2óò #3�Jô Ø—O‘OØ×6Ñ6´t¸JÓ7GÑHÜ-¬g°jÀ'È4Ó.PÐY]×YeÑYeÐnsÑtÜ/Ü 
¨O¸TÓBØ#Ÿ|™|Ø$ñô		ñ #3ñð ùò s   �A2Bc               ó   • / $ ©N© )rL   rV   r^   s      rB   rk   rl   î   s	   € ð ˆIrD   c                óÀ   • [        U R                  S[        U R                  5      [        R
                  SS9nU R                  U5        U R                  R                  $ )z«Build and return the object representing the module attached to this visitor.

This method triggers a complete visit of the module nodes.

Returns:
    A module instance.
Úexecé   )ÚmodeÚfilenameÚflagsÚoptimize)	ÚcompilerA   Ústrr@   ÚastÚPyCF_ONLY_ASTrC   rJ   Úmodule)rL   Útop_nodes     rB   r>   ÚVisitor.get_moduleö   sG   € ô ˜4Ÿ9™9¨6¼CÀÇÁÓ<NÔVY×VgÑVgÐrsÑtˆØ�
‰
�8ÔØ�|‰|×"Ñ"Ð"rD   c                óV   • [        U S[        U5       3U R                  5      " U5        g)zQExtend the base visit with extensions.

Parameters:
    node: The node to visit.
Úvisit_N)ri   r
   Úgeneric_visit©rL   rV   s     rB   rC   ÚVisitor.visit  s'   € ô 	�˜œx¨›~Ð.Ð/°×1CÑ1CÔDÀTÕJrD   c                óJ   • [        U5       H  nU R                  U5        M     g)zYExtend the base generic visit with extensions.

Parameters:
    node: The node to visit.
N)r	   rC   )rL   rV   Úchilds      rB   r€   ÚVisitor.generic_visit  s   € ô " $Ö'ˆEØ�J‰J�uÖò (rD   c           
     ó  • U R                   R                  SXS9  U R                   R                  SXS9  [        U R                  U R                  U R
                  U R                  U5      U R                  U R                  SS9=U l	        nU R                   R                  SXU S9  U R                   R                  SXU S	9  U R                  U5        U R                   R                  S
XU S9  U R                   R                  SXU S	9  g)z?Visit a module node.

Parameters:
    node: The node to visit.
Úon_node©rV   ÚagentÚon_module_nodeÚstatic)rg   r@   r7   Ú	docstringr:   r;   ÚanalysisÚon_instance©rV   Úobjr‰   Úon_module_instance)rV   Úmodr‰   Ú
on_membersÚon_module_membersN)r6   Úcallr&   r?   r@   r7   rX   r:   r;   rJ   r€   )rL   rV   r{   s      rB   Úvisit_moduleÚVisitor.visit_module  s÷   € ð 	�‰×Ñ˜Y¨TÐÑ>Ø�‰×ÑÐ-°DÐÑEÜ &Ø×!Ñ!Ø—]‘]Ø—;‘;Ø×)Ñ)¨$Ó/Ø!×2Ñ2Ø#×6Ñ6Øñ!
ð 	
ˆŒ�vð 	�‰×Ñ˜]°ÈÐÑNØ�‰×ÑÐ1¸ÐPTÐÑUØ×Ñ˜4Ô Ø�‰×Ñ˜\°ÈÐÑMØ�‰×ÑÐ0°tÈtÐÒTrD   c                óê  ^ • T R                   R                  SUT S9  T R                   R                  SUT S9  / nUR                  (       a?  UR                  S   R                  nUR	                  U 4S jUR                   5       5        OUR                  nUR
                   Vs/ s H"  n[        UT R                  UR                  S9PM$     nnUR                   Vs0 s H:  ofR                  c  M  UR                  [        UR                  T R                  S9_M<     nn[        UR                  UUR                  T R                  U5      U[!        T R#                  XR                  S	96 UUT R$                  (       + S
S9
nU=R&                  T R)                  U5      -  sl        T R                  R+                  UR                  U5        UT l        T R                   R                  SXT S9  T R                   R                  SXT S9  T R-                  U5        T R                   R                  SXT S9  T R                   R                  SXT S9  T R                  R.                  T l        gs  snf s  snf )zIVisit a class definition node.

Parameters:
    node: The node to visit.
r‡   rˆ   Úon_class_noder   c           	   3  óˆ   >#   • U  H7  n[        [        UTR                  S S9UR                  UR                  S9v •  M9     g7f)F©r7   Úparse_strings©rR   rS   N)r#   r   rJ   rR   Ú
end_lineno)Ú.0Údecorator_noderL   s     €rB   Ú	<genexpr>Ú)Visitor.visit_classdef.<locals>.<genexpr>9  sD   øé € ð ò ':�Nô Ü'¨¸t¿|¹|Ð[`ÑaØ)×0Ñ0Ø,×7Ñ7öò
 ':ùs   ƒ?Ara   N©r7   r]   r‹   )
rg   rR   rS   rŒ   Ú
decoratorsÚtype_parametersÚbasesÚkeywordsÚruntimer�   rŽ   r�   Úon_class_instance)rV   Úclsr‰   r“   Úon_class_members)r6   r•   Údecorator_listrR   Úextendr¦   r   rJ   rg   r§   Úargr   rW   r"   rž   rX   r+   rk   rK   ÚlabelsÚdecorators_to_labelsÚ
set_memberr€   r7   )	rL   rV   r¤   rR   Úbaser¦   Úkwr§   Úclass_s	   `        rB   Úvisit_classdefÚVisitor.visit_classdef,  s,  ø€ ð 	�‰×Ñ˜Y¨T¸ÐÑ>Ø�‰×Ñ˜_°4¸tÐÑDð ')ˆ
Ø××Ø×(Ñ(¨Ñ+×2Ñ2ˆFØ×Ñô ð '+×&9Ò&9óõ ð —[‘[ˆFð _c×^hÒ^hÓiÒ^hÐVZÔ$ T°$·,±,ÀtÇyÁyÔQÑ^hˆÐiàTX×TaÒTaó
ÚTaÈb×ekÑekÓIˆB�F‰FÔ*¨2¯8©8¸D¿L¹LÑIÒIÑTað 	ð 
ô Ø—‘ØØ—o‘oØ×)Ñ)¨$Ó/Ø!Ü*¨D×,EÑ,EÀd×R[ÑR[Ð,EÐ,\Ð]ØØØ×)Ñ)Ô)Øñ
ˆð 	�Š˜×2Ñ2°:Ó>Ñ>�à�‰×Ñ §	¡	¨6Ô2ØˆŒØ�‰×Ñ˜]°ÈÐÑNØ�‰×ÑÐ0°tÈtÐÑTØ×Ñ˜4Ô Ø�‰×Ñ˜\°ÈÐÑMØ�‰×ÑÐ/°dÈdÐÑSØ—|‘|×*Ñ*ˆ�ùò5 jùò
s   Â$)I+ÃI0Ã1-I0c                ó¼   • [        5       nU HK  nUR                  nU[        ;   a  UR                  [        U   5        M3  U[        ;   d  M?  U[        U   -  nMM     U$ )z‹Build and return a set of labels based on decorators.

Parameters:
    decorators: The decorators to check.

Returns:
    A set of labels.
)ÚsetÚcallable_pathÚbuiltin_decoratorsÚaddÚstdlib_decorators)rL   r¤   r¯   Ú	decoratorr¹   s        rB   r°   ÚVisitor.decorators_to_labelsa  s[   € ô “ˆÛ#ˆIØ%×3Ñ3ˆMØÔ 2Ó2Ø—
‘
Ô-¨mÑ<Ö=ØÔ"3Õ3ØÔ+¨MÑ:Ñ:’ñ $ð ˆrD   c                ó6  • U H‚  n UR                   R                  SS5      u  pEUS;   =(       aI    XBR                  :H  =(       a4    U R                  R                  UR                  5      R                  S5      nU(       d  M€  Us  $    g! [         a     M”  f = f)a  Check decorators to return the base property in case of setters and deleters.

Parameters:
    decorators: The decorators to check.

Returns:
    base_property: The property for which the setter/deleted is set.
    property_function: Either `"setter"` or `"deleter"`.
Ú.rr   >   ÚsetterÚdeleterr0   N)r¹   ÚrsplitÚ
ValueErrorÚpathrJ   Ú
get_memberrg   Ú
has_labels)rL   r¤   Úfunctionr½   rÅ   Úprop_functionÚproperty_setter_or_deleters          rB   Úget_base_propertyÚVisitor.get_base_propertys  sœ   € ó $ˆIðØ&/×&=Ñ&=×&DÑ&DÀSÈ!Ó&LÑ#�ð Ð!6Ñ6÷ RØŸM™MÑ)÷Rà—L‘L×+Ñ+¨H¯M©MÓ:×EÑEÀjÓQð '÷
 *Ð)Ø$Ò$ñ $ð øô ó Úðús   ‡B
Â

BÂBc                ó¾
  • U R                   R                  SXS9  U R                   R                  SXS9  U=(       d
    [        5       n/ nSnUR                  (       a‹  UR                  S   R                  nUR                   Ha  n[        X`R                  SS9nUc  M  [        UUR                  UR                  S9nUR                  U5        XHR                  [        ;   -  nMc     OUR                  nX R                  U5      -  nS	U;   aå  [        UR                  S[        UR                   U R                  UR                  S
9UR                  UR                  U R#                  U5      U R$                  (       + SS9n	U	=R&                  U-  sl        U R                  R)                  UR                  U	5        U R                   R                  SXU S9  U R                   R                  SXU S9  g[+        [-        UR.                  5       V
VVVs/ s HW  u  p«pÍ[1        U
U[        X°R                  UR                  S
9[3        U[4        5      (       a  UO[        XÐR                  SS9S9PMY     snnnn
6 n[7        UR                  UUR                  U[        UR                   U R                  UR                  S
9U[9        U R;                  XR                  S96 U R#                  U5      U R$                  (       + U R                  SS9nU R=                  X?5      nU(       a4  U R                  R>                  UR                     R                  U5        GOKU(       au  U R                  R@                  UR                     nUS:X  a#  UUl!        UR&                  RE                  S5        OøUS:X  a"  UUl#        UR&                  RE                  S5        OÏU R                  R)                  UR                  U5        U R                  RH                  [J        RL                  [J        RN                  1;   aq  U R                  R>                  UR                     (       aI  U R                  R>                  UR                     Ul        U R                  R>                  UR                  	 U=R&                  U-  sl        U R                   R                  SXU S9  U R                   R                  SXU S9  U R                  RH                  [J        RN                  L aD  UR                  S:X  a3  Xðl        U RQ                  U5        U R                  RR                  U l        gggs  snnnn
f )z{Handle a function definition node.

Parameters:
    node: The node to visit.
    labels: Labels to add to the data object.
r‡   rˆ   Úon_function_nodeFr   r›   Nr�   r0   ra   r‹   ©rg   rW   Ú
annotationrR   rS   rŒ   r¨   r�   rŽ   r�   Úon_attribute_instance©rV   Úattrr‰   )rd   rÐ   re   r]   )rg   rR   rS   Ú
parametersÚreturnsr¤   r¥   rŒ   r¨   r7   r�   rÁ   ÚwritablerÂ   Ú	deletableÚon_function_instance)rV   Úfuncr‰   rI   )*r6   r•   r¸   r¬   rR   r   rJ   r#   rž   Úappendr¹   Útyping_overloadr°   r!   rg   r   rÕ   rX   rK   r¯   r±   r(   r   Úargsr'   Ú
isinstancerx   r%   r+   rk   rË   Ú	overloadsÚmembersrÁ   r»   rÂ   rd   r   ÚMODULEÚCLASSr€   r7   )rL   rV   r¯   r¤   ÚoverloadrR   r    Údecorator_valuer½   Ú	attributerg   rÐ   rd   re   rÔ   rÈ   Úproperty_functionÚbase_propertys                     rB   Úhandle_functionÚVisitor.handle_function‹  sf  € ð 	�‰×Ñ˜Y¨TÐÑ>Ø�‰×ÑÐ/°dÐÑGà—œ3›5ˆð ˆ
ØˆØ××Ø×(Ñ(¨Ñ+×2Ñ2ˆFØ"&×"5Ô"5�Ü"5°nÏ\É\ÐinÑ"o�Ø"Ñ*ÙÜ%Ø#Ø)×0Ñ0Ø,×7Ñ7ñ�	ð
 ×!Ñ! )Ô,Ø×3Ñ3´ÑFÑF’ò #6ð —[‘[ˆFà×+Ñ+¨JÓ7Ñ7ˆà˜ÓÜ!Ø—Y‘YØÜ.¨t¯|©|ÀDÇLÁLÐY]×YbÑYbÑcØ—{‘{ØŸ/™/Ø×-Ñ-¨dÓ3Ø ×-Ñ-Ô-Ø!ñ	ˆIð ×Ò Ñ&ÕØ�L‰L×#Ñ# D§I¡I¨yÔ9Ø�O‰O× Ñ  °TÐPTÐ ÑUØ�O‰O× Ñ Ð!8¸tÐ[_Ð Ñ`Øô  ô 8FÀdÇiÁiÔ7Pö
ò 8QÑ3�D dô ØØÜ2°:ÇlÁlÐ[_×[dÑ[dÑeä! '¬3×/Ñ/ñ $ä,¨W¿\¹\ÐY^Ñ_ôñ 8Qô
ð
ˆ
ô Ø—‘ØØ—o‘oØ!Ü'¨¯©¸T¿\¹\ÐRV×R[ÑR[Ñ\Ø!Ü*¨D×,EÑ,EÀd×R[ÑR[Ð,EÐ,\Ð]Ø×)Ñ)¨$Ó/Ø×)Ñ)Ô)Ø—<‘<Øñ
ˆð !×2Ñ2°:ÓHÐæØ�L‰L×"Ñ" 8§=¡=Ñ1×8Ñ8¸ÖBÞØ'+§|¡|×';Ñ';¸D¿I¹IÑ'FˆMØ  HÓ,Ø'/�Ô$Ø×$Ñ$×(Ñ(¨Õ4Ø" iÓ/Ø(0�Ô%Ø×$Ñ$×(Ñ(¨Ô5øà�L‰L×#Ñ# D§I¡I¨xÔ8Ø�|‰|× Ñ ¤T§[¡[´$·*±*Ð$=Ó=À$Ç,Á,×BXÑBXÐYa×YfÑYf×BgØ%)§\¡\×%;Ñ%;¸H¿M¹MÑ%J�Ô"Ø—L‘L×*Ñ*¨8¯=©=Ð9à�Š˜6Ñ!�à�‰×Ñ˜]°È4ÐÑPØ�‰×ÑÐ3¸$ÐUYÐÑZØ�<‰<×Ñ¤§
¡
Ò*¨x¯}©}À
Ó/JØ#ŒLØ×Ñ˜tÔ$ØŸ<™<×.Ñ.ˆD�Lð 0KÐ*ùõc
s   ÈAUc                ó&   • U R                  U5        g)zLVisit a function definition node.

Parameters:
    node: The node to visit.
N©rç   r�   s     rB   Úvisit_functiondefÚVisitor.visit_functiondefõ  s   € ð 	×Ñ˜TÕ"rD   c                ó&   • U R                  US1S9  g)zSVisit an async function definition node.

Parameters:
    node: The node to visit.
Úasync)r¯   Nrê   r�   s     rB   Úvisit_asyncfunctiondefÚVisitor.visit_asyncfunctiondefý  s   € ð 	×Ñ˜T¨7¨)ÐÒ4rD   c                ó^  • U R                   R                  SXS9  U R                   R                  SXS9  UR                  R                  n[	        UR
                  U R                  US9n U R                  [        U5      SS9n[        UUUR                  UR                  [        U R                  XS96 UU R                  S	S
9nU R                  R!                  X%5        U R                   R                  SXU S9  U R                   R                  SXU S9  g! [        [        4 a    Sn N§f = f)zCVisit a type alias node.

Parameters:
    node: The node to visit.
r‡   rˆ   Úon_type_alias_nodera   TrO   Nr]   r‹   )rg   rW   rR   rS   r¥   rŒ   r7   r�   rŽ   r�   Úon_type_alias_instance)rV   Ú
type_aliasr‰   )r6   r•   rg   Úidr   rW   rJ   rX   r   r   ÚAttributeErrorr)   rR   rž   r+   rk   r±   )rL   rV   rg   rW   rŒ   rô   s         rB   Úvisit_typealiasÚVisitor.visit_typealias  s  € ð �O‰O× Ñ  °Ð ÑBØ�O‰O× Ñ Ð!5¸DÐ ÑMð —9‘9—<‘<ˆDä'¨¯
©
¸4¿<¹<ÐPTÑUˆEð!Ø ×/Ñ/´¸³ÀtÐ/ÐL�	ô #ØØØ—{‘{ØŸ/™/Ü .°×0IÑ0IÈ$Ð0IÐ0[Ð \Ø#Ø—|‘|Ø!ñ	ˆJð �L‰L×#Ñ# DÔ5Ø�O‰O× Ñ  °TÐQUÐ ÑVØ�O‰O× Ñ Ð!9ÀÐcgÐ Òhøô "¤>Ð2ó !Ø ’	ð!ús   Á+D ÄD,Ä+D,c           
     óð  • UR                    Hæ  nUR                  (       a  UR                  OUR                  R                  SS5      S   nUR                  =(       d    UR                  SS5      S   nX0R                  R
                  U'   [        UUUR                  UR                  U R                  (       + SS9nU R                  R                  XE5        U R                  R                  SXQU S9  Mè     g)	z@Visit an import node.

Parameters:
    node: The node to visit.
rÀ   rr   r   r‹   ©rR   rS   r¨   r�   Úon_alias_instance©ÚaliasrV   r‰   N)ÚnamesÚasnamerg   ÚsplitrJ   Úimportsr    rR   rž   rK   r±   r6   r•   ©rL   rV   rg   Ú
alias_pathÚ
alias_namerý   s         rB   Úvisit_importÚVisitor.visit_import,  sÅ   € ð —J”JˆDØ&*§k§k˜Ÿš°t·y±y·±ÀsÈAÓ7NÈqÑ7QˆJØŸ™×C¨
×(8Ñ(8¸¸aÓ(@ÀÑ(CˆJØ/9�L‰L× Ñ  Ñ,ÜØØØ—{‘{ØŸ/™/Ø ×-Ñ-Ô-Ø!ñˆEð �L‰L×#Ñ# JÔ6Ø�O‰O× Ñ Ð!4¸EÐTXÐ ÓYò rD   c           
     ó  • UR                    GHq  nUR                  (       dH  UR                  S:X  a8  UR                  (       d'  U R                  R                  R
                  (       a  M]  [        XU R                  R                  5      nUR                  S:X  a%  UR                  SS5      nUR                  SS5      nO7UR                  =(       d    UR                  nX0R                  R                  U'   X0R                  R                   SU 3:w  d  GM
  [        UUUR                  UR                  U R                  (       + SS9nU R                  R                  XE5        U R                   R#                  S	XQU S
9  GMt     g)zGVisit an "import from" node.

Parameters:
    node: The node to visit.
rr   Ú*rÀ   Ú/z.*Ú r‹   rú   rû   rü   N)rþ   r{   Úlevelrÿ   rJ   Úis_init_moduler   rg   Úreplacer  rÅ   r    rR   rž   rK   r±   r6   r•   r  s         rB   Úvisit_importfromÚVisitor.visit_importfromA  s$  € ð —J•JˆDØ—;—; 4§:¡:°£?¸4¿;¿;È4Ï<É<×K^ÑK^×Km×Kmñ
 ä-¨d¸$¿,¹,×:MÑ:MÓNˆJØ�y‰y˜CÓØ'×/Ñ/°°SÓ9�
Ø'×/Ñ/°°bÓ9‘
à!Ÿ[™[×5¨D¯I©I�
Ø3=—‘×$Ñ$ ZÑ0ð §¡× 1Ñ 1Ð2°!°J°<Ð@Ö@ÜØØØŸ;™;Ø"Ÿo™oØ $× 1Ñ 1Ô1Ø%ñ�ð —‘×'Ñ'¨
Ô:Ø—‘×$Ñ$Ð%8ÀÐX\Ð$Ô]ò9 rD   c                ó¼  • U R                   R                  SXS9  U R                   R                  SXS9  U R                  n[        5       nSnUR                  [
        R                  L a   [        U5      nUR                  S5        GOUR                  [
        R                  L a–   [        U5      n[        U[        5      (       a/  UR                  (       a  UR                  nUR                  S5        O¡UR                  (       a#  UR                  S5        UR                  S5        OmUR                  S5        O[UR                  [
        R                   L a>  UR"                  S:w  a  g [%        U5      nUR&                  nUc  gUR                  S5        U(       d  g[)        UR                  U R                  S	S
9n U R+                  [-        U5      SS9nU GHû  nSU;   a  M  XƒR2                  ;   aÕ  [        UR&                  [4        R6                  [4        R8                  45      (       a  MV  UR2                  U   n	[;        [<        [>        5         XIR@                  -  nU	RB                  (       a  U(       d  U	RB                  n[;        [0        5         U	RD                  (       a  U(       d  U	RD                  nSSS5        SSS5        [G        UUUURH                  URJ                  UU RL                  (       + SS9n
U
=R@                  U-  sl         URO                  XŠ5        US:X  av  [;        [0        5         [Q        XR                  5       Vs/ s H8  n[        U[R        5      (       a  UO[U        UR"                  UR&                  S9PM:     snUl+        SSS5        U R                   R                  SXU S9  U R                   R                  SXU S9  GMþ     g! [         a     gf = f! [         a     gf = f! [         a     gf = f! [.        [0        4 a    Sn GNHf = f! , (       d  f       GNq= f! , (       d  f       GN{= fs  snf ! , (       d  f       N¼= f)zyHandle an attribute (assignment) node.

Parameters:
    node: The node to visit.
    annotation: A potential annotation.
r‡   rˆ   Úon_attribute_nodeNzmodule-attributezclass-attributezinstance-attributerI   Fr›   TrO   rÀ   r‹   rÏ   Ú__all__r£   rŽ   r�   rÑ   rÒ   ),r6   r•   rJ   r¸   rd   r   rà   r   ÚKeyErrorr»   rá   rÝ   r   Úis_classvarÚslicerW   ÚFUNCTIONrg   r   r7   r   rX   r   r   rö   rß   ry   ÚIfÚExceptHandlerr   r   r   r¯   rŒ   rÐ   r!   rR   rž   rK   r±   r   rx   r   Úexports)rL   rV   rÐ   r7   r¯   rþ   rW   rŒ   rg   Úexisting_memberrä   s              rB   Úhandle_attributeÚVisitor.handle_attributee  sŽ  € ð 	�‰×Ñ˜Y¨TÐÑ>Ø�‰×ÑÐ0°tÐÑHØ—‘ˆÜ“ˆØˆà�;‰;œ$Ÿ+™+Ò%ðÜ! $›�ð �J‰JÐ)Ö*Ø�[‰[œDŸJ™JÒ&ðÜ! $›�ô ˜*¤d×+Ñ+°
×0F×0Fà'×-Ñ-�
Ø—
‘
Ð,Õ-Ø——à—
‘
Ð,Ô-Ø—
‘
Ð/Õ0ð —
‘
Ð/Õ0à�[‰[œDŸM™MÒ)Ø�{‰{˜jÓ(ØðÜ*¨4Ó0�ð —]‘]ˆFØ‰~ØØ�J‰JÐ+Ô,æØä# D§J¡J°t·|±|ÐSXÑYˆð	Ø×+Ñ+¬H°T«NÀ4Ð+ÐHˆIô ˆDð �d‹{Ùà—~‘~Ó%ô ˜dŸk™k¬C¯F©F´C×4EÑ4EÐ+F×GÑGÙà"(§.¡.°Ñ"6�ÜÔ2Ô4DÕEØ×4Ñ4Ñ4�Fà&×0×0¾Ø$3×$=Ñ$=˜	Ü!¤.Õ1Ø*×5×5¾jØ)8×)CÑ)C˜J÷ 2÷ Fô "ØØØ%Ø—{‘{ØŸ/™/Ø#Ø ×-Ñ-Ô-Ø!ñ	ˆIð ×Ò Ñ&ÕØ×Ñ˜dÔ.à�yÓ ÜœnÕ-ô %4°D¿,¹,Ô$Gó&â$G˜Dô !+¨4´× 5Ñ 5™¼8ÀDÇIÁIÐVZ×VaÑVaÑ;bÒbÙ$Gñ&�F”N÷ .ð
 �O‰O× Ñ  °TÐPTÐ ÑUØ�O‰O× Ñ Ð!8¸tÐ[_Ð Ô`òU øôW ó Ùðûô ó Ùðûô( ó Ùðûô œ~Ð.ó 	Ø‹Ið	ú÷* 2Ö1ú÷ FÖEüò0&÷ .Õ-ús‹   Á+O Â'O+ Å+O; Æ?P ÉAP6Ê%P$Ê:P6Ì8QÍ?QÎQÏ
O(Ï'O(Ï+
O8Ï7O8Ï;
PÐPÐP!Ð P!Ð$
P3Ð.P6Ð6
Q	ÑQÑ
Q	c                ó&   • U R                  U5        g)zDVisit an assignment node.

Parameters:
    node: The node to visit.
N)r  r�   s     rB   Úvisit_assignÚVisitor.visit_assignÐ  s   € ð 	×Ñ˜dÕ#rD   c                ó`   • U R                  U[        UR                  U R                  S95        g)zNVisit an annotated assignment node.

Parameters:
    node: The node to visit.
r£   N)r  r   rÐ   rJ   r�   s     rB   Úvisit_annassignÚVisitor.visit_annassignØ  s'   € ð 	×Ñ˜dÔ$7¸¿¹ÐPT×P\ÑP\Ñ$]Õ^rD   c                ó(  • [        [        5         UR                  R                  S:H  =(       aA    U R                  R
                  =(       a$    [        UR                  [        R                  5      nU(       a|  U R                  R                  R                  [        XR                  5       Vs/ s H8  n[        U[        5      (       a  UO[        UR                  UR                   S9PM:     sn5        SSS5        gs  snf ! , (       d  f       g= f)zNVisit an augmented assignment node.

Parameters:
    node: The node to visit.
r  r£   N)r   rö   Útargetrõ   rJ   Ú	is_modulerÝ   Úopry   ÚAddr  r­   r   rx   r   rg   r7   )rL   rV   Úall_augmentrg   s       rB   Úvisit_augassignÚVisitor.visit_augassignà  sÆ   € ô ”nÕ%à—‘—‘ )Ñ+÷ 1Ø—L‘L×*Ñ*÷1ä˜tŸw™w¬¯©Ó0ð ö
 à—‘×$Ñ$×+Ñ+ô %4°D¿,¹,Ô$Góâ$G˜Dô !+¨4´× 5Ñ 5™¼8ÀDÇIÁIÐVZ×VaÑVaÑ;bÒbÙ$Gñô÷ &Ð%ùò÷ &Õ%ús   �BDÂ/?C>
Ã.DÃ>DÄ
Dc                ó  • [        UR                  [        R                  [        R                  45      (       a5  [        UR                  U R                  SS9n[        U5      S;   a  SU l	        U R                  U5        SU l	        g)z>Visit an "if" node.

Parameters:
    node: The node to visit.
N)r7   Ú	log_level>   r   útyping.TYPE_CHECKINGTF)rÝ   r7   ry   r&   ÚClassDefr   ÚtestrJ   rx   rK   r€   )rL   rV   Ú	conditions      rB   Úvisit_ifÚVisitor.visit_ifõ  sd   € ô �d—k‘k¤C§J¡J´·±Ð#=×>Ñ>Ü*¨4¯9©9¸T¿\¹\ÐUYÑZˆIÜ�9‹~Ð!JÓJØ$(�Ô!Ø×Ñ˜4Ô Ø!ˆÕrD   )rA   rJ   r9   r8   r6   r@   r:   r?   r;   r7   rK   )NNNNN)r?   rx   r@   r,   rA   rx   r6   r   r7   úModule | Noner8   úDocstringStyle | Parser | Noner9   úDocstringOptions | Noner:   úLinesCollection | Noner;   úModulesCollection | NoneÚreturnÚNone)rV   úast.ASTrP   Úboolr8  zDocstring | None)rV   zEast.FunctionDef | ast.AsyncFunctionDef | ast.ClassDef | ast.TypeAliasr^   ú
str | Noner8  úlist[TypeParameter])rV   z5ast.FunctionDef | ast.AsyncFunctionDef | ast.ClassDefr^   r<  r8  r=  )r8  r&   )rV   r:  r8  r9  )rV   z
ast.Moduler8  r9  )rV   zast.ClassDefr8  r9  )r¤   úlist[Decorator]r8  zset[str])r¤   r>  rÈ   r%   r8  r<  rn   )rV   z&ast.AsyncFunctionDef | ast.FunctionDefr¯   z
set | Noner8  r9  )rV   zast.FunctionDefr8  r9  )rV   zast.AsyncFunctionDefr8  r9  )rV   zast.TypeAliasr8  r9  )rV   z
ast.Importr8  r9  )rV   zast.ImportFromr8  r9  )rV   zast.Assign | ast.AnnAssignrÐ   zstr | Expr | Noner8  r9  )rV   z
ast.Assignr8  r9  )rV   zast.AnnAssignr8  r9  )rV   zast.AugAssignr8  r9  )rV   zast.Ifr8  r9  )(Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rI   rX   ÚsysÚversion_infory   ÚTypeVarr   Útype_varÚTypeVarTupleÚtype_var_tupleÚ	ParamSpecÚ
param_specr\   Ú__annotations__rk   r>   rC   r€   r–   rµ   r°   rË   rç   rë   rï   r÷   r  r  r  r  r!  r)  r1  Ú__static_attributes__Ú__classcell__)rM   s   @rB   r=   r=   ƒ   sÔ  ø‡ ñð !%Ø;?Ø59Ø37Ø7;ð:?àð:?ð ð:?ð ð	:?ð
 ð:?ð ð:?ð 9ð:?ð 3ð:?ð 1ð:?ð 5ð:?ð 
÷:?ð :?ðx ?D÷ 

ð ×Ñ˜7Ó"à�K‰KÐ*×3Ñ3Ø×ÑÐ/×>Ñ>Ø�M‰MÐ,×7Ñ7ðZ
Ð Ð"Vó 	
ð !%ñ		àWð	ð ð		ð
 !ö	ð2 !%ñ		àGð	ð ð		ð
 !õ	ô#ôKôôUô.3+ôjô$ö0h/ôT#ô5ð ×Ñ˜7Ó"ô"	iôHZô*"^ðN )-ðiaà(ðiað &ðiað 
õ	iaôV$ô_ô÷*"ò "rD   r=   )r?   rx   r@   r,   rA   rx   r6   zExtensions | Noner7   r3  r8   r4  r9   r5  r:   r6  r;   r7  r8  r&   )EÚ
__future__r   ry   rD  Ú
contextlibr   Útypingr   r   Ú)griffe._internal.agents.nodes.assignmentsr   r   Ú!griffe._internal.agents.nodes.astr	   r
   r   Ú(griffe._internal.agents.nodes.docstringsr   Ú%griffe._internal.agents.nodes.exportsr   Ú%griffe._internal.agents.nodes.importsr   Ú(griffe._internal.agents.nodes.parametersr   Úgriffe._internal.collectionsr   r   Úgriffe._internal.enumerationsr   r   Úgriffe._internal.exceptionsr   r   r   Úgriffe._internal.expressionsr   r   r   r   r   r   r   Ú griffe._internal.extensions.baser   r   Úgriffe._internal.modelsr    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Úpathlibr,   Ú#griffe._internal.docstrings.parsersr-   r.   r/   rº   r¼   rÛ   rC   r=   ro   rD   rB   Ú<module>r`     sW  ðõ #ã 
Û 
Ý ß 'ç S÷ñ õ
 CÝ AÝ FÝ Cß Kß Aß ]Ñ ]÷÷ ñ ÷ I÷÷ ÷ ó ö ÝçTÝ4ð Ø"Ø ñÐ ð
 /ð ,Ð,Ø �zØ"*¨JÐ!7Ø(0°*Ð'=Ø$˜:Ø)˜]ñÐ ð 8à$Ð&BÐC€ðð %)Ø Ø7;Ø15Ø/3Ø37ñ0Øð0àð0ð ð0ð
 "ð0ð ð0ð 5ð0ð /ð0ð -ð0ð 1ð0ð õ0÷f}	"ò }	"rD   