ó
    Ð]j  ã                  óò   • 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	  S SK
Jr  S SKJr  S SKJr  \(       a  S S	KJr  S S
KJr  \	R&                  4         SS jjr\	R*                  4       SS jjrg)é    )Úannotations)ÚPyCF_ONLY_AST)Úsuppress)ÚTYPE_CHECKING)ÚLogLevel)ÚBuiltinModuleError)Úsafe_get_annotation)Úlogger)ÚExpr)Ú	Docstringc                óB   • [         R                  4SS jjnU" XX#5        g)aZ  Log a warning when parsing a docstring.

This function logs a warning message by prefixing it with the filepath and line number.

Parameters:
    docstring: The docstring object.
    offset: The offset in the docstring lines.
    message: The message to log.

Returns:
    A function used to log parsing warnings if `name` was passed, else none.
c                ó@  •  U R                   R                  n[        [        UR                  5      nU" U SU R                  =(       d    SU-    SU 35        g ! [        [        4 a    Sn NU[         a'    SU R                   R
                  R                   S3n N„f = f)Nz<module>z	<module: Ú>Ú:r   z: )ÚparentÚrelative_filepathÚAttributeErrorÚ
ValueErrorr   ÚmoduleÚnameÚgetattrr
   ÚvalueÚlineno)Ú	docstringÚoffsetÚmessageÚ	log_levelÚprefixÚlogs         Ú^/home/mande/repo/quber/.venv/lib/python3.13/site-packages/griffe/_internal/docstrings/utils.pyÚwarnÚdocstring_warning.<locals>.warn&   s›   € ð	AØ×%Ñ%×7Ñ7ˆFô
 ”f˜iŸo™oÓ.ˆÙˆvˆh�a˜×)Ñ)×.¨Q°&Ñ8Ð9¸¸G¸9ÐEÕFøô ¤
Ð+ó 	 ØŠFÜ!ó 	AØ  ×!1Ñ!1×!8Ñ!8×!=Ñ!=Ð >¸aÐ@ŠFð	Aús   ‚A ÁBÁ--BÂBN©
r   r   r   Úintr   Ústrr   r   ÚreturnÚNone)r   Úwarning)r   r   r   r   r!   s        r    Údocstring_warningr)      s!   € ô& U]×TdÑTdö Gñ 	ˆ˜GÕ/ó    c           	     ó  • [        [        [        5         [        U SS[        SS9nUR
                  (       a3  [        UR
                  UR                  US9nU=(       d    U sSSS5        $  SSS5        U $ ! , (       d  f       U $ = f)a‘  Parse a string into a true name or expression that can be resolved later.

Parameters:
    annotation: The annotation to parse.
    docstring: The docstring in which the annotation appears.
        The docstring's parent is accessed to bind a resolver to the resulting name/expression.
    log_level: Log level to use to log a message.

Returns:
    The string unchanged, or a new name or expression.
ÚevalÚ é   )ÚmodeÚfilenameÚflagsÚoptimize)r   r   N)r   r   ÚSyntaxErrorÚcompiler   Úbodyr	   r   )Ú
annotationr   r   ÚcodeÚname_or_exprs        r    Úparse_docstring_annotationr9   3   s„   € ô  
ÜÜõ
ô �z¨¸Ä=Ð[\Ñ]ˆØ�9�9Ü.Ø—	‘	Ø ×'Ñ'Ø#ñˆLð
  ×- :÷
ñ 
ð
 ÷
ð Ð÷
ô 
ð Ðús   •AA6Á6
BNr#   )r6   r%   r   r   r   r   r&   z
str | Expr)Ú
__future__r   Úastr   Ú
contextlibr   Útypingr   Úgriffe._internal.enumerationsr   Úgriffe._internal.exceptionsr   Úgriffe._internal.expressionsr	   Úgriffe._internal.loggerr
   r   Úgriffe._internal.modelsr   r(   r)   Úerrorr9   © r*   r    Ú<module>rE      s™   ðõ #å Ý Ý  å 2Ý :Ý <Ý *æÝ1Ý1ð #×*Ñ*ð	0Øð0àð0ð ð0ð ð	0ð
 
õ0ðF #Ÿ.™.ðØðàðð ðð ö	r*   