o
    h*                     @   s   d dl Z d dlZd dlZd dlZd dl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S )    N)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   s:   |dkr|dkrt d|dkrt|tstdd S d S )Nr   r   x must be positiver   y must be a str)
ValueError
isinstancestr	TypeError)selfkeyvalue r   [/var/www/html/env_mimamsha/lib/python3.10/site-packages/networkx/utils/tests/test_config.py_check_config   s
   zExampleConfig._check_configN)__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   

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   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   r/   r   r   r   test_config_subclass4   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   DefaultConfigl   s   
 rA   r   )r   r   r   r5   )r   r   )rA   r   r   r   r   test_config_defaultsk   s
   
rB   c                   C   s~  t tjjts	J t tjjtsJ tjt	dd dtj_W d    n1 s(w   Y  tjt
dd dgtj_W d    n1 sDw   Y  tjt	dd i tj_W d    n1 s_w   Y  tjt	dd ti dtj_W d    n1 s}w   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    d S 1 sw   Y  d S )Nzmust be a list of backend namesr2   nx_loopbackzUnknown backend when setting&this_almost_certainly_is_not_a_backendz#must be a Config of backend configs)plausible_backend_name)rD   zmust be True or Falsez	bad value)r
   nxconfigbackend_prioritylistbackendsr   r   r   r   r	   cache_converted_graphsr   r   r   r   test_nxconfigv   s(   


"rL   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   
 rM   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   
 rP   )r   r"   rI   r%   r&   r'   r   hasattrreprr   r   r   r    r!   r   )rM   r   rP   r   r   r   test_not_strict   sb   
rS   )r+   r(   r   networkxrF   networkx.utils.configsr   r   r   markparametrizer1   r?   rB   rL   rS   r   r   r   r   <module>   s    
7