
    h                         S SK JrJr  S SKrS SKrS SKJr  S SKJrJrJ	r	J
r
  S rS r\R                  R                  SS5      S	 5       rg)
    )DictListN)raises)ConfigSimpleFrozenDictSimpleFrozenListregistryc                     [        [        S5      5      n [        S5       H  nX   U:X  a  M   e   [        [        SS9   U R	                  S5        S S S 5        [        [        SS9   U R                  5         S S S 5        [        [        SS9   U R                  S5        S S S 5        g ! , (       d  f       N^= f! , (       d  f       NH= f! , (       d  f       g = f)N
   zfrozen listmatch   r   )r   ranger   NotImplementedErrorappendreversepop)frozenks     a/home/james-whalen/.local/lib/python3.13/site-packages/confection/tests/test_frozen_structures.pytest_frozen_listr   
   s    eBi(F2YyA~~  
#=	9a 
: 
#=	9 
: 
#=	9

1 
:	9 
:	9 
:	9 
:	9s#   B)'B:C)
B7:
C
Cc                  D   [        [        S5       V s0 s H  o U _M     sn 5      n[        S5       H  n X   U :X  a  M   e   [        [        SS9   SUS'   S S S 5        [        [        SS9   SUS'   S S S 5        g s  sn f ! , (       d  f       N0= f! , (       d  f       g = f)Nr   zfrozen dictionaryr      r   )r   r   r   r   )r   r   s     r   test_frozen_dictr      s    U2Y7Y!tY78F2YyA~~  
#+>	?q	 
@ 
#+>	?r
 
@	? 8
 
@	? 
@	?s   A;B ,B 
B
Bfrozen_type)dictlistc                     [         R                  " SSSS9[        l        [        R                  R	                  S5      [        SS94S[        [        [        4   4S	 jj5       n[        R                  R	                  S
5      [        / SQ5      4S[        [           4S jj5       n[        5       n[        R                  " UR                  SU  S35      5      n[        US   U S:X  a  [        O[        5      (       d   eg)zoTest whether setting default values for a FrozenDict/FrozenList works within a config, which utilizes
deepcopy.
confectionbarF)entry_pointszfoo_dict.v1   )xvaluesc                     U $ N r$   s    r   	make_dict.test_frozen_struct_deepcopy.<locals>.make_dict-           zfoo_list.v1)r      r"   c                     U $ r&   r'   r(   s    r   	make_list.test_frozen_struct_deepcopy.<locals>.make_list1   r+   r,   z1
            [something]
            @bar = "foo_z.v1"        
            	somethingr   N)	cataloguecreater	   r    registerr   r   strintr   r   r   resolvefrom_str
isinstance)r   r)   r/   cfgresolveds        r   test_frozen_struct_deepcopyr<   '   s     ##L%eLHL\\=)+;a+@ $sCx.  * \\=)&6y&A $s)  * (C$ &	
H h{+[F5JTPTUUUUr,   )typingr   r   r2   pytestr   r   r   r   r   r	   r   r   markparametrizer<   r'   r,   r   <module>rA      sI        K K 
 (89V :Vr,   