U
    ?h6                     @   s   d dl Z d dlZdd ZdS )    Nc                    s   dd }dd   fdd}||  d\}}}t||}t||}t }t }	|D ]}
|t|
O }qX|D ]}
|	t|
O }	qn|	|}|rtdd	t| ||fS )
zParse generalized ufunc signature.

    NOTE: ',' (COMMA) is a delimiter; not separator.
          This means trailing comma is legal.
    c                 S   s   d dd | D S )N c                 s   s   | ]}|t jkr|V  qd S N)string
whitespace).0c r   I/var/www/html/venv/lib/python3.8/site-packages/numba/np/ufunc/sigparse.py	<genexpr>   s     
 z3parse_signature.<locals>.stripws.<locals>.<genexpr>)join)sr   r   r	   stripws   s    z parse_signature.<locals>.stripwsc                    s$   fdd}|  t  fddS )Nc                   3   s
    V  d S r   r   r   )srcr   r	   readline   s    z4parse_signature.<locals>.tokenizer.<locals>.readlinec                      s   t  S r   )nextr   )genr   r	   <lambda>       z4parse_signature.<locals>.tokenizer.<locals>.<lambda>)tokenizegenerate_tokens)r   r   r   )r   r   r	   	tokenizer   s    z"parse_signature.<locals>.tokenizerc                 3   s    | }t |}|d dkrg }t |}|d dkr8qxq |d tjkrV||d  q |d dkrfq q td|d  q t|V  t |}|d dkrqqt|d rqqt|d rqqtd|d  qd S )N   ()r   ,zbad token in signature "%s")r   r   NAMEappend
ValueErrortupleISEOF)r   Ztokgentoksymbolsr   r   r	   parse   s*    
zparse_signature.<locals>.parsez->zundefined output symbols: %sr   )	partitionlistset
difference	NameErrorr   sorted)sigr   r#   Zins_ZoutsinputsoutputsZisymZosymgrpdiffr   r"   r	   parse_signature   s     
r0   )r   r   r0   r   r   r   r	   <module>   s   