Spaces:
Paused
Paused
| from abc import abstractmethod | |
| from typing import Dict, Type | |
| from overrides import overrides, EnforceOverrides | |
| class ChromaError(Exception, EnforceOverrides): | |
| def code(self) -> int: | |
| """Return an appropriate HTTP response code for this error""" | |
| return 400 # Bad Request | |
| def message(self) -> str: | |
| return ", ".join(self.args) | |
| def name(cls) -> str: | |
| """Return the error name""" | |
| pass | |
| class InvalidDimensionException(ChromaError): | |
| def name(cls) -> str: | |
| return "InvalidDimension" | |
| class InvalidCollectionException(ChromaError): | |
| def name(cls) -> str: | |
| return "InvalidCollection" | |
| class IDAlreadyExistsError(ChromaError): | |
| def code(self) -> int: | |
| return 409 # Conflict | |
| def name(cls) -> str: | |
| return "IDAlreadyExists" | |
| class ChromaAuthError(ChromaError): | |
| def code(self) -> int: | |
| return 403 | |
| def name(cls) -> str: | |
| return "AuthError" | |
| def message(self) -> str: | |
| return "Forbidden" | |
| class DuplicateIDError(ChromaError): | |
| def name(cls) -> str: | |
| return "DuplicateID" | |
| class InvalidUUIDError(ChromaError): | |
| def name(cls) -> str: | |
| return "InvalidUUID" | |
| class InvalidHTTPVersion(ChromaError): | |
| def name(cls) -> str: | |
| return "InvalidHTTPVersion" | |
| class AuthorizationError(ChromaError): | |
| def code(self) -> int: | |
| return 401 | |
| def name(cls) -> str: | |
| return "AuthorizationError" | |
| error_types: Dict[str, Type[ChromaError]] = { | |
| "InvalidDimension": InvalidDimensionException, | |
| "InvalidCollection": InvalidCollectionException, | |
| "IDAlreadyExists": IDAlreadyExistsError, | |
| "DuplicateID": DuplicateIDError, | |
| "InvalidUUID": InvalidUUIDError, | |
| "InvalidHTTPVersion": InvalidHTTPVersion, | |
| "AuthorizationError": AuthorizationError, | |
| } | |