
    '}hD                        d dl mZmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZ ddlmZ ddgZdZd Zd	 Z eeg d
      Zd e_        d e_          ed      e        eeg d      Zd e_        d e_          ed      e       deeef   deee   ef   fdZdee   dedeeef   fdZdee   deee   ef   fdZdee   dedee   fdZ eeeede        eeeede       y)    )AnyDictIterableListTuple)_dict_flatten_dict_flatten_with_keys_dict_unflatten_list_flatten_list_flatten_with_keys_list_unflattenContextregister_pytree_node   )compatibilityimmutable_listimmutable_dictzIf you are attempting to modify the kwargs or args of a torch.fx.Node object,
instead create a new copy of it and assign the copy to the node:
    new_args = ... # copy and mutate args
    node.args = new_args
c                 R    t        dt        |       j                   dt               )N'z$' object does not support mutation. )NotImplementedErrortype__name___help_mutation)selfargskwargss      ]/var/www/html/test/engine/venv/lib/python3.12/site-packages/torch/fx/immutable_collections.py_no_mutationr      s,    

DJ  D^DTU     c                 l    t        d| j                  z   | fi       }|D ]  }t        ||t                |S )N
immutable_)r   r   setattrr   )basemutable_functions	containerattrs       r   _create_immutable_containerr'   !   s<    \DMM1D7B?I! /	4./r   )
__delitem____iadd____imul____setitem__appendclearextendinsertpopremovec                 8    t         t        t        |             ffS N)r   tupleiterr   s    r   <lambda>r7   7   s    .5d;L:N)O r   c                 *    t        t        |             S r3   )hashr4   r6   s    r   r7   r7   8   s    tE$K'8 r   T)is_backward_compatible)r(   r+   r-   r0   popitemupdatec                 B    t         t        | j                               ffS r3   )r   r5   itemsr6   s    r   r7   r7   G   s    .4

;M:O)P r   c                 F    t        t        | j                                     S r3   )r9   r4   r>   r6   s    r   r7   r7   H   s    tE$**,,?'@ r   dreturnc                     t        |       S r3   )r   r@   s    r   _immutable_dict_flattenrD   M       r   valuescontextc                 ,    t        t        | |            S r3   )r   r
   rF   rG   s     r   _immutable_dict_unflattenrJ   Q        /&':;;r   c                     t        |       S r3   )r   rC   s    r   _immutable_list_flattenrM   X   rE   r   c                 ,    t        t        | |            S r3   )r   r   rI   s     r   _immutable_list_unflattenrO   \   rK   r   z-torch.fx.immutable_collections.immutable_dict)serialized_type_nameflatten_with_keys_fnz-torch.fx.immutable_collections.immutable_listN)typingr   r   r   r   r   torch.utils._pytreer   r	   r
   r   r   r   r   r   _compatibilityr   __all__r   r   r'   listr   
__reduce____hash__dictr   rD   rJ   rM   rO    r   r   <module>r[      sy   3 3	 	 	 * -
. - P 8  *T *> :,
 Q @  *T *> :tCH~ %S	78J2K <SM<< 
#s(^<tCy U49g3E-F <SM<< 
#Y< H0 H0r   