a
     d                     @   s   d dl Z d dlZ d dlmZmZmZmZmZmZmZm	Z
 d dlmZ d dlmZ d dl	mZ dd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)takefirstsecondsorted
merge_withreducemergeoperator)defaultdict)import_module)addc                   C   s$   t tdg dddgks J d S )N      r      r   )listr    r   r   a/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/toolz/tests/test_curried.py	test_take
   s    r   c                   C   s   t tjj u sJ d S N)r   toolzZ	itertoolzr   r   r   r   
test_first   s    r   c                   C   s^   t dd dddiddiks"J t ddiddiks:J t ddidd dddiksZJ d S )Nc                   S   s   t tS r   r
   intr   r   r   r   <lambda>       ztest_merge.<locals>.<lambda>)factoryr   c                   S   s   t tS r   r   r   r   r   r   r      r   )r   r   r   r   r   
test_merge   s    "r   c                   C   s&   t tddiddiddiks"J d S )Nr   r   r   r   sumr   r   r   r   test_merge_with   s    r    c                   C   s&   t tddiddigddiks"J d S )Nar   r   r   r   r   r   r   r   test_merge_with_list   s    r"   c                   C   s"   t tdddgddgksJ d S )N)key)r   r   )r   r   )r   r   r   r   r   r   test_sorted    s    r$   c                   C   s   t tddksJ d S )Nr      )r   r   r   r   r   r   test_reduce$   s    r&   c                   C   s   t jjdksJ d S )Nztoolz.curried)r   curried__name__r   r   r   r   test_module_name(   s    r)   c                 C   sL   t | rt| tjrdS tj| }|d u s4|dkr8dS |dkoJtj| S )NFr   T)callable
isinstancer   curryZ	functoolzZnum_required_argsZhas_keywords)funcnargsr   r   r   should_curry,   s    r/   c                  C   s   dd l } tt D ]\}}t|s&qt|tjsz|d W nB ty   z|d W n tyj   Y n0 Y qt	d| Y n0 t
t| |t|tjksJ |qtttth d@ dksJ d S )Nr   r   xz)toolz.curried.operator.%s is not curried!>   submulr   r   )r	   varscopitemsr*   r+   r   r,   	TypeErrorAssertionErrorr/   getattrlenset)r	   kvr   r   r   test_curried_operator5   s$    
$r=   c                  C   sN  t d} i }dd }|tt}|t| }|t|| tt|}tttjj}||krJt	|t	| }|rt
ddt| t	|t	| }|rt
ddt| tt||}tdd |}g }	t| D ]T\}
\}}|
|v r|	d	|
  qttt|
r,|	d
|
  q|	d|
  qt
d|	d S )Nztoolz.curried.exceptionsc                 S   s   dd |   D S )Nc                 S   s0   i | ](\}}d |vr|t |r(t|n|qS )__)r/   r   r,   ).0namefr   r   r   
<dictcomp>V   s   zCtest_curried_namespace.<locals>.curry_namespace.<locals>.<dictcomp>)r5   )nsr   r   r   curry_namespaceU   s    z/test_curried_namespace.<locals>.curry_namespacez4There are missing functions in toolz.curried:
    %sz    
z2There are extra functions in toolz.curried:
    %sc                 S   s   | d | d kS )Nr   r   r   )r0   r   r   r   r   l   r   z(test_curried_namespace.<locals>.<lambda>z,%s should come from toolz.curried.exceptionsz%s should be curried from toolzz,%s should come from toolz and NOT be curried
)r   r3   r   updater   Z	valfilterr*   r'   __dict__r:   r7   joinr   r   r   r5   appendr/   r8   )
exceptions	namespacerD   Z
from_toolzZfrom_exceptionsZcurried_namespacemissingextraZunequalmessagesr@   Z	orig_funcZ	auto_funcr   r   r   test_curried_namespaceP   s:    

rO   )r   Ztoolz.curriedr   r   r   r   r   r   r   r	   r4   collectionsr
   	importlibr   r   r   r   r   r    r"   r$   r&   r)   r/   r=   rO   r   r   r   r   <module>   s    (	