
    h.                         S SK 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\	5      r " S S\5      rg)    N   )CythonTransform)EncodedString)Options)
PyrexTypes   )ExpressionWriter)warningc                   4    \ rS rSrSrS	S jrS rS rS rSr	g)
AnnotationWriter   zO
A Cython code writer for Python expressions in argument/variable annotations.
Nc                 J    [         R                  " U 5        Xl        SU l        g)zdescription is optional. If specified it is used in
warning messages for the nodes that don't convert to string properly.
If not specified then no messages are generated.
FN)r	   __init__description
incomplete)selfr   s     [/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Compiler/AutoDocTransforms.pyr   AnnotationWriter.__init__   s    
 	!!$'&    c                     U R                  S5        SU l        U R                  (       a/  [        UR                  SR                  U R                  5      SS9  g g )Nz<???>Tz5Failed to convert code to string representation in {}r   levelputr   r   r
   posformatr   nodes     r   
visit_NodeAnnotationWriter.visit_Node   sK    DHHKRR((*124 r   c                     U R                  S5        SU l        U R                  (       a/  [        UR                  SR                  U R                  5      SS9  g g )Nz<lambda>Tz7Failed to convert lambda to string representation in {}r   r   r   r   s     r   visit_LambdaNode!AnnotationWriter.visit_LambdaNode    sK    DHHMTT((*124 r   c                 N    U R                  UR                  R                  5        g N)r   stringvaluer   s     r   visit_AnnotationNode%AnnotationWriter.visit_AnnotationNode)   s    ""#r   )r   r   r%   )
__name__
__module____qualname____firstlineno____doc__r   r   r"   r(   __static_attributes__ r   r   r   r      s     44$r   r   c                      ^  \ rS rSrU 4S jrS rS rS rS rS r	   SS jr
S	 r    SS
 jrS rU 4S jrS rS rS rS rS rSrU =r$ )EmbedSignature-   c                 @   > [         TU ]  U5        S U l        S U l        g r%   )superr   
class_name
class_node)r   context	__class__s     r   r   EmbedSignature.__init__/   s    !r   c                 <    [        5       nUR                  U5      nU$ r%   )r	   writer   r   writerresults       r   	_fmt_exprEmbedSignature._fmt_expr4       !#d#r   c                 <    [        5       nUR                  U5      nU$ r%   )r   r<   r=   s       r   _fmt_annotationEmbedSignature._fmt_annotation:   rB   r   c                 ^    U R                   S   nUS:H  U l        US:H  U l        US:H  U l        g )Nzembedsignature.formatcpythonclinic)current_directivesis_format_cis_format_pythonis_format_clinic)r   signature_formats     r   _setup_formatEmbedSignature._setup_format@   s;    223JK+s2 0H < 0H <r   c                 
   UR                   nS nS nUR                  (       a  U R                  (       a  SnOUR                  (       a  U R                  (       a  SnOU R                  (       aB  UR
                  [        R                  La$  UR
                  R                  UR                   SS9nO=U R                  (       a,  UR                  (       d  U R                  UR
                  5      nUR                  (       a,  U R                  (       d  U R                  UR                  5      nUR                  (       a  U R                  UR                  5      nU(       a  USU-  -   nU(       a  USU-  -   nU$ U(       a  USU-  -   nU$ )Nz$selfz$typer   for_display: %sz = %sz=%s)nameis_self_argrM   is_type_argrK   typer   py_object_typedeclaration_coderL   
annotation	_fmt_typerD   defaultr@   )r   argarg_docr[   
defaultvals        r   _fmt_argEmbedSignature._fmt_argF   s   ((

??$$!__$$!xxz888((33CHH!3L"">>!^^CHH5
>>((!11#..A
;;4J*!45G!Wz%9:  !34Gr   c                     UR                   nUR                  (       a4  U R                  (       d#  U R                  UR                  5      nUSU-  -   nU$ )NrT   )rU   r[   rM   rD   )r   r^   r_   r[   s       r   _fmt_star_argEmbedSignature._fmt_star_argc   sC    ((>>((!11#..A
!Vj%89r   c                    / nU HI  n	U(       a  U	R                   R                  (       a  M'  U R                  U	5      n
UR                  U
5        MK     U(       a)  U R	                  U5      n
UR                  X2-   SU
-  5        OU(       a  UR                  X2-   S5        U(       a  UR                  US5        U(       a%  U R	                  U5      n
UR                  SU
-  5        U$ )Nz*%s*/z**%s)entryrV   ra   appendrd   insert)r   argsnpoargsnpargspargsnkargskargs	hide_selfarglistr^   r_   s              r   _fmt_arglistEmbedSignature._fmt_arglistk   s     CCII$9$9$9--,w'  ((/GNN6+UW_=NN6+S1NN7C(((/GNN6G+,r   c                    U[         R                  L a  g U R                  (       a  UR                  SSS9nU$ U R                  (       a{  S nUR
                  (       a  U R                  S   nO!UR                  (       a  UR                  5       nUc2  UR                  SSS9nUR                  SS5      R                  SS5      nU$ g )	N r   rR   c_string_type _rg   p)
r   rY   rK   rZ   rL   	is_stringrJ   
is_numericpy_type_namereplace)r   rX   coder[   s       r   r\   EmbedSignature._fmt_type   s    :,,,(((;DK""J~~!44_E
!..0
!,,RQ,?!\\#s3;;CE
r   c           
      J   U R                  X4XVXxUS9nSR                  U5      nU< SU< S3nU R                  (       a  U(       a	  U< SU< 3nU R                  (       dC  S nU	(       a  U R	                  U	5      nOU
(       a  U R                  U
5      nU(       a	  U< SU< 3nU$ )N)rr   z, ().z -> )rt   joinrK   rM   rD   r\   )r   cls_name	func_namerl   rm   rn   ro   rp   rq   return_exprreturn_typerr   rs   arglist_docfunc_docret_docs                   r   _fmt_signatureEmbedSignature._fmt_signature   s    
 ##6& $ 
 ii((+6"*H5H$$G..{;..5)17;r   c                     U R                   (       a  U R                  S   (       a  U$ U(       a2  U R                   (       a  SnOSn[        R                  " U5      nX1U4-  $ U R                   (       a  SnX1-  $ SnX1-  $ )Nbindingz	%s
--

%sz%s

%sz%s
--

z%s)rM   rJ   inspectcleandoc)r   	signaturenode_docdocfmts       r   _embed_signatureEmbedSignature._embed_signature   sz      T%<%<Y%GO$$'#''1H111$$% %% %%r   c                 P   > [         R                  (       d  U$ [        TU ]  U5      $ r%   )r   
docstringsr5   __call__)r   r   r9   s     r   r   EmbedSignature.__call__   s!    !!K7#D))r   c                     U R                   nU R                  nXl         UR                  U l         U R	                  U5        X l         X0l        U$ ! [         a    UR                   U l          N<f = fr%   )r6   r7   rU   AttributeErrorvisitchildren)r   r   oldnameoldclasss       r   visit_ClassDefNode!EmbedSignature.visit_ClassDefNode   sd    //??	."iiDO 	4 !"  	."ooDO	.s   A A.-A.c                     U$ r%   r0   r   s     r   r"   EmbedSignature.visit_LambdaNode   s    r   c                    U R                   S   (       d  U$ U R                  5         SnSnUR                  R                  (       ao  U R                  =(       a    UR
                  S:H  nU(       a.  S nUR
                  nU R                  (       a  U R                  nSnO/U R                  UR
                  pTOU R                  UR
                  pT[        USS5      n[        USS5      n[        UR                  5      U-
  U-
  nU R                  XEUR                  XhUR                  XqR                  UR                  S US9n	U	(       Ga4  U(       a<  U R                  (       a+  U R                  R                  R                  R                   n
OUR                  n
U
R"                  b  U
R"                  nO8U(       d/  [        US	S 5      b!  UR$                  R                  R"                  nOS nU R'                  X5      nUR                  R                  (       a  U(       d  UR                  R(                  b  [+        U5      U
l        U(       d2  [        US	S 5      b$  [+        U5      UR$                  R                  l        U$ )
NembedsignatureFr   Tnum_posonly_argsr   num_kwonly_args)r   r   rr   py_func)rJ   rO   ri   
is_specialr7   rU   rK   r6   getattrlenrl   r   star_argstarstar_argreturn_type_annotationrX   scopedocr   r   wrapperbase_cnamer   )r   r   is_constructorrr   r6   r   rm   rp   rn   r   
doc_holderold_docnew_docs                r   visit_DefNodeEmbedSignature.visit_DefNode   s   &&'78K	::  !__Hj1HN!
 II	## $I $I(,I$(OOTYY	$ 2A60!4TYY&(72''499T]]%%33	 ( 3	 $"2"2!__2277==
!ZZ
~~)$..#i(F(R,,,,00++I?G::((Ndjj>Z>Z>f
 "/w!7
!gdIt&D&P)6w)?""&r   c                    UR                   (       d  U$ U R                  S   (       d  U$ U R                  5         U R                  U R                  UR
                  R                  R                  UR
                  R                  UR                  S9nU(       a  UR                  R                  b  UR                  R                  nO1[        USS 5      b!  UR                  R                  R                  nOS nU R                  X#5      n[        U5      UR                  l        [        USS 5      nUb  [        U5      UR                  l        U$ )Nr   )r   r   )overridablerJ   rO   r   r6   
declaratorbaserU   rl   r   ri   r   r   r   r   r   )r   r   r   r   r   r   s         r   visit_CFuncDefNode!EmbedSignature.visit_CFuncDefNode  s   K&&'78K''OOT__1166OO  (( ( *	 zz~~)**..y$/;,,,,00++I?G*73DJJNdIt4G"$1'$:!r   c                    U R                   S   (       d  U$ U R                  5         UR                  nUR                  nUR                  nS nUR
                  S:X  a  U R                  (       as  UR                  R                  SSS9nUR                  R                  (       d  SU-  nOdUR                  R                  (       a  UR                  R                  S-   U-   nO,U R                  (       a  U R                  UR                  5      nUco  UR                   H_  nUR                  S:w  a  M  U R                  (       a  U R                  < SU< 3nUR                   nU(       d  MN  U R#                  U5      nMa     UbE  U< S	U< 3nU R%                  XR&                  5      n	U R(                  (       d  [+        U	5      Ul        U$ )
Nr   publicrw   r   rR   z'%s'r   __get__z: )rJ   rO   ri   bodyrU   
visibilityrK   rX   rZ   is_pyobjectis_extension_typemodule_namerL   r\   statsr6   r   rD   r   r   rM   r   )
r   r   ri   r   	prop_name	type_namestatret_annotationr   r   s
             r   visit_PropertyNode!EmbedSignature.visit_PropertyNode  se   &&'78K

yyJJ		x'!JJ777J	zz-- & 2IZZ11 %

 6 6 <y HI&& NN5::6	

99	)##+/??I FI!%!<!<!> $ 4 4^ DI #  $-y9I++IyyAG(()'2	r   )r6   r7   rK   rM   rL   )r   r   Nr   NF)r   r   Nr   NNNF)r*   r+   r,   r-   r   r@   rD   rO   ra   rd   rt   r\   r   r   r   r   r"   r   r   r   r/   __classcell__)r9   s   @r   r2   r2   -   sr    
=: 15%)$*& 37'+59!&	.&"*1f2! !r   r2   )r   Visitorr   StringEncodingr   rw   r   r   
CodeWriterr	   Errorsr
   r   r2   r0   r   r   <module>r      s6     $ )   ) $' $DS_ Sr   