Добавлен класс CoreException

This commit is contained in:
2026-07-11 18:34:54 +03:00
parent 240ae2f448
commit 3fba091cbc
5 changed files with 195 additions and 2 deletions

View File

@@ -9,4 +9,5 @@
"""
from .core_enum import CoreEnum
from .core_exception import CoreException
from .core_test_case import CoreTestCase

View File

@@ -0,0 +1,59 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса CoreException
"""
from typing import Any
class CoreException(Exception):
"""
Реализует базовый функционал всех классов исключений проекта
"""
status_code: int
""" Код состояния ответа API """
detail: str | dict | list | None = None
""" Информация об ошибке """
meta: dict | None = None
""" Информация для обработки ошибки """
def __init__(self, status_code: int, detail: str | dict | list | None = None, meta: dict | None = None, **kwargs: Any):
"""
Инициализация
:param status_code: Код состояния ответа API
:param detail: Информация об ошибке
:param meta: Информация для обработки ошибки
:param kwargs: Дополнительные параметры
"""
self.status_code = status_code
self.detail = detail
self._process_meta(meta, **kwargs)
super().__init__()
def _process_meta(self, meta: dict | None, **kwargs: Any) -> None:
"""
Разбирает переданные параметры
:param meta: Метаданные
:param kwargs: Дополнительные аргументы
"""
# Метаданные
if meta is not None:
self.meta = meta
elif kwargs:
self.meta = {}
# Дополнительные параметры
if kwargs and self.meta is not None:
self.meta.update(kwargs)