
    h                         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e      Z G d de      Z	ej                  j                  d e	        e       g      d        Zd	 Zd
 Zd Zd Zd Zy)    N)BackendPrioritiesConfigc                   ,    e Zd ZU dZeed<   eed<   d Zy)ExampleConfigExample configuration.xyc                 p    |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values      ]/var/www/django_project/virt/lib/python3.12/site-packages/networkx/utils/tests/test_config.py_on_setattrzExampleConfig._on_setattr   s<    #:%1*122#:j4-..    N)__name__
__module____qualname____doc__int__annotations__r   r    r   r   r   r      s     
F
Fr   r   c                       e Zd Zy)EmptyConfigN)r   r   r   r   r   r   r   r      s    r   r   cfgc                    t        |       g k(  sJ t        j                  t              5  d| _        d d d        t        j                  t
              5  d| d<   d d d        t        j                  t              5  | j                   d d d        t        j                  t
              5  | d    d d d        t        |       dk(  sJ d| vsJ | | k(  sJ | j                  dd      dk(  sJ t        | j                               t               k(  sJ t        | j                               t               k(  sJ t        | j                               t               k(  sJ t        j                  t        j                  |             }| |k(  sJ t        | t         j"                  j$                        sJ t        | t         j"                  j&                        sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   SxY w)N   r   r      )dirpytestraisesAttributeErrorr   KeyErrorlengetsetkeysvaluesitemspickleloadsdumpsr   collectionsabc
CollectionMappingr    cfg2s     r   test_config_emptyr8      s   s8r>>	~	& 	x	  C	~	& 	x	  Cs8q==c>>#::773?asxxz?ce###szz|%%%syy{su$$$<<S)*D$;;c;??55666c;??22333%    s/   GG%:G2(G?G"%G/2G<?H	c                     t        j                  t        d      5  t                d d d        t        j                  t        d      5  t        dd       d d d        t        j                  t        d      5  t        ddd	
       d d d        t        j                  t        d      5  t        d	       d d d        t        dd      } | j                  dk(  sJ | d   dk(  sJ | d   dk(  sJ | j                  dk(  sJ d| v sJ d| v sJ d| vsJ t        |       dk(  sJ t        t        |             ddhk(  sJ t        | j                               ddhk(  sJ t        | j                               ddhk(  sJ t        | j                               ddhk(  sJ t        |       ddgk(  sJ d| _        d| d<   | d   dk(  sJ | j                  dk(  sJ t        j                  t        d      5  | `d d d        t        j                  t        d      5  | d= d d d        | j                  dk(  sJ | | k(  sJ | t        dd      k(  sJ | t        dd      k7  sJ | t        dd      k7  sJ t        j                  t        d      5  d| d<   d d d        t        j                  t        d      5  d| _        d d d        | j!                  dd      dk(  sJ t        j                  t"              5  d| _        d d d        t        j                  t&              5  d| d<   d d d        t        j                  t"              5  | j$                   d d d        t        j                  t&              5  | d    d d d        t)        j*                  t)        j,                  |             }| |k(  sJ | j.                  dk(  sJ |j.                  dk(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   GxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   @xY w# 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nzmissing 2 required keyword-onlymatchr   r   foor   r	   zunexpected keywordr"   z
bad config)r   r	   z)r>   r   r	   r>   r#   r   r"   )r	   r<   barzcan't be deleted   bazr      
   r   )r%   r&   r   r   r   r   r   r	   r)   r+   iterr,   r-   r.   r$   r   r*   r'   r>   r(   r/   r0   r1   r   r6   s     r   test_config_subclassrG   5   s   	y(I	J 	z)=	> $U#$	y(<	= 4Ul34	y(<	= $l#$
!u
%C55A::s8q==s8u55E>>#::#::c>>s8q==tCy>c3Z'''sxxz?sCj(((szz|E
***syy{,7777s8Sz!!!CECHs8q==55E>>	y(:	; E	y(:	; H55A::#::-!u-----!u----&1&&&&	y(9	: C	z)=	> 773q   	~	& 	x	  C	~	& 	x	  C<<S)*D$;;;;2222<<3333g $ $4 4$ $(        s   O
O%;O2-O?6PPP&:P3:Q #Q
Q8Q'O"%O/2O<?P	PP#&P03P= Q
QQ$'Q0c                       G d dt               }  | d      }|j                  dk(  sJ  | dd      }|j                  dk(  sJ y )Nc                   &    e Zd ZU dZeed<   eed<   y)+test_config_defaults.<locals>.DefaultConfigr   r   r	   Nr   r   r   r   r   r   r   r   r   DefaultConfigrJ   m   s    3
r   rL   r"   )r	   r   r#   r=   )r   r   )rL   r    s     r   test_config_defaultsrM   l   sF      !
C55A::
!q
!C55A::r   c                     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      5  dt        j                  j                  _        d d d        t        j                  t        d      5  dgt        j                  j                  _        d d d        t        j                  t        d      5  i t        j                  _        d d d        t        j                  t        d      5  t        i       t        j                  _        d d d        t        j                  t        d      5  t        t                     t        j                  _        d d d        t        j                  t        d	      5  d
t        j                  _        d d d        t        j                  t        d      5  dt        j                  _        d d d        t        j                  t        d      5  d
ht        j                  _        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   _xY w# 1 sw Y   )xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzmust be a list of backend namesr:   nx_loopbackzUnknown backend when setting&this_almost_certainly_is_not_a_backendz#must be a Config of backend configs)plausible_backend_name)rP   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   test_nxconfigr[   w   s   bii002CDDDbii0066===bii((&111	y(I	J 9+8		""(9	z)G	H V,T+U		""(V	y(M	N  		 	y(M	N ?#2>		?	z)G	H U#68T		U	y(?	@ 7+6		(7	y(;	< )'(		$)	z);	< 5(3}		$5 59 9V V   ? ?U U7 7) )5 5s`   $ J'!J+J$ J+'(J82K+K$KJJJ(+J58KKKK%c                  4    G d dt         d      }  | d      }d|vsJ t        |      dk(  sJ t        |      dgk(  sJ t        |j                               dgk(  sJ t        |j	                               dgk(  sJ t        |j                               d	gk(  sJ |j                  dk(  sJ |d   dk(  sJ d|v sJ t        |d      sJ d
t        |      v sJ | | d      k(  sJ |`dt        |      v sJ t        |      dk(  sJ t        |d      rJ d|vsJ t        |d      rJ d|vsJ d|_	        t        |      dk(  sJ t        |      dgk(  sJ t        |j                               dgk(  sJ t        |j	                               dgk(  sJ t        |j                               dgk(  sJ |j                  dk(  sJ |d   dk(  sJ t        |d      sJ d|v sJ |d= t        |      dk(  sJ t        |      g k(  sJ t        j                  t        d      5  |`	d d d        t        j                  t        d      5  |d= d d d        t        j                  t        d      5   |         d d d        t        j                  t        d      5   | dd       d d d         G d dt         d      } |       j                  dk(  sJ  |d      d   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   fxY w)Nc                       e Zd ZU eed<   y)'test_not_strict.<locals>.FlexibleConfigr   N)r   r   r   r   r   r   r   r   FlexibleConfigr^      s    r   r_   F)strictr"   r   _strictr   r?   zFlexibleConfig(x=1)zFlexibleConfig()r   r	   r#   )r	   r#   r:   zmissing 1 required keyword-onlyzunexpected keyword argument 'y'r=   c                       e Zd ZU dZeed<   y)2test_not_strict.<locals>.FlexibleConfigWithDefaultr   r   NrK   r   r   r   FlexibleConfigWithDefaultrd      s    3
r   re   )r   r)   rW   r,   r-   r.   r   hasattrreprr	   r%   r&   r'   r(   r   )r_   r    re   s      r   test_not_strictrh      s)     1
CCs8q==9
u$$$

!$$$		
***55A::s8q==#::3 DI---.1%%%%c***s8q==sC   c>>sC   c>>CEs8q==9
u$$$

!$$$		
***55A::s8q==3#::Cs8q==9??	~S	1 E	xs	+ H	y(I	J  
y(I	J !a !F5  %&((A---$q)#.!333   ! !s0   &K*K63LL*K36K?LLc            	      z   t        d      }  | d      5 }|j                  dk(  sJ d|_        | j                  dk(  sJ 	 d d d        | j                  dk(  sJ  | d      5 }|| k(  sJ | j                  dk(  sJ  | d      5 }|| k(  sJ | j                  dk(  sJ t        j                  t        d      5  | 5 }	 d d d        d d d        | j                  dk(  sJ 	 d d d        | j                  dk(  sJ 	 d d d        | j                  dk(  sJ  | d      }|| k(  sJ | j                  dk(  sJ | j
                  J | j                  g k(  sJ |5  || k(  sJ | j                  dk(  sJ 	 d d d        | j                  dk(  sJ | j
                  J t        j                  t        d      5  | 5  	 d d d        d d d        | j                  dk(  sJ y # 1 sw Y   xY w# 1 sw Y   )xY w# 1 sw Y   .xY w# 1 sw Y   !xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   txY w)Nr"   ra   r#   rA   zcontext manager withoutr:      )r   r   r%   r&   RuntimeError_prev_context_stack)r    cc2c3s       r   test_contextrq      s:   
1+C	q Qssaxxuuzz 55A::	q 
QCxxuuzz1X 	9955A::|3LM  B 55A::	 uuzz
 55A::aA8O855A::99   ###	
 Cxxuuzz 55A::99	|+D	E  		 55A::E   	 	
 
& 	 	 s   *G#"H4G?9G2<G%	>G2G? HH1H14H%6H1G"%G/*G22G<7G??H		HHH"%H.	*H11H:)r2   r/   r%   networkxrS   networkx.utils.configsr   r   r   r   markparametrizer8   rG   rM   r[   rh   rq   r   r   r   <module>rv      su        <F 	& 	  9:4 ;4.44n5,34l$r   