
    ni                     J    S r SSKJr  SSKJr  SSKJr  SSKr " S S\5      rg)/Wrap a dictionary to access keys as attributes.    )absolute_import)division)print_functionNc                   x   ^  \ rS rSrSrU 4S jrS rS r\\	R                  U 4S j5       5       rU 4S jrSrU =r$ )	AttrDict   r   c                 V   > [         [        U ]
  " U0 UD6  [         [        U ]  SS5        g )N_mutableF)superr   __init____setattr__)selfargskwargs	__class__s      ^/home/james-whalen/.local/lib/python3.13/site-packages/pybullet_envs/agents/tools/attr_dict.pyr   AttrDict.__init__   s(    	(D"D3F3	(D%j%8    c                 ^    UR                  S5      (       a  [        eU R                  US 5      $ )N__)
startswithAttributeErrorget)r   keys     r   __getattr__AttrDict.__getattr__   s(    
~~d88Cr   c                     U R                   (       d!  SR                  U5      nUS-  n[        U5      eUR                  S5      (       a  [	        SR                  U5      5      eX U'   g )NzCannot set attribute '{}'.z2 Use 'with obj.unlocked:' scope to set attributes.r   zCannot set magic attribute '{}')r   formatRuntimeErrorr   r   )r   r   valuemessages       r   r   AttrDict.__setattr__$   s\    ==,33C8gEEg!!
~~d<CCCHIIIr   c              #   f   >#    [         [        U ]  SS5        S v   [         [        U ]  SS5        g 7f)Nr   TF)r   r   r   r   r   s    r   unlockedAttrDict.unlocked-   s-      
(D%j$7		(D%j%8s   .1c                 F   > [        U 5      " [        [        U ]  5       5      $ )N)typer   r   copyr%   s    r   r*   AttrDict.copy4   s    :eHd0233r    )__name__
__module____qualname____firstlineno____doc__r   r   r   property
contextlibcontextmanagerr&   r*   __static_attributes____classcell__)r   s   @r   r   r      sA    79 9  9
4 4r   r   )r1   
__future__r   r   r   r3   dictr   r,   r   r   <module>r9      s"    6 &  % 4t 4r   