
    shM                     &    S SK JrJr  S rS rS rg)    )typestypingc                 L    [        U [        [        [        R                  45      $ )z]
Return whether *sig* is a potentially valid signature
specification (for user-facing APIs).
)
isinstancestrtupler   	Signature)sigs    g/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/core/sigutils.pyis_signaturer      s    
 cC(8(89::    c                 8    [        U 0 [        R                  5      $ )z+
Parameters
----------
signature_str : str
)evalr   __dict__)signature_strs    r   _parse_signature_stringr      s     r5>>22r   c           	         [        U [        5      (       a  [        U 5      nOU n[        U[        5      (       a  USp2Ow[        U[        R
                  5      (       a  UR                  UR                  p2O@[        SU < SU R                  R                  < SUR                  R                  < S35      eS nUb  U" U5        U H  nU" U5        M     X#4$ )z
From *sig* (a signature specification), return a ``(args, return_type)``
tuple, where ``args`` itself is a tuple of types, and ``return_type``
can be None if not specified.
Nzinvalid signature: z (type: z) evaluates to z instead of tuple or Signaturec                 `    [        U [        R                  5      (       d  [        SU < 35      eg )Nz9invalid type in signature: expected a type instance, got )r   r   Type	TypeError)tys    r   
check_type'normalize_signature.<locals>.check_type+   s-    "ejj))247 8 8 *r   )r   r   r   r   r   r	   argsreturn_typer   	__class____name__)r
   parsedr   r   r   r   s         r   normalize_signaturer      s     #s(-&%  "Dk	FF,,	-	-"KK););k!7!7",,55  	8
 ;2  r   N)
numba.corer   r   r   r   r    r   r   <module>r"      s    $;3r   