
    Ph?	                        d dl mZ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 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        e
eee       y)    )AnyDictIterableListTuple   )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                 R    t        dt        |       j                   dt               )N'z$' object does not support mutation. )NotImplementedErrortype__name___help_mutation)selfargskwargss      iC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/fx/immutable_collections.py_no_mutationr      s(    
$t*"5"5!66Z[iZjk
ll    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!      s7    \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>r1      s    .5d;L:N)Or   c                 *    t        t        |             S r-   )hashr.   r0   s    r   r1   r1      s    tE$K'8r   T)is_backward_compatible)r"   r%   r'   r*   popitemupdatec                 B    t         t        | j                               ffS r-   )r   r/   itemsr0   s    r   r1   r1   !   s    .4

;M:O)Pr   c                 F    t        t        | j                                     S r-   )r3   r.   r8   r0   s    r   r1   r1   "   s    tE$**,,?'@r   dreturnc                 f    t        | j                               t        | j                               fS r-   )listvalueskeysr:   s    r   _immutable_dict_flattenrA   (   s"    
T!&&(^++r   r>   contextc                 >    t        t        t        ||                   S r-   )r   dictzipr>   rB   s     r   _immutable_dict_unflattenrG   +   s    $s7F3455r   c                 
    | d fS r-    r@   s    r   _immutable_list_flattenrJ   .   s    d7Nr   c                     t        |       S r-   )r   rF   s     r   _immutable_list_unflattenrL   1   s    &!!r   N)typingr   r   r   r   r   _compatibilityr	   torch.utils._pytreer
   r   __all__r   r   r!   r=   r   
__reduce____hash__rD   r   rA   rG   rJ   rL   rI   r   r   <module>rS      sF   3 3 ) =-
.m -T.\] P 8  *T *> :,T3vwP @  *T *> :
,tCH~ ,%S	78J2K ,6hsm 6g 6$sTWx. 6tCy U49g3E-F "hsm "g "$s) " ^%<>W X ^%<>W Xr   