
    Jis                       d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZmZ d dlmZm Z m!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 erd dl:m;Z; d dl<m=Z=m>Z> d dlm?Z? ddddZ@	 dhdhddhddhdhdhdZA	 ddhZB	 ddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"dZC G d  d!      ZDy)#    )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               ^    t        | |||xs
 t               |||||	      j                         S )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	            q/var/www/html/BankruptcyAI-uat/bankruptcy-ai/venv/lib/python3.12/site-packages/griffe/_internal/agents/visitor.pyvisitrC   P   s>    L 'o')+)-
 jl
    c                      e Zd ZU dZ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d  fdZddd!dZej                  dk\  rVej                  e
j                  ej                  e
j                  ej                  e
j                  iZded	<   dd
	 	 	 	 	 d"dZndd
	 	 	 	 	 d#dZd$dZd%dZd%dZd&dZd'dZd(dZd)dZd*d+dZd,dZd-dZej                  dk\  rd.dZd/dZd0dZ	 d*	 	 	 	 	 d1dZ d2dZ!d3dZ"d4dZ#d5dZ$ xZ%S )6r=   zoThis class is used to instantiate a visitor.

    Visitors iterate on AST nodes to extract data from them.
    Nc
                   t         
|           || _        	 || _        	 || _        	 || _        	 || _        	 d| _        	 || _        	 |xs i | _	        	 |xs
 t               | _        	 |	xs
 t               | _        	 d| _        y)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   rH   zVisitor.__init__   s    2 	 +&"	%&0:%+='+/@P*3D3J,1A1V_EV05G5^K\K^&"'>rD   Fstrictc               r    t        ||      \  }}}|y t        |||| j                  | j                        S )NrM   )lineno	endlinenoparserparser_options)r   r$   r8   r9   )rK   noderN   valuerP   rQ   s         rB   _get_docstringzVisitor._get_docstring   sE    #0f#E vy=((11
 	
rD   )      z4Final[dict[type[ast.type_param], TypeParameterKind]]_type_parameter_kind_mapscopec                  |j                   D cg c]s  }t        |j                  | j                  t	        |         t        t        |dd       | j                  |      t        t        |dd       | j                  |            u c}S c c}w )Nboundr7   memberdefault_value)kindr]   default)type_paramsr*   namerY   typer   getattrrI   )rK   rT   r[   
type_params       rB   _get_type_parameterszVisitor._get_type_parameters   s    " #'"2"2  OO66tJ7GH-gj'4.PY]YeYenst/
OTB#||$		  s   A8B
c                   g S N )rK   rT   r[   s      rB   rh   zVisitor._get_type_parameters   s	     IrD   c                    t        | j                  dt        | j                        t        j
                  d      }| j                  |       | j                  j                  S )zBuild 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   rI   module)rK   top_nodes     rB   r>   zVisitor.get_module   sG     4996C<NVYVgVgrst

8||"""rD   c                V     t        | dt        |       | j                        |       y)ziExtend the base visit with extensions.

        Parameters:
            node: The node to visit.
        visit_N)rf   r
   generic_visitrK   rT   s     rB   rC   zVisitor.visit  s*     	Ex~./1C1CDTJrD   c                F    t        |      D ]  }| j                  |        y)zqExtend the base generic visit with extensions.

        Parameters:
            node: The node to visit.
        N)r	   rC   )rK   rT   childs      rB   r{   zVisitor.generic_visit  s$     "$' 	EJJu	rD   c           	     J   | j                   j                  d||        | j                   j                  d||        t        | j                  | j                  | j
                  | j                  |      | j                  | j                  d      x| _	        }| j                   j                  d|||        | j                   j                  d||| 	       | j                  |       | j                   j                  d
|||        | j                   j                  d||| 	       y)zWVisit a module node.

        Parameters:
            node: The node to visit.
        on_noderT   agenton_module_nodestatic)rd   r@   r7   	docstringr:   r;   analysison_instancerT   objr   on_module_instance)rT   modr   
on_memberson_module_membersN)r6   callr&   r?   r@   r7   rV   r:   r;   rI   r{   )rK   rT   rw   s      rB   visit_modulezVisitor.visit_module  s    	YT>-DE &!!]];;))$/!22#66!
 	
v 	]6N1&PTU4 \&M0ttTrD   c                     j                   j                  d|         j                   j                  d|        g }|j                  r>|j                  d   j                  }|j	                   fd|j                  D               n|j                  }|j
                  D cg c]$  }t        | j                  |j                        & }}|j                  D ci c];  }|j                  |j                  t        |j                   j                        = }}t        |j                  ||j                   j                  |      |t!         j#                  ||j                  	       || j$                   d

      }|xj&                   j)                  |      z  c_         j                  j+                  |j                  |       | _         j                   j                  d||         j                   j                  d||         j-                  |        j                   j                  d||         j                   j                  d||         j                  j.                   _        yc c}w c c}w )zaVisit a class definition node.

        Parameters:
            node: The node to visit.
        r   r   on_class_noder   c              3     K   | ]<  }t        t        |j                  d       |j                  |j                         > yw)Fr7   parse_stringsrP   rQ   N)r#   r   rI   rP   
end_lineno).0decorator_noderK   s     rB   	<genexpr>z)Visitor.visit_classdef.<locals>.<genexpr>9  sH       # 't||[`a)00,77 s   AAr^   Nr7   rZ   r   )
rd   rP   rQ   r   
decoratorstype_parametersbaseskeywordsruntimer   r   r   on_class_instance)rT   clsr   r   on_class_members)r6   r   decorator_listrP   extendr   r   rI   rd   r   argr   rU   r"   r   rV   r+   rh   rJ   labelsdecorators_to_labels
set_memberr{   r7   )	rK   rT   r   rP   baser   kwr   class_s	   `        rB   visit_classdefzVisitor.visit_classdef,  s4    	YT>_4tD ')
((+22F  '+&9&9  [[F _c^h^hiVZ$T$,,tyyQiiTXTaTa
NPegekekewBFF*288DLLII
 
 oo))$/!*D,E,EdRVR[R[,E,\])))
 	22:>>		62]6N0ttT4 \&M/ddS||**5 j
s   $)I=J/.Jc                    t               }|D ]D  }|j                  }|t        v r|j                  t        |          0|t        v s9|t        |   z  }F |S )zBuild 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)rK   r   r   	decoratorr   s        rB   r   zVisitor.decorators_to_labelsa  s`     # 	;I%33M 22

-m<="33+M::	; rD   c                   |D ]s  }	 |j                   j                  dd      \  }}|dv xrE ||j                  k(  xr4 | j                  j                  |j                        j                  d      }|sq|c S  y# t        $ r Y w xY w)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"`.
        .rn   >   setterdeleterr0   N)r   rsplit
ValueErrorpathrI   
get_memberrd   
has_labels)rK   r   functionr   r   prop_functionproperty_setter_or_deleters          rB   get_base_propertyzVisitor.get_base_propertys  s     $ 	%I&/&=&=&D&DS!&L#m !66 RHMM)RLL++HMM:EEjQ '
 *$$	%   s   A::	BBc                
   | j                   j                  d||        | j                   j                  d||        |xs
 t               }g }d}|j                  r|j                  d   j                  }|j                  D ]e  }t        || j                  d      }|t        ||j                  |j                        }|j                  |       ||j                  t        v z  }g n|j                  }|| j                  |      z  }d	|v rt        |j                  dt        |j                   | j                  |j                  
      |j                  |j                  | j#                  |      | j$                   d      }	|	xj&                  |z  c_        | j                  j)                  |j                  |	       | j                   j                  d||	|        | j                   j                  d||	|        yt+        t-        |j.                        D 
cg c]^  \  }
}}}t1        |
|t        || j                  |j                  
      t3        |t4              r|nt        || j                  d            ` c}}}}
 }t7        |j                  ||j                  |t        |j                   | j                  |j                  
      |t9        | j;                  ||j                         | j#                  |      | j$                   | j                  d      }| j=                  ||      }|r4| j                  j>                  |j                     j                  |       n=|rs| j                  j@                  |j                     }|dk(  r#||_!        |j&                  jE                  d       n|dk(  r||_#        |j&                  jE                  d       n| j                  j)                  |j                  |       | j                  jH                  tJ        jL                  tJ        jN                  hv rl| j                  j>                  |j                     rI| j                  j>                  |j                     |_        | j                  j>                  |j                  = |xj&                  |z  c_        | j                   j                  d|||        | j                   j                  d|||        | j                  jH                  tJ        jN                  u rD|j                  dk(  r4|| _        | jQ                  |       | j                  jR                  | _        yyyc c}}}}
w )zHandle 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   r^   r   rd   rU   
annotationrP   rQ   r   r   r   r   r   on_attribute_instancerT   attrr   )ra   r   rb   rZ   )rd   rP   rQ   
parametersreturnsr   r   r   r   r7   r   r   writabler   	deletableon_function_instance)rT   funcr   rH   )*r6   r   r   r   rP   r   rI   r#   r   appendr   typing_overloadr   r!   rd   r   r   rV   rJ   r   r   r(   r   argsr'   
isinstancert   r%   r+   rh   r   	overloadsmembersr   r   r   ra   r   MODULECLASSr{   r7   )rK   rT   r   r   overloadrP   r   decorator_valuer   	attributerd   r   ra   rb   r   r   property_functionbase_propertys                     rB   handle_functionzVisitor.handle_function  s    	YT>/d$G35 
((+22F"&"5"5 
G"5nT\\in"o"*%#)00,77	
 !!),I33FF
G [[F$++J77!YY.t||DLLY]YbYbc{{//--d3 ---!	I &LL##DIIy9OO  TyPT UOO  !8t)[_ `   8Fdii7P
 
 4D*dG 2:dll[_[d[de!'3/ $,WT\\Y^_


 oo!'T\\RVR[R[\!*D,E,EdRVR[R[,E,\]))$/)))<<
 !22:xHLL""8==188B'+||';';DII'FM H,'/$$$((4"i/(0%$$((5LL##DIIx8||  T[[$**$==$,,BXBXYaYfYfBg%)\\%;%;HMM%J"LL**8==96!]84P3$XUYZ<<

*x}}
/J#DLt$<<..DL 0K*c
s   A#U!c                &    | j                  |       y)zdVisit a function definition node.

        Parameters:
            node: The node to visit.
        Nr   r|   s     rB   visit_functiondefzVisitor.visit_functiondef  s     	T"rD   c                ,    | j                  |dh       y)zkVisit an async function definition node.

        Parameters:
            node: The node to visit.
        async)r   Nr   r|   s     rB   visit_asyncfunctiondefzVisitor.visit_asyncfunctiondef  s     	T7)4rD   c                   | j                   j                  d||        | j                   j                  d||        |j                  j                  }t	        |j
                  | j                  |      }	 | j                  t        |      d      }t        |||j                  |j                  t        | j                  ||       || j                  d	
      }| j                  j!                  ||       | j                   j                  d|||        | j                   j                  d|||        y# t        t        f$ r d}Y w xY w)zgVisit a type alias node.

            Parameters:
                node: The node to visit.
            r   r   on_type_alias_noder^   TrM   NrZ   r   )rd   rU   rP   rQ   r   r   r7   r   r   r   on_type_alias_instance)rT   
type_aliasr   )r6   r   rd   idr   rU   rI   rV   r   r   AttributeErrorr)   rP   r   r+   rh   r   )rK   rT   rd   rU   r   r   s         rB   visit_typealiaszVisitor.visit_typealias  s,    OO  T BOO  !5D M 99<<D'

4<<PTUE! //t/L	 #{{// .0I0I$VZ0I0[ \#||!	J LL##D*5OO  TzQU VOO  !9Q[cg h ">2 ! 	!s   6D5 5E	E	c           	        |j                   D ]  }|j                  r|j                  n|j                  j                  dd      d   }|j                  xs |j                  dd      d   }|| j                  j
                  |<   t        |||j                  |j                  | j                   d      }| j                  j                  ||       | j                  j                  d|||         y)	zXVisit an import node.

        Parameters:
            node: The node to visit.
        r   rn   r   r   rP   rQ   r   r   on_alias_instancealiasrT   r   N)namesasnamerd   splitrI   importsr    rP   r   rJ   r   r6   r   rK   rT   rd   
alias_path
alias_namer   s         rB   visit_importzVisitor.visit_import,  s     JJ 	ZD&*kktyysA7Nq7QJC
(8(8a(@(CJ/9DLL  ,{{// ---!E LL##J6OO  !4ETX Y	ZrD   c           	        |j                   D ]]  }|j                  s<|j                  dk(  r-|j                  s!| j                  j                  j
                  rLt        ||| j                  j                        }|j                  dk(  r%|j                  dd      }|j                  dd      }n3|j                  xs |j                  }|| j                  j                  |<   || j                  j                   d| k7  st        |||j                  |j                  | j                   d      }| j                  j                  ||       | j                   j#                  d	||| 
       ` y)z_Visit an "import from" node.

        Parameters:
            node: The node to visit.
        rn   *r   /z.* r   r   r   r   N)r   rw   levelr   rI   is_init_moduler   rd   replacer   r   r    rP   r   rJ   r   r6   r   r   s         rB   visit_importfromzVisitor.visit_importfromA  s5    JJ 	^D;;4::?4;;4<<K^K^KmKm
 -dD$,,:M:MNJyyC'//S9
'//b9
![[5DII
3=$$Z0  1 12!J<@@;;"oo $ 1 11% ''
E:$$%8DX\$]9	^rD   c                F   | j                   j                  d||        | j                   j                  d||        | j                  }t               }d}|j                  t
        j                  u r	 t        |      }|j                  d       n|j                  t
        j                  u r	 t        |      }t        |t              r*|j                  r|j                  }|j                  d       n|j                  r#|j                  d       |j                  d       nj|j                  d       nX|j                  t
        j                   u r<|j"                  dk7  ry	 t%        |      }|j&                  }|y|j                  d       |syt)        |j                  | j                  d	
      }	 | j+                  t-        |      d      }|D ]  }d|v r	||j2                  v rt        |j&                  t4        j6                  t4        j8                  f      rL|j2                  |   }	t;        t<        t>              5  ||	j@                  z  }|	jB                  r|s|	jB                  }t;        t0              5  |	jD                  r|s|	jD                  }ddd       ddd       tG        ||||jH                  |jJ                  || jL                   d      }
|
xj@                  |z  c_         |jO                  ||
       |dk(  rrt;        t0              5  tQ        || j                        D cg c]5  }t        |tR              r|n tU        |j"                  |j&                        7 c}|_+        ddd       | j                   j                  d||
|        | j                   j                  d||
|         y# t        $ r Y yw xY w# t        $ r Y yw xY w# t        $ r Y yw xY w# t.        t0        f$ r d}Y (w xY w# 1 sw Y   ixY w# 1 sw Y   nxY wc c}w # 1 sw Y   xY w)zHandle an attribute (assignment) node.

        Parameters:
            node: The node to visit.
            annotation: A potential annotation.
        r   r   on_attribute_nodeNzmodule-attributezclass-attributezinstance-attributerH   Fr   TrM   r   r   r   __all__r   r   r   r   r   ),r6   r   rI   r   ra   r   r   r   KeyErrorr   r   r   r   is_classvarslicerU   FUNCTIONrd   r   r7   r   rV   r   r   r   r   ru   IfExceptHandlerr   r   r   r   r   r   r!   rP   r   rJ   r   r   rt   r   exports)rK   rT   r   r7   r   r   rU   r   rd   existing_memberr   s              rB   handle_attributezVisitor.handle_attributee  s    	YT>0t4H;;$++%!$ JJ)*[[DJJ&!$ *d+
0F0F'--


,-

,-

/0 

/0[[DMM){{j(*40 ]]F~JJ+,#DJJt||SXY	++HTN4+HI  *	aD d{v~~% dkkCFFC4E4E+FG"(.."624DE Do444F&00$3$=$=	!.1 D*55j)8)C)CJDD "%{{//# ---!	I &dI.y n-  %4D$,,$G&  !+4 58DIIVZVaVa;bb&FN
 OO  TyPT UOO  !8t)[_ `U*	aW    (   ~. 	I	*D DD D0& s   2N3 ,O O 0O  =9P6O8PP':P!P3	N?>N?	OO	OO O54O58P=PP	PP 	c                &    | j                  |       y)z\Visit an assignment node.

        Parameters:
            node: The node to visit.
        N)r	  r|   s     rB   visit_assignzVisitor.visit_assign  s     	d#rD   c                f    | j                  |t        |j                  | j                               y)zfVisit an annotated assignment node.

        Parameters:
            node: The node to visit.
        r   N)r	  r   r   rI   r|   s     rB   visit_annassignzVisitor.visit_annassign  s'     	d$7PTP\P\$]^rD   c           
        t        t              5  |j                  j                  dk(  xr< | j                  j
                  xr$ t        |j                  t        j                        }|rx| j                  j                  j                  t        || j                        D cg c]5  }t        |t              r|n t        |j                  |j                         7 c}       ddd       yc c}w # 1 sw Y   yxY w)zfVisit an augmented assignment node.

        Parameters:
            node: The node to visit.
        r   r   N)r   r   targetr   rI   	is_moduler   opru   Addr  r   r   rt   r   rd   r7   )rK   rT   all_augmentrd   s       rB   visit_augassignzVisitor.visit_augassign  s     n% 	)+ 1LL**1tww0 
 $$++ %4D$,,$G  !+4 58DIIVZVaVa;bb	 		 	s   BC0!:C+
C0+C00C9c                   t        |j                  t        j                  t        j                  f      r6t        |j                  | j                  d      }t        |      dv rd| _	        | j                  |       d| _	        y)zVVisit an "if" node.

        Parameters:
            node: The node to visit.
        N)r7   	log_level>   typing.TYPE_CHECKINGr   TF)r   r7   ru   r&   ClassDefr   testrI   rt   rJ   r{   )rK   rT   	conditions      rB   visit_ifzVisitor.visit_if  sa     dkkCJJ#=>*499T\\UYZI9~!JJ$(!4 !rD   )NNNNN)r?   rt   r@   r,   rA   rt   r6   r   r7   Module | Noner8   DocstringStyle | Parser | Noner9   DocstringOptions | Noner:   LinesCollection | Noner;   ModulesCollection | NonereturnNone)rT   ast.ASTrN   boolr!  zDocstring | None)rT   zEast.FunctionDef | ast.AsyncFunctionDef | ast.ClassDef | ast.TypeAliasr[   
str | Noner!  list[TypeParameter])rT   z5ast.FunctionDef | ast.AsyncFunctionDef | ast.ClassDefr[   r%  r!  r&  )r!  r&   )rT   r#  r!  r"  )rT   z
ast.Moduler!  r"  )rT   zast.ClassDefr!  r"  )r   list[Decorator]r!  zset[str])r   r'  r   r%   r!  r%  rj   )rT   z&ast.AsyncFunctionDef | ast.FunctionDefr   z
set | Noner!  r"  )rT   zast.FunctionDefr!  r"  )rT   zast.AsyncFunctionDefr!  r"  )rT   zast.TypeAliasr!  r"  )rT   z
ast.Importr!  r"  )rT   zast.ImportFromr!  r"  )rT   zast.Assign | ast.AnnAssignr   zstr | Expr | Noner!  r"  )rT   z
ast.Assignr!  r"  )rT   zast.AnnAssignr!  r"  )rT   zast.AugAssignr!  r"  )rT   zast.Ifr!  r"  )&__name__
__module____qualname____doc__rH   rV   sysversion_inforu   TypeVarr   type_varTypeVarTupletype_var_tuple	ParamSpec
param_specrY   __annotations__rh   r>   rC   r{   r   r   r   r   r   r   r   r   r   r   r	  r  r  r  r  __classcell__)rL   s   @rB   r=   r=      s    !%;?59377;:?:? :? 	:?
 :? :? 9:? 3:? 1:? 5:? 
:?x ?D 

 7"KK*33/>>MM,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?   rt   r@   r,   rA   rt   r6   zExtensions | Noner7   r  r8   r  r9   r  r:   r  r;   r   r!  r&   )E
__future__r   ru   r,  
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=   rk   rD   rB   <module>rG     sW   # 
 
  ' S 
 C A F C K A ] ]   I    T4 "  
 / ,, z"*J!7(0*'=$:)]  8$&BC %) 7;15/337000 0
 "0 0 50 /0 -0 10 0f}	" }	"rD   