o
    -wi                     @  sT   d dl mZ 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 )	    )annotations)AnyIterable)wandb_settings_pb2)	RunMoment)Settingsc                      sr   e Zd ZdZd" fddZd#d	d
Zd$ddZd%ddZd&ddZd'ddZ	d(ddZ
d)ddZd*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wandb_settings_pb2.SettingsreturnNonec                   s    |  |}t jdi | d S )N )_proto_to_dictsuper__init__)selfr	   data	__class__r   _/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/sdk/internal/settings_static.pyr      s   
zSettingsStatic.__init__dictc                   s  i }h dt tdrtjntj}fdd| D }g }|D ]}|dv r'q d }|| }t|j |dkrwt||d}|dkrLt	t||j
j}nk|d	krvi }	t||jj D ]\}
}i }|j D ]\}}|||< qf||	|
< q[|	}n@|d
ks|dkrt||}|jrt|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>   
__fields__model_configmodel_fieldsmodel_fields_set__pydantic_self____model_fields_set__pydantic_initialised__r   c                   s   i | ]\}}| vr||qS r   r   ).0kv)exclude_fieldsr   r   
<dictcomp>(   s    z1SettingsStatic._proto_to_dict.<locals>.<dictcomp>)reinit_stats_open_metrics_filtersvaluesequencemapping	fork_fromresume_from)runr%   metricc                 3  s    | ]}| v V  qd S Nr   )r   t)
annotationr   r   	<genexpr>T   s    z0SettingsStatic._proto_to_dict.<locals>.<genexpr>)tupleSequencelist   z?Only one of fork_from or resume_from can be specified, not both)hasattrr   r   r   itemsstrr.   getattr
WhichOneofr2   r&   r%   r'   r*   r   r+   appendHasFieldanylen
ValueError)r   r	   r   fieldsforks_specifiedkeyr%   
field_info
value_typeunpacked_mapping	outer_keyouter_valueunpacked_inner	inner_keyinner_valuer   )r.   r!   r   r      sj   





zSettingsStatic._proto_to_dictnamer6   r%   objectc                 C     t dNz*Error: SettingsStatic is a readonly objectAttributeError)r   rI   r%   r   r   r   __setattr__c      zSettingsStatic.__setattr__r@   valc                 C  rK   rL   rM   )r   r@   rQ   r   r   r   __setitem__f   rP   zSettingsStatic.__setitem__Iterable[str]c                 C  s
   | j  S r,   )__dict__keysr   r   r   r   rU   i      
zSettingsStatic.keysr   c                 C  s
   | j | S r,   rT   r   r@   r   r   r   __getitem__l   rW   zSettingsStatic.__getitem__c                 C  s*   z| j | W S  ty   td| w )Nz SettingsStatic has no attribute )rT   KeyErrorrN   )r   rI   r   r   r   __getattr__o   s
   zSettingsStatic.__getattr__c                 C  s
   t | jS r,   )r6   rT   rV   r   r   r   __str__u   rW   zSettingsStatic.__str__boolc                 C  s
   || j v S r,   rX   rY   r   r   r   __contains__x   rW   zSettingsStatic.__contains__)r	   r
   r   r   )r	   r
   r   r   )rI   r6   r%   rJ   r   r   )r@   r6   rQ   rJ   r   r   )r   rS   )r@   r6   r   r   )rI   r6   r   r   )r   r6   )r@   r6   r   r^   )__name__
__module____qualname____doc__r   r   rO   rR   rU   rZ   r\   r]   r_   __classcell__r   r   r   r   r   
   s    

N




r   N)
__future__r   typingr   r   wandb.protor   wandb.sdk.libr   wandb.sdk.wandb_settingsr   r   r   r   r   r   <module>   s    