
    &`i                     Z    d dl Zd dlmZ e G d dej        j                              ZdS )    N)	PublicAPIc                   B     e Zd ZdZd	 fd	Zd Zd Zd Zd Zd Z	 xZ
S )
FlexDictzGym Dictionary with arbitrary keys updatable after instantiation

    Example:
       space = FlexDict({})
       space['key'] = spaces.Box(4,)
    See also: documentation for gym.spaces.Dict
    Nc                     d}||r
J |            ||}|                                 D ]}|                     |           t                                          |           d S )Nz7Use either Dict(spaces=dict(...)) or Dict(foo=x, bar=z)spaces)valuesassertSpacesuper__init__)selfr   spaces_kwargserrspace	__class__s        s/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/rllib/utils/spaces/flexdict.pyr   zFlexDict.__init__   su    G6>"F]]__ 	$ 	$EU####'''''    c                 v    d}t          t          |          t          j        j                  s
J |            d S )Nz3Values of the dict should be instances of gym.Space)
issubclasstypegymr   Space)r   r   r   s      r   r
   zFlexDict.assertSpace   s6    C$u++sz'788==#==8==r   c                 H    d | j                                         D             S )Nc                 >    i | ]\  }}||                                 S  )sample).0kr   s      r   
<dictcomp>z#FlexDict.sample.<locals>.<dictcomp>!   s&    FFFha5<<>>FFFr   )r   itemsr   s    r   r   zFlexDict.sample    s$    FF$+2C2C2E2EFFFFr   c                     | j         |         S Nr   )r   keys     r   __getitem__zFlexDict.__getitem__#   s    {3r   c                 D    |                      |           || j        |<   d S r#   )r
   r   )r   r$   r   s      r   __setitem__zFlexDict.__setitem__&   s(     Cr   c                 z    dd                     d | j                                        D                       z   dz   S )Nz	FlexDict(z, c                 X    g | ]'\  }}t          |          d z   t          |          z   (S ):)str)r   r   ss      r   
<listcomp>z%FlexDict.__repr__.<locals>.<listcomp>-   s1    OOO41aQ#A.OOOr   ))joinr   r    r!   s    r   __repr__zFlexDict.__repr__*   sD    iiOO4;;L;L;N;NOOOPPQ	
r   r#   )__name__
__module____qualname____doc__r   r
   r   r%   r'   r0   __classcell__)r   s   @r   r   r      s         
( 
( 
( 
( 
( 
(> > >G G G     ! ! !
 
 
 
 
 
 
r   r   )	gymnasiumr   ray.rllib.utils.annotationsr   r   Dictr   r   r   r   <module>r9      sg        1 1 1 1 1 1 (
 (
 (
 (
 (
sz (
 (
 (
 (
 (
r   