o
    ]Zh                     @   s   d dl Z d dlZd dlZd dlZd dlmZmZ G dd deZG dd deZ	ej
de	 e gdd	 Zd
d Zdd Zdd Zdd Zdd ZdS )    N)BackendPrioritiesConfigc                   @   s*   e Zd ZU dZeed< eed< dd ZdS )ExampleConfigExample configuration.xyc                 C   s6   |dkr|dkrt d|dkrt|tstd|S )Nr   r   x must be positiver   y must be a str)
ValueError
isinstancestr	TypeError)selfkeyvalue r   O/var/www/auris/lib/python3.10/site-packages/networkx/utils/tests/test_config.py_on_setattr   s
   zExampleConfig._on_setattrN)__name__
__module____qualname____doc__int__annotations__r   r   r   r   r   r   r      s
   
 r   c                   @   s   e Zd ZdS )EmptyConfigN)r   r   r   r   r   r   r   r      s    r   cfgc                 C   s  t | g ksJ tt d| _W d    n1 sw   Y  tt d| d< W d    n1 s4w   Y  tt | j W d    n1 sLw   Y  tt | d  W d    n1 sew   Y  t| dksrJ d| vsxJ | | ks~J | dddksJ t| 	 t ksJ t| 
 t ksJ t|  t ksJ tt| }| |ksJ t| tjjsJ t| tjjsJ d S )N   r   r      )dirpytestraisesAttributeErrorr   KeyErrorlengetsetkeysvaluesitemspickleloadsdumpsr   collectionsabc
CollectionMappingr   Zcfg2r   r   r   test_config_empty   s0   

r1   c                  C   sZ  t jtdd t  W d    n1 sw   Y  t jtdd tddd W d    n1 s2w   Y  t jtdd tddd	d
 W d    n1 sPw   Y  t jtdd td	d W d    n1 slw   Y  tddd} | jdks~J | d dksJ | d dksJ | jdksJ d| v sJ d| v sJ d| vsJ t| dksJ t	t
| ddhksJ t	|  ddhksJ t	|  ddhksJ t	|  ddhksJ t| ddgksJ d| _d| d< | d dksJ | jdksJ t jtdd
 | `W d    n	1 sw   Y  t jtdd | d= W d    n	1 s/w   Y  | jdks<J | | ksCJ | tdddksNJ | tdddksYJ | tdddksdJ t jtdd d| d< W d    n	1 s{w   Y  t jtdd d| _W d    n	1 sw   Y  | dddksJ t t d| _W d    n	1 sw   Y  t t d| d< W d    n	1 sw   Y  t t | j W d    n	1 sw   Y  t t | d  W d    n	1 sw   Y  tt| }| |ksJ | jdks#J |jdks+J d S )Nzmissing 2 required keyword-onlymatchr   r   foor   r   zunexpected keywordr   z
bad config)r   r   z)r6   r   r   r6   r   r   r   )r   r4   barzcan't be deleted   Zbazr	      
   r   )r   r    r   r   r
   r   r   r   r#   r%   iterr&   r'   r(   r   r   r$   r!   r6   r"   r)   r*   r+   r   r0   r   r   r   test_config_subclass5   s   


r>   c                  C   sF   G dd dt } | dd}|jdksJ | ddd}|jdks!J d S )Nc                   @   s"   e Zd ZU dZeed< eed< dS )z+test_config_defaults.<locals>.DefaultConfigr   r   r   Nr   r   r   r   r   r   r   r   r   r   DefaultConfigm   s   
 r@   r   )r   r   r   r5   )r   r   )r@   r   r   r   r   test_config_defaultsl   s
   
rA   c                   C   s  t tjjts	J t tjjjtsJ t tjjtsJ t	j
tdd dtjj_W d    n1 s3w   Y  t	j
tdd dgtjj_W d    n1 sPw   Y  t	j
tdd i tj_W d    n1 skw   Y  t	j
tdd ti dtj_W d    n1 sw   Y  t	j
tdd tt dtj_W d    n1 sw   Y  t	j
td	d d
tj_W d    n1 sw   Y  t	j
tdd dtj_W d    n1 sw   Y  t	j
tdd d
htj_W d    d S 1 sw   Y  d S )Nzmust be a list of backend namesr2   Znx_loopbackzUnknown backend when setting&this_almost_certainly_is_not_a_backendz#must be a Config of backend configs)Zplausible_backend_name)rB   zmust be True or Falsez	bad valuezmust be a set of    zUnknown warning )r   nxconfigZbackend_priorityr   Zalgoslistbackendsr   r   r    r   r
   Zcache_converted_graphsZwarnings_to_ignorer   r   r   r   test_nxconfigw   s6   


"rH   c                  C   s(  G dd dt dd} | dd}d|vsJ t|dksJ t|dgks&J t| dgks1J t| dgks<J t| d	gksGJ |jdksNJ |d dksVJ d|v s\J t|dscJ d
t|v skJ || ddkstJ |`dt|v s~J t|dksJ t|drJ d|vsJ t|drJ d|vsJ d|_	t|dksJ t|dgksJ t| dgksJ t| dgksJ t| dgksJ |j	dksJ |d dksJ t|dsJ d|v sJ |d= t|dksJ t|g ksJ t
jtdd
 |`	W d    n	1 sw   Y  t
jtdd |d= W d    n	1 s5w   Y  t
jtdd |   W d    n	1 sPw   Y  t
jtdd | ddd W d    n	1 snw   Y  G dd dt dd}| jdksJ |ddd dksJ d S )Nc                   @   s   e Zd ZU eed< dS )z'test_not_strict.<locals>.FlexibleConfigr   N)r   r   r   r   r   r   r   r   r   FlexibleConfig   s   
 rI   F)strictr   r   _strictr   r7   zFlexibleConfig(x=1)zFlexibleConfig()r   r   r   )r   r   r2   zmissing 1 required keyword-onlyzunexpected keyword argument 'y'r5   c                   @   s   e Zd ZU dZeed< dS )z2test_not_strict.<locals>.FlexibleConfigWithDefaultr   r   Nr?   r   r   r   r   FlexibleConfigWithDefault   s   
 rM   )r   r#   rF   r&   r'   r(   r   hasattrreprr   r   r    r!   r"   r   )rI   r   rM   r   r   r   test_not_strict   sb   
rP   c                  C   sn  t dd} | dd}|jdksJ d|_| jdksJ W d    n1 s&w   Y  | jdks2J | ddn}|| ks>J | jdksEJ | ddE}|| ksQJ | jdksXJ tjtdd | }W d    n1 smw   Y  W d    n1 s|w   Y  | jdksJ W d    n1 sw   Y  | jdksJ W d    n1 sw   Y  | jdksJ | dd}|| ksJ | jdksJ | jd usJ | jg ksJ | || ksJ | jdksJ W d    n1 sw   Y  | jdksJ | jd u sJ tjtdd |  W d    n	1 sw   Y  W d    n	1 s(w   Y  | jdks5J d S )Nr   rK   r   r9   zcontext manager withoutr2      )r   r   r   r    RuntimeError_prevZ_context_stack)r   cc2c3r   r   r   test_context   sT   

rW   )r,   r)   r   ZnetworkxrD   Znetworkx.utils.configsr   r   r   r   markZparametrizer1   r>   rA   rH   rP   rW   r   r   r   r   <module>   s    
76