o
    h                     @   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   T/var/www/vscode/kcb/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   cfg2r   r   r   test_config_empty   s0   

r2   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)r7   r   r   r7   r   r   r   )r   r5   barzcan't be deleted   bazr	      
   r   )r   r    r   r   r
   r   r   r   r#   r%   iterr&   r'   r(   r   r   r$   r!   r7   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   
 rB   r   )r   r   r   r6   )r   r   )rB   r   r   r   r   test_config_defaultsl   s
   
rC   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 namesr3   nx_loopbackzUnknown backend when setting&this_almost_certainly_is_not_a_backendz#must be a Config of backend configs)plausible_backend_name)rE   zmust be True or Falsez	bad valuezmust be a set of    zUnknown warning )r   nxconfigbackend_priorityr   algoslistbackendsr   r   r    r   r
   cache_converted_graphswarnings_to_ignorer   r   r   r   test_nxconfigw   s6   


"rP   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   
 rQ   F)strictr   r   _strictr   r8   zFlexibleConfig(x=1)zFlexibleConfig()r   r   r   )r   r   r3   zmissing 1 required keyword-onlyzunexpected keyword argument 'y'r6   c                   @   s   e Zd ZU dZeed< dS )z2test_not_strict.<locals>.FlexibleConfigWithDefaultr   r   NrA   r   r   r   r   FlexibleConfigWithDefault   s   
 rU   )r   r#   rL   r&   r'   r(   r   hasattrreprr   r   r    r!   r"   r   )rQ   r   rU   r   r   r   test_not_strict   sb   
rX   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   rS   r   r:   zcontext manager withoutr3      )r   r   r   r    RuntimeError_prev_context_stack)r   cc2c3r   r   r   test_context   sT   

r`   )r,   r)   r   networkxrH   networkx.utils.configsr   r   r   r   markparametrizer2   r@   rC   rP   rX   r`   r   r   r   r   <module>   s    
76