o
    ni2                     @   sH   d dl mZmZ d dlmZ d dlmZ d dlmZ G dd deZ	dS )    )AnyIterable)wandb_settings_pb2)	RunMoment)Settingsc                       s   e Zd ZdZdejddf fddZdejdefddZd	e	d
e
ddfddZde	de
ddfddZdddZde	defddZd	e	defddZde	fddZde	defddZ  ZS )SettingsStaticzA readonly object that wraps a protobuf Settings message.

    Implements the mapping protocol, so you can access settings as
    attributes or items.
    protoreturnNc                    s    |  |}t jdi | d S )N )_proto_to_dictsuper__init__)selfr   data	__class__r
   `/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/internal/settings_static.pyr      s   
zSettingsStatic.__init__c                    s^  i }g }t jD ]}d }t j| }t|j |dkrZt||d}|dkr/tt||jj}nk|dkrYi }t||j	j
 D ]\}	}
i }|
j
 D ]\}}|||< qI|||	< q>|}n@|dksb|dkr}t||}|jrzt|j|j|jd}|| n d }n||rt||j}t fdd	d
D rt|}nd }|d ur|||< qt|dkrtd|S )N_stats_open_metrics_filtersvaluesequencemapping	fork_fromresume_from)runr   metricc                 3   s    | ]}| v V  qd S Nr
   ).0t
annotationr
   r   	<genexpr><   s    z0SettingsStatic._proto_to_dict.<locals>.<genexpr>)tupleSequencelist   z?Only one of fork_from or resume_from can be specified, not both)r   model_fieldsstrr   getattr
WhichOneofr#   r   r   r   itemsr   r   r   appendHasFieldanylen
ValueError)r   r   r   forks_specifiedkeyr   
field_info
value_typeunpacked_mapping	outer_keyouter_valueunpacked_inner	inner_keyinner_valuer
   r   r   r      sZ   







zSettingsStatic._proto_to_dictnamer   c                 C      t dNz*Error: SettingsStatic is a readonly objectAttributeError)r   r9   r   r
   r
   r   __setattr__K      zSettingsStatic.__setattr__r0   valc                 C   r:   r;   r<   )r   r0   r@   r
   r
   r   __setitem__N   r?   zSettingsStatic.__setitem__Iterable[str]c                 C   s
   | j  S r   )__dict__keysr   r
   r
   r   rD   Q      
zSettingsStatic.keysc                 C   s
   | j | S r   rC   r   r0   r
   r
   r   __getitem__T   rF   zSettingsStatic.__getitem__c                 C   s*   z| j | W S  ty   td| w )Nz SettingsStatic has no attribute )rC   KeyErrorr=   )r   r9   r
   r
   r   __getattr__W   s
   zSettingsStatic.__getattr__c                 C   s
   t | jS r   )r&   rC   rE   r
   r
   r   __str__]   rF   zSettingsStatic.__str__c                 C   s
   || j v S r   rG   rH   r
   r
   r   __contains__`   rF   zSettingsStatic.__contains__)r	   rB   )__name__
__module____qualname____doc__r   r   r   dictr   r&   objectr>   rA   rD   r   rI   rK   rL   boolrM   __classcell__r
   r
   r   r   r      s    8
r   N)
typingr   r   wandb.protor   wandb.sdk.libr   wandb.sdk.wandb_settingsr   r   r
   r
   r
   r   <module>   s
    