ó
    „ñ:iµ  ã                   óV   • S r SSKrSSKrSSKr " S S\R                  5      rS rS rg)zR
This module provides helper functions to find the first line of a function
body.
é    Nc                   óT   ^ • \ rS rSrSrS rU 4S jrS\R                  4S jr	Sr
U =r$ )ÚFindDefFirstLineé   z²
Attributes
----------
first_stmt_line : int or None
    This stores the first statement line number if the definition is found.
    Or, ``None`` if the definition is not found.
c                 ó*   • Xl         X l        SU l        g)z>
Parameters
----------
code :
    The function's code object.
N)Ú_co_nameÚ_co_firstlinenoÚfirst_stmt_line)ÚselfÚnameÚfirstlinenos      Ú]/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/misc/firstlinefinder.pyÚ__init__ÚFindDefFirstLine.__init__   s   € ð ŒØ*ÔØ#ˆÕó    c                 ó^   >• [         R                  " U5       H  n[        TU ]  U5        M     g )N)ÚastÚiter_child_nodesÚsuperÚvisit)r
   ÚnodeÚchildÚ	__class__s      €r   Ú_visit_childrenÚ FindDefFirstLine._visit_children   s$   ø€ Ü×)Ò)¨$Ö/ˆEÜ‰G‰M˜%Ö ò 0r   r   c                 óÀ  • UR                   U R                  :X  a³  [        UR                  /5      nUR                  (       a*  UR                  S   nUR                  UR                  5        U R                  U;   aR  UR                  (       a@  UR                  S   n[        U5      (       a  UR                  S   nUR                  U l	        g  U R                  U5        g )Nr   é   )r   r   ÚsetÚlinenoÚdecorator_listÚaddr   ÚbodyÚ_is_docstringr	   r   )r
   r   Úpossible_start_linesÚfirst_decorÚ
first_stmts        r   Úvisit_FunctionDefÚ"FindDefFirstLine.visit_FunctionDef#   sµ   € Ø�9‰9˜Ÿ™Ó%ô $'¨¯© }Ó#5Ð Ø×"×"ð #×1Ñ1°!Ñ4�Ø$×(Ñ(¨×);Ñ);Ô<à×#Ñ#Ð';Ó;ð —9—9Ø!%§¡¨1¡�JÜ$ Z×0Ñ0à%)§Y¡Y¨q¡\˜
Ø+5×+<Ñ+<�DÔ(Øð
 Ø×Ñ˜TÕ"r   )r   r   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   ÚFunctionDefr&   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s'   ø† ñò	$õ!ð# c§o¡o÷ #ò #r   r   c                 óè   • [        U [        R                  5      (       aS  [        U R                  [        R                  5      (       a*  [        U R                  R                  [
        5      (       a  gg)NTF)Ú
isinstancer   ÚExprÚvalueÚConstantÚstr)r   s    r   r"   r"   A   sE   € Ü�$œŸ™×!Ñ!Ü�t—z‘z¤3§<¡<×0Ñ0Ü˜tŸz™z×/Ñ/´×5Ñ5ØØr   c                 óT  • U R                   n [        UR                  5       nUR                  5       nSnSSS5        [        R                  " [        R                  " W5      5      n[        UR                  UR                   W-
  5      nUR#                  U5        UR$                  (       a  UR$                  U-   $ g! , (       d  f       N�= f! [        [
        4 aI     [        R                  " U 5      u  pTSR                  U5      nUS-
  n NÑ! [
        [        4 a      gf = ff = f)zë
Look up the first line of function body using the file in
``pyfunc.__code__.co_filename``.

Returns
-------
lineno : int; or None
    The first line number of the function body; or ``None`` if the first
    line cannot be determined.
r   NÚ r   )Ú__code__ÚopenÚco_filenameÚreadÚFileNotFoundErrorÚOSErrorÚinspectÚgetsourcelinesÚjoinÚ	TypeErrorr   ÚparseÚtextwrapÚdedentr   Úco_nameÚco_firstlinenor   r	   )ÚpyfuncÚcoÚfinÚsourceÚoffsetÚlinesÚtreeÚfinders           r   Úget_func_body_first_linenorO   I   sö   € ð 
�‰€Bð
Ü�"—.‘.Ô! SØ—X‘X“ZˆFØˆF÷ "ô �9Š9”X—_’_ VÓ,Ó-€DÜ˜bŸj™j¨"×*;Ñ*;¸fÑ*DÓE€FØ
‡L�L�ÔØ××Ø×%Ñ%¨Ñ.Ð.ð ÷% "Õ!ûô œwÐ'ó ð	Ü#×2Ò2°6Ó:‰MˆEØ—W‘W˜U“^ˆFØ˜a‘ZŠFøÜœÐ#ó 	Úð	úðúsE   ŽC £B=¶C Â=
CÃC ÃC ÃD'Ã.DÄD#ÄD'Ä"D#Ä#D')r,   r   r>   rC   ÚNodeVisitorr   r"   rO   © r   r   Ú<module>rR      s0   ðñó
 Û Û ô3#�s—‘ô 3#òlór   