Skip to main content
Glama
pydantic_utils.py1.4 kB
""" Утилиты для работы с Pydantic v2. """ from typing import Any, Type, TypeVar T = TypeVar("T") def lenient_issubclass( cls: Any, class_or_tuple: Type[Any] | tuple[Type[Any], ...] ) -> bool: """ Безопасная проверка наследования, которая не вызывает исключений. Args: cls: Класс для проверки class_or_tuple: Класс или кортеж классов для сравнения Returns: bool: True если cls является подклассом class_or_tuple, иначе False """ try: return isinstance(cls, type) and issubclass(cls, class_or_tuple) except TypeError: return False def smart_deepcopy(value: T) -> T: """ Умное глубокое копирование объектов Pydantic. В Pydantic v2 рекомендуется использовать model_copy() для моделей и стандартный copy.deepcopy() для остальных объектов. Args: value: Значение для копирования Returns: Копия значения """ from copy import deepcopy from pydantic import BaseModel if isinstance(value, BaseModel): return value.model_copy(deep=True) # type: ignore return deepcopy(value)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eagurin/myaiserv'

If you have feedback or need assistance with the MCP directory API, please join our Discord server