SILENT KILLERPanel

Current Path: > > opt > > hc_python > > lib > python3.12 > site-packages > > > pydantic >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt//hc_python//lib/python3.12/site-packages///pydantic/

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
_internal Directory - -
deprecated Directory - -
experimental Directory - -
plugin Directory - -
v1 Directory - -
__init__.py File 13931 bytes April 04 2025 08:02:35.
_migration.py File 11913 bytes April 04 2025 08:02:35.
alias_generators.py File 2124 bytes April 04 2025 08:02:35.
aliases.py File 4819 bytes April 04 2025 08:02:35.
annotated_handlers.py File 4353 bytes April 04 2025 08:02:35.
class_validators.py File 148 bytes April 04 2025 08:02:35.
color.py File 21494 bytes April 04 2025 08:02:35.
config.py File 35112 bytes April 04 2025 08:02:35.
dataclasses.py File 13909 bytes April 04 2025 08:02:35.
datetime_parse.py File 150 bytes April 04 2025 08:02:35.
decorator.py File 145 bytes April 04 2025 08:02:35.
env_settings.py File 148 bytes April 04 2025 08:02:35.
error_wrappers.py File 150 bytes April 04 2025 08:02:35.
errors.py File 4835 bytes April 04 2025 08:02:35.
fields.py File 51746 bytes April 04 2025 08:02:35.
functional_serializers.py File 14616 bytes April 04 2025 08:02:35.
functional_validators.py File 24224 bytes April 04 2025 08:02:35.
generics.py File 144 bytes April 04 2025 08:02:35.
json.py File 140 bytes April 04 2025 08:02:35.
json_schema.py File 106297 bytes April 04 2025 08:02:35.
main.py File 70106 bytes April 04 2025 08:02:35.
mypy.py File 56972 bytes April 04 2025 08:02:35.
networks.py File 22713 bytes April 04 2025 08:02:35.
parse.py File 141 bytes April 04 2025 08:02:35.
py.typed File 0 bytes April 04 2025 08:02:35.
root_model.py File 6194 bytes April 04 2025 08:02:35.
schema.py File 142 bytes April 04 2025 08:02:35.
tools.py File 141 bytes April 04 2025 08:02:35.
type_adapter.py File 24974 bytes April 04 2025 08:02:35.
types.py File 95744 bytes April 04 2025 08:02:35.
typing.py File 138 bytes April 04 2025 08:02:35.
utils.py File 141 bytes April 04 2025 08:02:35.
validate_call_decorator.py File 2127 bytes April 04 2025 08:02:35.
validators.py File 146 bytes April 04 2025 08:02:35.
version.py File 2442 bytes April 04 2025 08:02:35.
warnings.py File 2711 bytes April 04 2025 08:02:35.

Reading File: //opt//hc_python//lib/python3.12/site-packages///pydantic//root_model.py

"""RootModel class and type definitions."""

from __future__ import annotations as _annotations

import typing
from copy import copy, deepcopy

from pydantic_core import PydanticUndefined

from . import PydanticUserError
from ._internal import _model_construction, _repr
from .main import BaseModel, _object_setattr

if typing.TYPE_CHECKING:
    from typing import Any

    from typing_extensions import Literal, Self, dataclass_transform

    from .fields import Field as PydanticModelField
    from .fields import PrivateAttr as PydanticModelPrivateAttr

    # dataclass_transform could be applied to RootModel directly, but `ModelMetaclass`'s dataclass_transform
    # takes priority (at least with pyright). We trick type checkers into thinking we apply dataclass_transform
    # on a new metaclass.
    @dataclass_transform(kw_only_default=False, field_specifiers=(PydanticModelField, PydanticModelPrivateAttr))
    class _RootModelMetaclass(_model_construction.ModelMetaclass): ...
else:
    _RootModelMetaclass = _model_construction.ModelMetaclass

__all__ = ('RootModel',)

RootModelRootType = typing.TypeVar('RootModelRootType')


class RootModel(BaseModel, typing.Generic[RootModelRootType], metaclass=_RootModelMetaclass):
    """Usage docs: https://docs.pydantic.dev/2.8/concepts/models/#rootmodel-and-custom-root-types

    A Pydantic `BaseModel` for the root object of the model.

    Attributes:
        root: The root object of the model.
        __pydantic_root_model__: Whether the model is a RootModel.
        __pydantic_private__: Private fields in the model.
        __pydantic_extra__: Extra fields in the model.

    """

    __pydantic_root_model__ = True
    __pydantic_private__ = None
    __pydantic_extra__ = None

    root: RootModelRootType

    def __init_subclass__(cls, **kwargs):
        extra = cls.model_config.get('extra')
        if extra is not None:
            raise PydanticUserError(
                "`RootModel` does not support setting `model_config['extra']`", code='root-model-extra'
            )
        super().__init_subclass__(**kwargs)

    def __init__(self, /, root: RootModelRootType = PydanticUndefined, **data) -> None:  # type: ignore
        __tracebackhide__ = True
        if data:
            if root is not PydanticUndefined:
                raise ValueError(
                    '"RootModel.__init__" accepts either a single positional argument or arbitrary keyword arguments'
                )
            root = data  # type: ignore
        self.__pydantic_validator__.validate_python(root, self_instance=self)

    __init__.__pydantic_base_init__ = True  # pyright: ignore[reportFunctionMemberAccess]

    @classmethod
    def model_construct(cls, root: RootModelRootType, _fields_set: set[str] | None = None) -> Self:  # type: ignore
        """Create a new model using the provided root object and update fields set.

        Args:
            root: The root object of the model.
            _fields_set: The set of fields to be updated.

        Returns:
            The new model.

        Raises:
            NotImplemented: If the model is not a subclass of `RootModel`.
        """
        return super().model_construct(root=root, _fields_set=_fields_set)

    def __getstate__(self) -> dict[Any, Any]:
        return {
            '__dict__': self.__dict__,
            '__pydantic_fields_set__': self.__pydantic_fields_set__,
        }

    def __setstate__(self, state: dict[Any, Any]) -> None:
        _object_setattr(self, '__pydantic_fields_set__', state['__pydantic_fields_set__'])
        _object_setattr(self, '__dict__', state['__dict__'])

    def __copy__(self) -> Self:
        """Returns a shallow copy of the model."""
        cls = type(self)
        m = cls.__new__(cls)
        _object_setattr(m, '__dict__', copy(self.__dict__))
        _object_setattr(m, '__pydantic_fields_set__', copy(self.__pydantic_fields_set__))
        return m

    def __deepcopy__(self, memo: dict[int, Any] | None = None) -> Self:
        """Returns a deep copy of the model."""
        cls = type(self)
        m = cls.__new__(cls)
        _object_setattr(m, '__dict__', deepcopy(self.__dict__, memo=memo))
        # This next line doesn't need a deepcopy because __pydantic_fields_set__ is a set[str],
        # and attempting a deepcopy would be marginally slower.
        _object_setattr(m, '__pydantic_fields_set__', copy(self.__pydantic_fields_set__))
        return m

    if typing.TYPE_CHECKING:

        def model_dump(  # type: ignore
            self,
            *,
            mode: Literal['json', 'python'] | str = 'python',
            include: Any = None,
            exclude: Any = None,
            context: dict[str, Any] | None = None,
            by_alias: bool = False,
            exclude_unset: bool = False,
            exclude_defaults: bool = False,
            exclude_none: bool = False,
            round_trip: bool = False,
            warnings: bool | Literal['none', 'warn', 'error'] = True,
            serialize_as_any: bool = False,
        ) -> Any:
            """This method is included just to get a more accurate return type for type checkers.
            It is included in this `if TYPE_CHECKING:` block since no override is actually necessary.

            See the documentation of `BaseModel.model_dump` for more details about the arguments.

            Generally, this method will have a return type of `RootModelRootType`, assuming that `RootModelRootType` is
            not a `BaseModel` subclass. If `RootModelRootType` is a `BaseModel` subclass, then the return
            type will likely be `dict[str, Any]`, as `model_dump` calls are recursive. The return type could
            even be something different, in the case of a custom serializer.
            Thus, `Any` is used here to catch all of these cases.
            """
            ...

    def __eq__(self, other: Any) -> bool:
        if not isinstance(other, RootModel):
            return NotImplemented
        return self.model_fields['root'].annotation == other.model_fields['root'].annotation and super().__eq__(other)

    def __repr_args__(self) -> _repr.ReprArgs:
        yield 'root', self.root

SILENT KILLER Tool