
    i                    4    S SK Jr  S SKrSS.     SS jjrg)    )annotationsNF)strictc                  [        U [        R                  5      (       a  U R                  nO~U(       dv  U R                  (       ae  [        U R                  [
        5      (       aF  [        U R                  S   [        R                  5      (       a  U R                  S   R                  nOg[        U[        R                  5      (       aB  [        UR                  [        5      (       a#  UR                  UR                  UR                  4$ g)zExtract a docstring.

Parameters:
    node: The node to extract the docstring from.
    strict: Whether to skip searching the body (functions).

Returns:
    A tuple with the value and line numbers of the docstring.
r   )NNN)

isinstanceastExprvaluebodylistConstantstrlineno
end_lineno)noder   docs      b/home/james-whalen/.local/lib/python3.13/site-packages/griffe/_internal/agents/nodes/docstrings.pyget_docstringr      s     $!!jj		jD&A&AjQUQZQZ[\Q]_b_g_gFhFhiil  #s||$$CIIs)C)Cyy#**cnn44    )r   zast.ASTr   boolreturnz)tuple[str | None, int | None, int | None])
__future__r   r   r    r   r   <module>r      s3    # 
 
  /	r   