
     i              	          d dl mZmZmZmZmZmZmZmZm	Z	 ere
Z
n ee          Z
e	eef         Zeedf         Ze	ee
f         Zeedf         Ze	ee
f         Zeeee	eef         f                  Ze	deeeef         f         Zdede	eef         de	eef         fdZded	eddfd
Zd	edefdZdee         deeeeeef                  f         fdZdS )    )	AnyDictIterableListOptionalSequenceTupleTYPE_CHECKINGUnion.Nnamepathreturnc                      t          |t                    r S t          |t          t          f          r|S t	           fd|D                       S )z7Fix all `...` in the path replacing then with the name.c              3   J   K   | ]}t          |t                    rn|V  d S )N)
isinstanceellipsis).0xr   s     d/root/.openclaw/workspace/.venvs/songid/lib/python3.11/site-packages/dataclass_factory/path_utils.py	<genexpr>z#replace_ellipsis.<locals>.<genexpr>#   sJ         Ax((	/a         )r   r   strinttuple)r   r   s   ` r   replace_ellipsisr      sm    $!! $c
##          r   rootkeyc                    t          | t                    r~t          |t                    s#t          dt	          |           d| d          t          |           |dz   k     r.|                     d g|t          |           z
  dz   z             d S d S t          |t                    r#t          dt	          |           d| d          d S )NzExpected int, but got got  (`z`) in field path   zExpected str, but got )r   listr   
ValueErrortypelenextend)r   r   s     r   extend_containerr&   )   s    $ W#s## 	_]$s))]]]]]^^^t99sQwKK#D		/A"5677777 	C		 WU$s))UUUUUVVVW Wr   c                 B    t          | t                    r	d g| dz   z  S i S )Nr    )r   r   )r   s    r   make_containerr(   3   s*    #s vq!!	r   pathsc           	      B   dg}g }| D ]}|}d}|D ]}d}|t           t          |t                    r>t          |t                    s#t          dt	          |           d| d          ||vrd}t          |t
                    rBt          |t                    s#t          dt	          |           d| d          ||         d}|rt          |          ||<   nt          ||         |           ||         }|}|	                    ||f           |d         |fS )	z
    Create empty structure that can be filled by described path
    Returns whole container itself and separate subcontainers for each path
    Nr   Fzstr expected, found r   z`)Tzint expected, found )
r"   r   dictr   r#   r   r   r(   r&   append)r)   r   field_containersr   currentprev_keynext_key	not_exists           r   init_structurer2   :   sr   
 "FD46 5 5! 	  	 HI  '4(( %!(C00 ]$%[DNN%[%[x%[%[%[\\\7** $I'4(( %!(C00 ]$%[DNN%[%[x%[%[%[\\\8$, $I >$28$<$<!! !2H===h'GHH( 344447$$$r   )typingr   r   r   r   r   r   r	   r
   r   r   r#   Ellipsisr   r   CleanKey	CleanPathKeyPathFieldOrAutoNameMapping	Containerr   r&   r(   r2    r   r   <module>r=      s   ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]  HHtH~~H
 c?(C- 	 HhS#XCM"tKsDy)99:;$d38n,-		3 	eD#I&6 	5HAT;U 	 	 	 	W9 W3 W4 W W W W 	    %(4. %U9huYX[^G\>]3]-^ % % % % % %r   