
    קg              	          U d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlZd dlmZmZ eeegef         Zeeegef         Zi Zee
e         ef         ed<   i Zee
e         ee         f         ed<   	 dde
e         ded	ee         d
dfdZ	 ddeded
ee         fdZdeeef         ded
ee         fdZdee         ded
ee         fdZde	e         ded
ee         fdZdeded
ee         fdZdeeef         ded
efdZdee         ded
efdZde	e         ded
efdZdeded
efdZ ee ee            ee!ee            ee"ee           ej#        j$        D ]Z% ee%ee            eeee           dS )    )
namedtuple)AnyCallableDictList
NamedTupleOptionalTupleTypeN)PyTreeTreeSpecSUPPORTED_NODESSUPPORTED_NODES_EXACT_MATCHclsflatten_fn_specflatten_fn_exact_match_specreturnc                 .    |t           | <   |t          | <   d S N)r   r   )r   r   r   s      L/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/fx/_pytree.pyregister_pytree_flatten_specr      s    
 +OC'B$$$    Fpytreespecc                    |                                 r| gS |j        t          vrt          t          |            d          t          |j                 } || |          }|r5t          |j                 }|r! || |          st          d|  d|           g }t          ||j                  D ]\  }}t          |||          }	||	z  }|S )Nz does not have a flatten_fn_spec associated with it. Please register one with torch.fx._pytree.register_pytree_flatten_spec.  If you have serialized your model, make sure that any custom pytrees have been registered before loading it.zCannot flatten pytree z, given spec: )is_leaftyper   RuntimeErrorr   zipchildren_specstree_flatten_spec)
r   r   exact_structural_matchr   child_pytreesr   resultchild
child_specflats
             r   r!   r!      s   
 ||~~ xy''F|| S S S
 
 	

 &di0O#OFD11M V&A$)&L#& 	V/J/J0
 0
 	V TTTdTTUUUF 0CDD  z 
4JKK$Mr   dc                 *      fd|j         D             S )Nc                      g | ]
}|         S  r+   ).0kr(   s     r   
<listcomp>z&_dict_flatten_spec.<locals>.<listcomp>7   s    '''QAaD'''r   )contextr(   r   s   ` r   _dict_flatten_specr1   6   s    ''''$,''''r   c                 D      fdt          |j                  D             S )Nc                      g | ]
}|         S r+   r+   r,   ir(   s     r   r.   z&_list_flatten_spec.<locals>.<listcomp>;       333QAaD333r   rangenum_childrenr0   s   ` r   _list_flatten_specr:   :   (    3333% 1223333r   c                 D      fdt          |j                  D             S )Nc                      g | ]
}|         S r+   r+   r4   s     r   r.   z'_tuple_flatten_spec.<locals>.<listcomp>?   r6   r   r7   r0   s   ` r   _tuple_flatten_specr>   >   r;   r   c                 D      fdt          |j                  D             S )Nc                      g | ]
}|         S r+   r+   r4   s     r   r.   z,_namedtuple_flatten_spec.<locals>.<listcomp>C   r6   r   r7   r0   s   ` r   _namedtuple_flatten_specrA   B   r;   r   c                 2    t          |           |j        k    S r   lenr9   r0   s     r   _dict_flatten_spec_exact_matchrE   F       q66T&&&r   c                 2    t          |           |j        k    S r   rC   r0   s     r   _list_flatten_spec_exact_matchrH   J   rF   r   c                 2    t          |           |j        k    S r   rC   r0   s     r   _tuple_flatten_spec_exact_matchrJ   N   rF   r   c                 2    t          |           |j        k    S r   rC   r0   s     r   $_namedtuple_flatten_spec_exact_matchrL   R   rF   r   r   )F)&collectionsr   typingr   r   r   r   r   r	   r
   r   torch.return_typestorchtorch.utils._pytreer   r   FlattenFuncSpecboolFlattenFuncExactMatchSpecr   __annotations__r   r   r!   r1   r:   r>   rA   rE   rH   rJ   rL   dictlisttuplereturn_typesall_return_typesreturn_typer+   r   r   <module>r\      s   " " " " " " " O O O O O O O O O O O O O O O O O O O O     0 0 0 0 0 0 0 0 FH-t34$fh%7%=> 46d3i01 6 6 6TV T$s)X6O-P"PQ V V V HLC C	cC$C "**C!DC 
	C C C C ! 
 
#Y	   :($sCx. ( (T#Y ( ( ( (4$s) 48 4S	 4 4 4 445: 4X 4$s) 4 4 4 44
 4( 4tCy 4 4 4 4'd38n 'H ' ' ' ' ''d3i 'x 'D ' ' ' ''uSz ' 'd ' ' ' ''J 'h '4 ' ' ' '  T#57U V V V  T#57U V V V  	#  
 %6  K  '   
  (    r   