
    i                    n    S SK Jr  S SKrS SKJr  S SKJr  S SKJr  \(       a  S SKJ	r	  S	S jr
S
SS jjrg)    )annotationsNunparse)TYPE_CHECKING)logger)Pathc                     U c  g[        U 5      $ )zGet the string representation of a node.

Parameters:
    node: The node to represent.

Returns:
    The representing code for the node.
Nr   )nodes    ^/home/james-whalen/.local/lib/python3.13/site-packages/griffe/_internal/agents/nodes/values.py	get_valuer      s     |4=    c                     [        U 5      $ ! [         aI  nSU  3nU(       a  USU SU R                   3-  nUSU 3-  n[        R                  " U5         SnAgSnAff = f)zSafely (no exception) get the string representation of a node.

Parameters:
    node: The node to represent.
    filepath: An optional filepath from where the node comes.

Returns:
    The representing code for the node.
zFailed to represent node z at :z: N)r   	Exceptionlinenor   	exception)r
   filepatherrormessages       r   safe_get_valuer      sl     -dV4hZq66GRw<!s   
 
A ?AA )r
   ast.AST | Nonereturn
str | None)N)r
   r   r   zstr | Path | Noner   r   )
__future__r   astr   typingr   griffe._internal.loggerr   pathlibr   r   r    r   r   <module>r       s&    # 
    *r   