o
    ߗi                     @   st  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d	 Zd
d ZeedZdd e_dd e_edde eedZdd e_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d!ed" eeeed#ed" d$S )%    )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                 O   s   t dt| j dt )N'z$' object does not support mutation. )NotImplementedErrortype__name___help_mutation)selfargskwargs r   \/home/ubuntu/transcripts/venv/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 )N
immutable_)r   r   setattrr   )basemutable_functions	containerattrr   r   r   _create_immutable_container"   s   r$   )__delitem____iadd____imul____setitem__appendclearextendinsertpopremovereversesortc                 C   s   t tt| ffS N)r   tupleiterr   r   r   r   <lambda>:       r5   c                 C   s   t t| S r1   )hashr2   r4   r   r   r   r5   ;   s    T)is_backward_compatible)r%   __ior__r(   r*   r-   popitem
setdefaultupdatec                 C   s   t t|  ffS r1   )r   r3   itemsr4   r   r   r   r5   L   r6   c                 C   s   t t|  S r1   )r7   r2   r=   r4   r   r   r   r5   M   s    dreturnc                 C      t | S r1   )r   r>   r   r   r   _immutable_dict_flattenR      rB   valuescontextc                 C      t t| |S r1   )r   r	   rD   rE   r   r   r   _immutable_dict_unflattenV      rH   c                 C   r@   r1   )r
   rA   r   r   r   _immutable_list_flatten]   rC   rJ   c                 C   rF   r1   )r   r   rG   r   r   r   _immutable_list_unflattena   rI   rK   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   rB   rH   rJ   rK   r   r   r   r   <module>   sf   (



&

"

