o
    -wi                  
   @   s   d dl mZ d dlmZ ddlmZmZmZm	Z	m
Z
 ejjeejjeejjeejje
ejje	iZdd e D ZG dd dZd	S )
    )Optional)wandb_internal_pb2   )AuthenticationError	CommErrorErrorUnsupportedError
UsageErrorc                 C   s   i | ]\}}||qS  r
   ).0kvr
   r
   N/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/errors/util.py
<dictcomp>   s    r   c                   @   sB   e Zd ZdZedejdee fddZ	e
deddfdd	Zd
S )ProtobufErrorHandlerz6Converts protobuf errors to exceptions and vice versa.errorreturnc                 C   s0   |   sdS | jtv rt| j | jS t| jS )zConvert a protobuf error to an exception.

        Args:
            error: The protobuf error to convert.

        Returns:
            The corresponding exception.

        N)SerializeToStringcodeto_exception_mapmessager   )r   r
   r
   r   to_exception   s
   

z!ProtobufErrorHandler.to_exceptionexczpb.ErrorInfoc                 C   sL   t |ts	tdd}t|jD ]}|tv rt| } nqtj|t|dS )zConvert an wandb error to a protobuf error message.

        Args:
            exc: The exception to convert.

        Returns:
            The corresponding protobuf error message.
        z,exc must be a subclass of wandb.errors.ErrorN)r   r   )	
isinstancer   	TypeErrortype__mro__from_exception_mappb	ErrorInfostr)clsr   r   subclassr
   r
   r   from_exception'   s   

z#ProtobufErrorHandler.from_exceptionN)__name__
__module____qualname____doc__staticmethodr   r   r   r   r   classmethodr#   r
   r
   r
   r   r      s    r   N)typingr   wandb.protor   r    r   r   r   r   r	   r   UNKNOWNCOMMUNICATIONAUTHENTICATIONUSAGEUNSUPPORTEDr   itemsr   r   r
   r
   r
   r   <module>   s    