
    J/Ph6                         d dl Z d dlZd ZdS )    Nc                    d }d fd} ||                                d          \  }}}t           ||                    }t           ||                    }t                      }t                      }	|D ]}
|t          |
          z  }|D ]}
|	t          |
          z  }	|	                    |          }|r2t	          dd                    t          |                    z            ||fS )zParse generalized ufunc signature.

    NOTE: ',' (COMMA) is a delimiter; not separator.
          This means trailing comma is legal.
    c                 @    d                     d | D                       S )N c              3   6   K   | ]}|t           j        v|V  d S N)string
whitespace).0cs     W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/np/ufunc/sigparse.py	<genexpr>z3parse_signature.<locals>.stripws.<locals>.<genexpr>   s/      BBQq0A'A'Aq'A'A'A'ABB    )join)ss    r   stripwsz parse_signature.<locals>.stripws   s#    wwBB!BBBBBBr   c                 R      fd} |            t          j        fd          S )Nc               3      K    V  d S r    )srcs   r   readlinez4parse_signature.<locals>.tokenizer.<locals>.readline   s      IIIIIr   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   sC    	 	 	 	 	hjj'(9(9(9(9:::r   c              3   D  K    |           }	 t          |          }|d         dk    rg }	 t          |          }|d         dk    rnX|d         t          j        k    r|                    |d                    n%|d         dk    r\t	          d|d         z            tt          |          V  t          |          }|d         dk    rt          j        |d                   rd S n4t          j        |d                   rd S t	          d|d         z            )NT   ()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   s9     3	Iv,,C1v}}	Qv,,C1v}}Q8=00s1v....Q3 ()FQ)OPPP	Q Gnn$$$6llq6S==^CF++ EA'' I !>Q!GHHH/	Ir   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 C C; ; ;I I I I I6 73<<))$//LCD%%**F55;;G 55D55D  C  C??4  D Q6&,,9O9OOPPP7?r   )r   r   r<   r   r   r   <module>r=      s0     : : : : :r   