o
    !i                     @   s@  d dl mZmZmZmZ ddlmZ d dlmZm	Z	 ddgZ
dZdd	 Zd
d Zeeg dZdd e_edde eeg dZdd e_edde deeef deee ef fddZdee dedeeef fddZdee deee ef fddZdee dedee fddZe	eee e	eee dS )     )AnyDictTupleList   )compatibility)Context_register_pytree_node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                 O   s   t dt| j dt )N'z$' object does not support mutation. )NotImplementedErrortype__name___help_mutation)selfargskwargs r   m/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/torch/fx/immutable_collections.py_no_mutation   s   r   c                 C   s.   t d| j | fi }|D ]}t||t q|S )NZ
immutable_)r   r   setattrr   )baseZmutable_functions	containerattrr   r   r   _create_immutable_container   s   r   )
__delitem____iadd____imul____setitem__appendclearextendinsertpopremovec                 C   s   t tt| ffS N)r
   tupleiterr   r   r   r   <lambda>       r*   T)Zis_backward_compatible)r   r   r!   r$   popitemupdatec                 C   s   t t|  ffS r&   )r   r(   itemsr)   r   r   r   r*       r+   dreturnc                 C   s   t |  t |  fS r&   )listvalueskeysr/   r   r   r   _immutable_dict_flatten&   s   r5   r2   contextc                 C   s   t tt|| S r&   )r   dictzipr2   r6   r   r   r   _immutable_dict_unflatten)   s   r:   c                 C   s   | d fS r&   r   r4   r   r   r   _immutable_list_flatten,      r;   c                 C   s   t | S r&   )r
   r9   r   r   r   _immutable_list_unflatten/   r<   r=   N)typingr   r   r   r   Z_compatibilityr   Ztorch.utils._pytreer   r	   __all__r   r   r   r1   r
   
__reduce__r7   r   r5   r:   r;   r=   r   r   r   r   <module>   s*    

&""