+
    }i                        R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHt  ! R R]P                  4      t
R R ltR R	 ltRR
 R lltR# )z4Utilities related to attribute docstring extraction.)annotationsN)Anyc                  X   a  ] tR t^tR V 3R lltR V 3R lltR R ltR R ltR	tV ;t	# )
DocstringVisitorc                   V ^8  d   QhRR/# )   returnNone )formats   "u/Users/ahmad/.openclaw/workspace/my-crawler/.venv/lib/python3.14/site-packages/pydantic/_internal/_docs_extraction.py__annotate__DocstringVisitor.__annotate__   s     = =$ =    c                	N   < \         SV `  4        R V n        / V n        R V n        R # N)super__init__targetattrsprevious_node_type)self	__class__s   &r   r   DocstringVisitor.__init__   s$    "&%'
8<r   c                    V ^8  d   QhRRRR/# )r   nodezast.ASTr   r   r
   )r   s   "r   r   r      s      ' c r   c                	F   < \         SV `  V4      p\        V4      V n        V# r   )r   visittyper   )r   r   node_resultr   s   && r   r   DocstringVisitor.visit   s#    gmD)"&t*r   c                    V ^8  d   QhRRRR/# )r   r   zast.AnnAssignr   r   r
   )r   s   "r   r   r      s     ) )M )c )r   c                	    \        VP                  \        P                  4      '       d   VP                  P                  V n        R # R # r   )
isinstancer   astNameid)r   r   s   &&r   visit_AnnAssign DocstringVisitor.visit_AnnAssign   s+    dkk388,,++..DK -r   c                    V ^8  d   QhRRRR/# )r   r   zast.Exprr   r   r
   )r   s   "r   r   r      s     	 	x 	C 	r   c                	   \        VP                  \        P                  4      '       d   \        VP                  P                  \        4      '       d~   V P
                  \        P                  J d^   \        P                  ! VP                  P                  4      pV P                  '       d   W P                  V P                  &   R V n	        R # R # R # R # r   )r#   valuer$   Constantstrr   	AnnAssigninspectcleandocr   r   )r   r   	docstrings   && r   
visit_ExprDocstringVisitor.visit_Expr   s    tzz3<<004::++S11''3==8(()9)9:I{{{*3

4;;'DK 9 2 1r   )r   r   r   )
__name__
__module____qualname____firstlineno__r   r   r'   r2   __static_attributes____classcell__)r   s   @r   r   r      s&    = = 
)	 	r   r   c                    V ^8  d   QhRRRR/# )r   sourcez	list[str]r   r-   r
   )r   s   "r   r   r   )   s       s r   c                    \         P                  ! R P                  V 4      4      pVP                  R4      '       d   RV 2pV# ) zdef dedent_workaround():
) 	)textwrapdedentjoin
startswith)r;   dedent_sources   & r   _dedent_source_linesrE   )   s=    OOBGGFO4M,, 5]ODr   c                    V ^8  d   QhRRRR/# )r   cls	type[Any]r   zlist[str] | Noner
   )r   s   "r   r   r   4   s      I 2B r   c                   \         P                  ! 4       pV'       Ed8   \         P                  ! V4      \         P                  ! V 4      J d   VP                  p \         P                  ! V4      w  r4\         P
                  ! W2^,
          R 4      p\        V4      p \        P                  ! V4      pVP                  ^ ,          p\        V\        P                  4      '       d%   VP                  R8X  d   VP                  ^ ,          p\        V\        P                  4      '       d   VP                  V P                  8X  d   V# VP"                  pEK@  R#   \         d     Li ; i  \          d     L/i ; i)   Ndedent_workaround)r/   currentframe	getmodulef_lineno
findsourcegetblockrE   r$   parsebodyr#   FunctionDefnameClassDefr4   SyntaxErrorOSErrorf_back)	rG   framelnumlines_block_linesrD   
block_treestmts	   &        r   _extract_source_from_framer`   4   s"     "E
%U#w'8'8'==>>D+"--e4 &..uAXZ/@A 4[ A
+!$=!9J &??1-D!$88TYYJ]=]#yy|!$55$))s||:S**1  #    s$   E) E E&%E&)E76E7c               $    V ^8  d   QhRRRRRR/# )r   rG   rH   use_inspectboolr   zdict[str, str]r
   )r   s   "r   r   r   R   s!      Y T n r   c                L   V'       g   \         P                  R8  d    \        P                  ! V 4      w  r#M\        V 4      pV'       g   / # \        V4      p\        4       pVP                  \        P                  ! V4      4       VP                  #   \         d    / u # i ; i)a<  Map model attributes and their corresponding docstring.

Args:
    cls: The class of the Pydantic model to inspect.
    use_inspect: Whether to skip usage of frames to find the object and use
        the `inspect` module instead.

Returns:
    A mapping containing attribute names and their corresponding docstring.
)      )sysversion_infor/   getsourcelinesrW   r`   rE   r   r   r$   rQ   r   )rG   rb   r;   r\   rD   visitors   &&    r   extract_docstrings_from_clsrk   R   s     c&&'1
	..s3IFA
 ,C0	(0M GMM#))M*+==  	I	s   B B#"B#)F)__doc__
__future__r   r$   r/   rg   r@   typingr   NodeVisitorr   rE   r`   rk   r
   r   r   <module>rp      s>    : " 
  
  s :< r   