exceptions: Remove AbstractEnum in favor of enum.auto.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2021-08-13 17:42:43 -07:00
committed by Tim Abbott
parent 0d061f44c1
commit 6ae5be6e75

View File

@@ -1,61 +1,39 @@
from enum import Enum from enum import Enum, auto
from typing import Any, Dict, List, NoReturn, Optional, Tuple, Type, TypeVar from typing import Any, Dict, List, Optional, Tuple
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
T = TypeVar("T", bound="AbstractEnum")
class ErrorCode(Enum):
class AbstractEnum(Enum): BAD_REQUEST = auto() # Generic name, from the name of HTTP 400.
"""An enumeration whose members are used strictly for their names.""" REQUEST_VARIABLE_MISSING = auto()
REQUEST_VARIABLE_INVALID = auto()
def __new__(cls: Type[T]) -> T: INVALID_JSON = auto()
obj = object.__new__(cls) BAD_IMAGE = auto()
obj._value_ = len(cls.__members__) + 1 REALM_UPLOAD_QUOTA = auto()
return obj BAD_NARROW = auto()
CANNOT_DEACTIVATE_LAST_USER = auto()
# Override all the `Enum` methods that use `_value_`. MISSING_HTTP_EVENT_HEADER = auto()
STREAM_DOES_NOT_EXIST = auto()
def __repr__(self) -> str: UNAUTHORIZED_PRINCIPAL = auto()
return str(self) # nocoverage UNSUPPORTED_WEBHOOK_EVENT_TYPE = auto()
BAD_EVENT_QUEUE_ID = auto()
def value(self) -> None: CSRF_FAILED = auto()
raise AssertionError("Not implemented") INVITATION_FAILED = auto()
INVALID_ZULIP_SERVER = auto()
def __reduce_ex__(self, proto: object) -> NoReturn: INVALID_MARKDOWN_INCLUDE_STATEMENT = auto()
raise AssertionError("Not implemented") REQUEST_CONFUSING_VAR = auto()
INVALID_API_KEY = auto()
INVALID_ZOOM_TOKEN = auto()
class ErrorCode(AbstractEnum): UNAUTHENTICATED_USER = auto()
BAD_REQUEST = () # Generic name, from the name of HTTP 400. NONEXISTENT_SUBDOMAIN = auto()
REQUEST_VARIABLE_MISSING = () RATE_LIMIT_HIT = auto()
REQUEST_VARIABLE_INVALID = () USER_DEACTIVATED = auto()
INVALID_JSON = () REALM_DEACTIVATED = auto()
BAD_IMAGE = () PASSWORD_AUTH_DISABLED = auto()
REALM_UPLOAD_QUOTA = () PASSWORD_RESET_REQUIRED = auto()
BAD_NARROW = () AUTHENTICATION_FAILED = auto()
CANNOT_DEACTIVATE_LAST_USER = ()
MISSING_HTTP_EVENT_HEADER = ()
STREAM_DOES_NOT_EXIST = ()
UNAUTHORIZED_PRINCIPAL = ()
UNSUPPORTED_WEBHOOK_EVENT_TYPE = ()
BAD_EVENT_QUEUE_ID = ()
CSRF_FAILED = ()
INVITATION_FAILED = ()
INVALID_ZULIP_SERVER = ()
INVALID_MARKDOWN_INCLUDE_STATEMENT = ()
REQUEST_CONFUSING_VAR = ()
INVALID_API_KEY = ()
INVALID_ZOOM_TOKEN = ()
UNAUTHENTICATED_USER = ()
NONEXISTENT_SUBDOMAIN = ()
RATE_LIMIT_HIT = ()
USER_DEACTIVATED = ()
REALM_DEACTIVATED = ()
PASSWORD_AUTH_DISABLED = ()
PASSWORD_RESET_REQUIRED = ()
AUTHENTICATION_FAILED = ()
class JsonableError(Exception): class JsonableError(Exception):