Ë
    Æ[;j0  ã                   ó€   — d dl Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	l
mZ  G d
„ de	«      Z G d„ de«      Zy)é    Né   )ÚCythonTransform)ÚEncodedString)ÚOptions)Ú
PyrexTypesé   )ÚExpressionWriter)Úwarningc                   ó*   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zy)ÚAnnotationWriterzW
    A Cython code writer for Python expressions in argument/variable annotations.
    Nc                 óJ   — t        j                  | «       || _        d| _        y)zÃdescription 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     újG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Compiler/AutoDocTransforms.pyr   zAnnotationWriter.__init__   s!   € ô
 	×!Ñ! $Ô'Ø&ˆÔØˆ�ó    c                 ó°   — | j                  d«       d| _        | j                  r2t        |j                  dj                  | j                  «      d¬«       y y )Nz<???>Tz5Failed to convert code to string representation in {}r   ©Úlevel©Úputr   r   r
   ÚposÚformat©r   Únodes     r   Ú
visit_NodezAnnotationWriter.visit_Node   sK   € Ø�‰�ÔØˆŒØ×ÒÜ�D—H‘HØK×RÑRØ×(Ñ(ó*Ø12ö4ð r   c                 ó°   — | j                  d«       d| _        | j                  r2t        |j                  dj                  | j                  «      d¬«       y y )Nz<lambda>Tz7Failed to convert lambda to string representation in {}r   r   r   r   s     r   Úvisit_LambdaNodez!AnnotationWriter.visit_LambdaNode    sK   € à�‰�ÔØˆŒØ×ÒÜ�D—H‘HØM×TÑTØ×(Ñ(ó*Ø12ö4ð r   c                 óN   — | j                  |j                  j                  «       y ©N)r   ÚstringÚvaluer   s     r   Úvisit_AnnotationNodez%AnnotationWriter.visit_AnnotationNode)   s   € Ø�‰�—‘×"Ñ"Õ#r   r!   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r$   © r   r   r   r      s   „ ñó ò4ò4ó$r   r   c                   óŽ   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	 	 	 dd„Z	d„ Z
	 	 	 	 dd	„Zd
„ Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚEmbedSignaturec                 ó@   •— t         ‰| �  |«       d | _        d | _        y r!   )Úsuperr   Ú
class_nameÚ
class_node)r   ÚcontextÚ	__class__s     €r   r   zEmbedSignature.__init__/   s   ø€ Ü‰Ñ˜Ô!ØˆŒØˆ�r   c                 ó@   — t        d¬«      }|j                  |«      }|S )NT)Úallow_unknown_nodes)r	   Úwrite©r   r   ÚwriterÚresults       r   Ú	_fmt_exprzEmbedSignature._fmt_expr4   s   € Ü!°dÔ;ˆØ—‘˜dÓ#ˆàˆr   c                 ó<   — t        «       }|j                  |«      }|S r!   )r   r4   r5   s       r   Ú_fmt_annotationzEmbedSignature._fmt_annotation:   s   € Ü!Ó#ˆØ—‘˜dÓ#ˆàˆr   c                 ó^   — | j                   d   }|dk(  | _        |dk(  | _        |dk(  | _        y )Nzembedsignature.formatÚcÚpythonÚclinic)Úcurrent_directivesÚis_format_cÚis_format_pythonÚis_format_clinic)r   Úsignature_formats     r   Ú_setup_formatzEmbedSignature._setup_format@   s;   € Ø×2Ñ2Ð3JÑKÐØ+¨sÑ2ˆÔØ 0°HÑ <ˆÔØ 0°HÑ <ˆÕr   c                 óŒ  — |j                   }d }d }|j                  r| j                  r¡d}nž|j                  r| j                  r†d}nƒ| j                  rD|j
                  t        j                  ur[|j
                  j                  |j                   d¬«      }n3| j                  r'|j                  s| j                  |j
                  «      }|j                  r'| j                  s| j                  |j                  «      }|j                  r| j                  |j                  «      }|r|d|z  z   }|r|d|z  z   }|S |r|d|z  z   }|S )Nz$selfz$typer   ©Úfor_displayú: %sz = %sz=%s)ÚnameÚis_self_argrB   Úis_type_argr@   Útyper   Úpy_object_typeÚdeclaration_coderA   Ú
annotationÚ	_fmt_typer:   Údefaultr8   )r   ÚargÚarg_docrO   Ú
defaultvals        r   Ú_fmt_argzEmbedSignature._fmt_argF   s  € Ø—(‘(ˆØˆ
Øˆ
Ø�?Š?Ø×$Ò$Ø!‘Ø�_Š_Ø×$Ò$Ø!‘Ø×ÒØ�x‰xœz×8Ñ8Ñ8ØŸ(™(×3Ñ3°C·H±HÈ!Ð3ÓL‘Ø×"Ò"Ø—>’>Ø!Ÿ^™^¨C¯H©HÓ5�
Ø�>Š>Ø×(Ò(Ø!×1Ñ1°#·.±.ÓA�
Ø�;Š;ØŸ™¨¯©Ó4ˆJÙØ ¨*Ñ!4Ñ5ˆGÙØ! W¨zÑ%9Ñ:�ð ˆñ Ø ¨Ñ!3Ñ4ˆGØˆr   c                 ó”   — |j                   }|j                  r/| j                  s#| j                  |j                  «      }|d|z  z   }|S )NrH   )rI   rO   rB   r:   )r   rR   rS   rO   s       r   Ú_fmt_star_argzEmbedSignature._fmt_star_argc   sC   € Ø—(‘(ˆØ�>Š>Ø×(Ò(Ø!×1Ñ1°#·.±.ÓA�
Ø! V¨jÑ%8Ñ9�Øˆr   c                 óŠ  — g }|D ]=  }	|r|	j                   j                  rŒ| j                  |	«      }
|j                  |
«       Œ? |r*| j	                  |«      }
|j                  ||z   d|
z  «       n|r|j                  ||z   d«       |r|j                  |d«       |r%| j	                  |«      }
|j                  d|
z  «       |S )Nz*%sÚ*Ú/z**%s)ÚentryrJ   rU   ÚappendrW   Úinsert)r   ÚargsÚnpoargsÚnpargsÚpargsÚnkargsÚkargsÚ	hide_selfÚarglistrR   rS   s              r   Ú_fmt_arglistzEmbedSignature._fmt_arglistk   s¸   € ð ˆÛˆCÙ C§I¡I×$9Ó$9ØŸ-™-¨Ó,�Ø—‘˜wÕ'ð ñ Ø×(Ñ(¨Ó/ˆGØ�N‰N˜6 GÑ+¨U°W©_Õ=ÙØ�N‰N˜6 GÑ+¨SÔ1ÙØ�N‰N˜7 CÔ(ÙØ×(Ñ(¨Ó/ˆGØ�N‰N˜6 GÑ+Ô,Øˆr   c                 ój  — |t         j                  u ry | j                  r|j                  dd¬«      }|S | j                  rsd }|j
                  r| j                  d   }n|j                  r|j                  «       }|€5|j                  dd¬«      }|j                  dd«      j                  dd«      }|S y )	NÚ r   rF   Úc_string_typeÚ Ú_rY   Úp)
r   rM   r@   rN   rA   Ú	is_stringr?   Ú
is_numericÚpy_type_nameÚreplace)r   rL   ÚcoderO   s       r   rP   zEmbedSignature._fmt_type€   s±   € Ø”:×,Ñ,Ñ,ØØ×ÒØ×(Ñ(¨¸Ð(Ó;ˆDØˆKØ×"Ò"ØˆJØ�~Š~Ø!×4Ñ4°_ÑE‘
Ø—’Ø!×.Ñ.Ó0�
ØÐ!Ø×,Ñ,¨R¸QÐ,Ó?�Ø!Ÿ\™\¨#¨sÓ3×;Ñ;¸CÀÓE�
ØÐØr   c           	      ó  — | j                  |||||||¬«      }dj                  |«      }|›d|›d�}| j                  r	|r|›d|›�}| j                  s2d }|	r| j	                  |	«      }n|
r| j                  |
«      }|r|›d|›�}|S )N)rd   z, Ú(Ú)Ú.z -> )rf   Újoinr@   rB   r:   rP   )r   Úcls_nameÚ	func_namer^   r_   r`   ra   rb   rc   Úreturn_exprÚreturn_typerd   re   Úarglist_docÚfunc_docÚret_docs                   r   Ú_fmt_signaturezEmbedSignature._fmt_signature’   sœ   € ð
 ×#Ñ#Ø�'˜6 5¨&°%Øð $ó 
ˆð —i‘i Ó(ˆÚ(ª+Ð6ˆØ×Ò¡Ú"*©HÐ5ˆHØ×$Ò$ØˆGÙØ×.Ñ.¨{Ó;‘ÙØŸ.™.¨Ó5�ÙÚ)1±7Ð;�Øˆr   c                 óÎ   — | j                   r| j                  d   r|S |r-| j                   rd}nd}t        j                  |«      }|||fz  S | j                   rd}||z  S d}||z  S )NÚbindingz	%s
--

%sz%s

%sz%s
--

z%s)rB   r?   ÚinspectÚcleandoc)r   Ú	signatureÚnode_docÚdocfmts       r   Ú_embed_signaturezEmbedSignature._embed_signature©   s€   € Ø× Ò  T×%<Ñ%<¸YÒ%GØˆOÙØ×$Ò$Ø'‘à#�Ü×'Ñ'¨Ó1ˆHØ˜Y¨Ð1Ñ1Ð1à×$Ò$Ø%�ð ˜IÑ%Ð%ð �Ø˜IÑ%Ð%r   c                 óF   •— t         j                  s|S t        ‰| �  |«      S r!   )r   Ú
docstringsr-   Ú__call__)r   r   r1   s     €r   r‰   zEmbedSignature.__call__º   s!   ø€ Ü×!Ò!ØˆKä‘7Ñ# DÓ)Ð)r   c                 óæ   — | j                   }| j                  }|| _        	 |j                  | _         | j	                  |«       || _         || _        |S # t        $ r |j                   | _         Y Œ=w xY wr!   )r.   r/   rI   ÚAttributeErrorÚvisitchildren)r   r   ÚoldnameÚoldclasss       r   Úvisit_ClassDefNodez!EmbedSignature.visit_ClassDefNodeÀ   sj   € Ø—/‘/ˆØ—?‘?ˆØˆŒð	.à"Ÿi™iˆDŒOð 	×Ñ˜4Ô Ø!ˆŒØ"ˆŒØˆøô ò 	.à"Ÿo™oˆDŽOð	.ús   ¡A ÁA0Á/A0c                 ó   — |S r!   r)   r   s     r   r   zEmbedSignature.visit_LambdaNodeÏ   s   € àˆr   c                 óŒ  — | j                   d   s|S | j                  «        d}d}|j                  j                  ra| j                  xr |j
                  dk(  }|r)d }|j
                  }| j                  r@| j                  }d}n1| j                  |j
                  }}n| j                  |j
                  }}t        |dd«      }t        |dd«      }t        |j                  «      |z
  |z
  }| j                  |||j                  |||j                  ||j                  |j                  d |¬«      }	|	�r|r7| j                  r+| j                  j                  j                  j                   }
n|j                  }
|
j"                  �|
j"                  }n2|s.t        |d	d «      �!|j$                  j                  j"                  }nd }| j'                  |	|«      }|j                  j                  r|s|j                  j(                  �t+        |«      |
_        |s1t        |d	d «      �$t+        |«      |j$                  j                  _        |S )
NÚembedsignatureFr   TÚnum_posonly_argsr   Únum_kwonly_args)ry   rz   rd   Úpy_func)r?   rD   r[   Ú
is_specialr/   rI   r@   r.   ÚgetattrÚlenr^   r~   Ústar_argÚstarstar_argÚreturn_type_annotationrL   ÚscopeÚdocr•   r†   Úwrapperbase_cnamer   )r   r   Úis_constructorrd   r.   rx   r_   rb   r`   rƒ   Ú
doc_holderÚold_docÚnew_docs                r   Úvisit_DefNodezEmbedSignature.visit_DefNodeÓ   sð  € Ø×&Ñ&Ð'7Ò8ØˆKØ×ÑÔàˆØˆ	Ø�:‰:× Ò Ø!Ÿ_™_ÒH°·±¸jÑ1HˆNÙØ!�
Ø ŸI™I�	Ø×#Ò#Ø $§¡�IØ $‘Ià(,¯©¸¿¹˜I‘
à$(§O¡O°T·Y±Y˜	ˆJä˜$Ð 2°AÓ6ˆÜ˜Ð0°!Ó4ˆÜ�T—Y‘Y“ &Ñ(¨7Ñ2ˆØ×'Ñ'Ø˜	 4§9¡9Ø�V˜TŸ]™]Ø�D×%Ñ%Ø×3Ñ3Ø¨	ð (ó 3ˆ	ò Ù $×"2Ò"2Ø!Ÿ_™_×2Ñ2×7Ñ7×=Ñ=‘
à!ŸZ™Z�
Ø�~‰~Ð)Ø$Ÿ.™.‘Ù#¬°°iÀÓ(FÐ(RØŸ,™,×,Ñ,×0Ñ0‘à�Ø×+Ñ+¨I°wÓ?ˆGØ—:‘:×(Ò(©N¸d¿j¹j×>ZÑ>ZÐ>fô
 "/¨wÓ!7�
”Ù!¤g¨d°I¸tÓ&DÐ&PÜ)6°wÓ)?�—‘×"Ñ"Ô&Øˆr   c                 ó‚  — |j                   s|S | j                  d   s|S | j                  «        | j                  | j                  |j
                  j                  j                  |j
                  j                  |j                  ¬«      }|r²|j                  j                  �|j                  j                  }n0t        |dd «      �!|j                  j                  j                  }nd }| j                  ||«      }t        |«      |j                  _        t        |dd «      }|�t        |«      |j                  _        |S )Nr’   )rz   r•   )Úoverridabler?   rD   r~   r.   Ú
declaratorÚbaserI   r^   rz   r[   r�   r—   r•   r†   r   )r   r   rƒ   r¡   r¢   r•   s         r   Úvisit_CFuncDefNodez!EmbedSignature.visit_CFuncDefNode  s	  € Ø×ÒØˆKØ×&Ñ&Ð'7Ò8ØˆKØ×ÑÔà×'Ñ'Ø�O‰O˜TŸ_™_×1Ñ1×6Ñ6Ø�O‰O× Ñ Ø×(Ñ(ð (ó *ˆ	ñ Ø�z‰z�~‰~Ð)ØŸ*™*Ÿ.™.‘Ü˜˜y¨$Ó/Ð;ØŸ,™,×,Ñ,×0Ñ0‘à�Ø×+Ñ+¨I°wÓ?ˆGÜ*¨7Ó3ˆD�J‰JŒNÜ˜d I¨tÓ4ˆGØÐ"Ü$1°'Ó$:�—‘Ô!Øˆr   c                 ó2  — | j                   d   s|S | j                  «        |j                  }|j                  }|j                  }d }|j
                  dk(  rŸ| j                  rl|j                  j                  dd¬«      }|j                  j                  sd|z  }nZ|j                  j                  rD|j                  j                  dz   |z   }n'| j                  r| j                  |j                  «      }|€^|j                  D ]O  }|j                  dk7  rŒ| j                  r| j                  ›d|›�}|j                   }|sŒ?| j#                  |«      }ŒQ |�?|›d	|›�}| j%                  ||j&                  «      }	| j(                  st+        |	«      |_        |S )
Nr’   Úpublicrh   r   rF   z'%s'ru   Ú__get__z: )r?   rD   r[   ÚbodyrI   Ú
visibilityr@   rL   rN   Úis_pyobjectÚis_extension_typeÚmodule_namerA   rP   Ústatsr.   r›   r:   r†   r�   rB   r   )
r   r   r[   r¬   Ú	prop_nameÚ	type_nameÚstatÚret_annotationrƒ   r¢   s
             r   Úvisit_PropertyNodez!EmbedSignature.visit_PropertyNode  sd  € Ø×&Ñ&Ð'7Ò8ØˆKØ×ÑÔà—
‘
ˆØ�y‰yˆØ—J‘Jˆ	Øˆ	Ø×Ñ˜xÒ'Ø×Òà!ŸJ™J×7Ñ7¸ÈÐ7ÓJ�	Ø—z‘z×-Ò-Ø &¨Ñ 2‘IØ—Z‘Z×1Ò1Ø %§
¡
× 6Ñ 6¸Ñ <¸yÑ H‘IØ×&Ò&Ø ŸN™N¨5¯:©:Ó6�	ØÐØŸ
œ
�Ø—9‘9 	Ò)ØØ×#Ò#Ø+/¯?«?¹IÐ F�IØ!%×!<Ñ!<�Ú!Ø $× 4Ñ 4°^Ó D‘Ið #ð Ð Ú$-©yÐ9ˆIØ×+Ñ+¨I°u·y±yÓAˆGØ×(Ò(Ü)¨'Ó2�”	Øˆr   )r   r   Nr   NF)r   r   Nr   NNNF)r%   r&   r'   r   r8   r:   rD   rU   rW   rf   rP   r~   r†   r‰   r�   r   r£   r¨   r¶   Ú__classcell__)r1   s   @r   r+   r+   -   sm   ø„ ôò
òò=òò:ð 15Ø%)Ø$óò*ð& 37Ø'+Ø59Ø!&ó	ò.&ô"*òòò1òfö2!r   r+   )r�   ÚVisitorr   ÚStringEncodingr   rh   r   r   Ú
CodeWriterr	   ÚErrorsr
   r   r+   r)   r   r   Ú<module>r¼      s6   ðÛ å $Ý )Ý Ý Ý )Ý ô$Ð'ô $ôDS�_õ Sr   