
    xKg6                         d dl Z d dlZd Zy)    Nc                    d }d fd} ||       j                  d      \  }}}t         ||            }t         ||            }t               }t               }	|D ]  }
|t        |
      z  } |D ]  }
|	t        |
      z  }	 |	j                  |      }|r&t	        ddj                  t        |            z        ||fS )zParse generalized ufunc signature.

    NOTE: ',' (COMMA) is a delimiter; not separator.
          This means trailing comma is legal.
    c                 2    dj                  d | D              S )N c              3   F   K   | ]  }|t         j                  vs|  y wN)string
whitespace).0cs     [/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/np/ufunc/sigparse.py	<genexpr>z3parse_signature.<locals>.stripws.<locals>.<genexpr>   s     B!Qq0A0A'Aq!s   !!)join)ss    r   stripwsz parse_signature.<locals>.stripws   s    wwB!BBB    c                 N      fd} |       t        j                  fd      S )Nc               3      K     y wr    )srcs   r   readlinez4parse_signature.<locals>.tokenizer.<locals>.readline   s     Is   	c                      t               S r   )next)gens   r   <lambda>z4parse_signature.<locals>.tokenizer.<locals>.<lambda>   s	    S	r   )tokenizegenerate_tokens)r   r   r   s   ` @r   	tokenizerz"parse_signature.<locals>.tokenizer   s!    	j''(9::r   c              3     K    |       }	 t        |      }|d   dk(  rg }	 t        |      }|d   dk(  rnF|d   t        j                  k(  r|j                  |d          n|d   dk(  rIt	        d|d   z        Zt        |       t        |      }|d   dk(  rt        j                  |d         r+y t        j                  |d         ry t	        d|d   z        խw)N   ()r   ,zbad token in signature "%s")r   r   NAMEappend
ValueErrortupleISEOF)r   tokgentoksymbolsr   s       r   parsez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   CC"z->zundefined output symbols: %sr"   )	partitionlistset
difference	NameErrorr   sorted)sigr   r+   ins_outsinputsoutputsisymosymgrpdiffr   s               @r   parse_signaturer<      s    C;I6 3<))$/LCD%*F5;G 5D5DC C  ??4 D6&,9OOPP7?r   )r   r   r<   r   r   r   <module>r=      s     :r   