
    sh6                         S SK r S SKrS rg)    Nc                   ^ S nS mU4S jnU" U 5      R                  S5      u  p4n[        U" U5      5      n[        U" U5      5      n[        5       n[        5       n	U H  n
U[        U
5      -  nM     U H  n
U	[        U
5      -  n	M     U	R                  U5      nU(       a&  [	        SSR                  [        U5      5      -  5      eXg4$ )zParse generalized ufunc signature.

NOTE: ',' (COMMA) is a delimiter; not separator.
      This means trailing comma is legal.
c                 2    SR                  S U  5       5      $ )N c              3   P   #    U  H  o[         R                  ;  d  M  Uv   M     g 7fN)string
whitespace).0cs     k/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/np/ufunc/sigparse.py	<genexpr>3parse_signature.<locals>.stripws.<locals>.<genexpr>   s     B!Q0A0A'Aqq!s   &	&)join)ss    r   stripws parse_signature.<locals>.stripws   s    wwB!BBB    c                 T   ^ ^ U 4S jnU" 5       m[         R                  " U4S j5      $ )Nc               3      >#    T v   g 7fr    )srcs   r   readline4parse_signature.<locals>.tokenizer.<locals>.readline   s     Is   	c                     > [        T 5      $ r   )next)gens   r   <lambda>4parse_signature.<locals>.tokenizer.<locals>.<lambda>   s	    S	r   )tokenizegenerate_tokens)r   r   r   s   ` @r   	tokenizer"parse_signature.<locals>.tokenizer   s!    	j''(9::r   c              3     >#    T" U 5      n [        U5      nUS   S:X  a  / n [        U5      nUS   S:X  a  OJUS   [        R                  :X  a  UR                  US   5        OUS   S:X  a  MM  [	        SUS   -  5      eM_  [        U5      v   [        U5      nUS   S:X  a  M  [        R                  " US   5      (       a  g O0[        R                  " US   5      (       a  g [	        SUS   -  5      eM  7f)N   ()r   ,zbad token in signature "%s")r   r   NAMEappend
ValueErrortupleISEOF)r   tokgentoksymbolsr!   s       r   parseparse_signature.<locals>.parse   s     3v,C1v}v,C1v}Q8==0s1v.Q3 ()FQ)OPP  Gn$6lq6S=^^CF++ ,A'' !>Q!GHH/ s   C5C8z->zundefined output symbols: %sr'   )	partitionlistset
difference	NameErrorr   sorted)sigr   r0   ins_outsinputsoutputsisymosymgrpdiffr!   s               @r   parse_signaturerB      s    C;I6 3<))$/LCD%*F5;G 5D5DC C  ??4 D6&,9OOPP?r   )r   r   rB   r   r   r   <module>rC      s     :r   