aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/pydantic/deprecated/config.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/pydantic/deprecated/config.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/pydantic/deprecated/config.py')
-rw-r--r--.venv/lib/python3.12/site-packages/pydantic/deprecated/config.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pydantic/deprecated/config.py b/.venv/lib/python3.12/site-packages/pydantic/deprecated/config.py
new file mode 100644
index 00000000..45400c65
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pydantic/deprecated/config.py
@@ -0,0 +1,72 @@
+from __future__ import annotations as _annotations
+
+import warnings
+from typing import TYPE_CHECKING, Any
+
+from typing_extensions import Literal, deprecated
+
+from .._internal import _config
+from ..warnings import PydanticDeprecatedSince20
+
+if not TYPE_CHECKING:
+ # See PyCharm issues https://youtrack.jetbrains.com/issue/PY-21915
+ # and https://youtrack.jetbrains.com/issue/PY-51428
+ DeprecationWarning = PydanticDeprecatedSince20
+
+__all__ = 'BaseConfig', 'Extra'
+
+
+class _ConfigMetaclass(type):
+ def __getattr__(self, item: str) -> Any:
+ try:
+ obj = _config.config_defaults[item]
+ warnings.warn(_config.DEPRECATION_MESSAGE, DeprecationWarning)
+ return obj
+ except KeyError as exc:
+ raise AttributeError(f"type object '{self.__name__}' has no attribute {exc}") from exc
+
+
+@deprecated('BaseConfig is deprecated. Use the `pydantic.ConfigDict` instead.', category=PydanticDeprecatedSince20)
+class BaseConfig(metaclass=_ConfigMetaclass):
+ """This class is only retained for backwards compatibility.
+
+ !!! Warning "Deprecated"
+ BaseConfig is deprecated. Use the [`pydantic.ConfigDict`][pydantic.ConfigDict] instead.
+ """
+
+ def __getattr__(self, item: str) -> Any:
+ try:
+ obj = super().__getattribute__(item)
+ warnings.warn(_config.DEPRECATION_MESSAGE, DeprecationWarning)
+ return obj
+ except AttributeError as exc:
+ try:
+ return getattr(type(self), item)
+ except AttributeError:
+ # re-raising changes the displayed text to reflect that `self` is not a type
+ raise AttributeError(str(exc)) from exc
+
+ def __init_subclass__(cls, **kwargs: Any) -> None:
+ warnings.warn(_config.DEPRECATION_MESSAGE, DeprecationWarning)
+ return super().__init_subclass__(**kwargs)
+
+
+class _ExtraMeta(type):
+ def __getattribute__(self, __name: str) -> Any:
+ # The @deprecated decorator accesses other attributes, so we only emit a warning for the expected ones
+ if __name in {'allow', 'ignore', 'forbid'}:
+ warnings.warn(
+ "`pydantic.config.Extra` is deprecated, use literal values instead (e.g. `extra='allow'`)",
+ DeprecationWarning,
+ stacklevel=2,
+ )
+ return super().__getattribute__(__name)
+
+
+@deprecated(
+ "Extra is deprecated. Use literal values instead (e.g. `extra='allow'`)", category=PydanticDeprecatedSince20
+)
+class Extra(metaclass=_ExtraMeta):
+ allow: Literal['allow'] = 'allow'
+ ignore: Literal['ignore'] = 'ignore'
+ forbid: Literal['forbid'] = 'forbid'