From 33cf6e0bdc4c75cb7b8f5bac2645ed2c60598731218d2c65389ccc63fb28bd38 Mon Sep 17 00:00:00 2001 From: Steve Kowalik Date: Fri, 4 Apr 2025 04:54:24 +0000 Subject: [PATCH] - Update to 2.8.1: * Fix for init source kwarg alias resolution * Revert usage of positional only argument in BaseSettings.__init__ * Revert use of object instead of Any * CLI support for optional and variadic positional args * Improve env_prefix config doc * Add env_nested_max_split setting * Avoid using Any in BaseSettings signature to avoid mypy errors * Asynchronous CLI methods in CliApp * Don't explode env vars if env_nested_delimiter is empty - Add patch use-typing_objects.patch: * Use typing_inspection.typing_objects rather than isinstance. - Refreshed patch fix-settings-dump.patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic-settings?expand=0&rev=14 --- fix-settings-dump.patch | 8 ++++---- pydantic_settings-2.7.1.tar.gz | 3 --- pydantic_settings-2.8.1.tar.gz | 3 +++ python-pydantic-settings.changes | 17 ++++++++++++++++ python-pydantic-settings.spec | 7 +++++-- use-typing_objects.patch | 33 ++++++++++++++++++++++++++++++++ 6 files changed, 62 insertions(+), 9 deletions(-) delete mode 100644 pydantic_settings-2.7.1.tar.gz create mode 100644 pydantic_settings-2.8.1.tar.gz create mode 100644 use-typing_objects.patch diff --git a/fix-settings-dump.patch b/fix-settings-dump.patch index 8f8d82b..3b001eb 100644 --- a/fix-settings-dump.patch +++ b/fix-settings-dump.patch @@ -1,7 +1,7 @@ -Index: pydantic_settings-2.7.1/docs/index.md +Index: pydantic_settings-2.8.1/docs/index.md =================================================================== ---- pydantic_settings-2.7.1.orig/docs/index.md -+++ pydantic_settings-2.7.1/docs/index.md +--- pydantic_settings-2.8.1.orig/docs/index.md ++++ pydantic_settings-2.8.1/docs/index.md @@ -72,9 +72,9 @@ print(Settings().model_dump()) { 'auth_key': 'xxx', @@ -15,7 +15,7 @@ Index: pydantic_settings-2.7.1/docs/index.md 'special_function': math.cos, 'domains': set(), 'more_settings': {'foo': 'bar', 'apple': 1}, -@@ -1952,7 +1952,7 @@ class Settings(BaseSettings): +@@ -2075,7 +2075,7 @@ class Settings(BaseSettings): print(Settings(database_dsn='postgres://postgres@localhost:5432/kwargs_db')) diff --git a/pydantic_settings-2.7.1.tar.gz b/pydantic_settings-2.7.1.tar.gz deleted file mode 100644 index ca7159f..0000000 --- a/pydantic_settings-2.7.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10c9caad35e64bfb3c2fbf70a078c0e25cc92499782e5200747f942a065dec93 -size 79920 diff --git a/pydantic_settings-2.8.1.tar.gz b/pydantic_settings-2.8.1.tar.gz new file mode 100644 index 0000000..95bbc6c --- /dev/null +++ b/pydantic_settings-2.8.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585 +size 83550 diff --git a/python-pydantic-settings.changes b/python-pydantic-settings.changes index e7705c2..9305387 100644 --- a/python-pydantic-settings.changes +++ b/python-pydantic-settings.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Fri Apr 4 04:53:17 UTC 2025 - Steve Kowalik + +- Update to 2.8.1: + * Fix for init source kwarg alias resolution + * Revert usage of positional only argument in BaseSettings.__init__ + * Revert use of object instead of Any + * CLI support for optional and variadic positional args + * Improve env_prefix config doc + * Add env_nested_max_split setting + * Avoid using Any in BaseSettings signature to avoid mypy errors + * Asynchronous CLI methods in CliApp + * Don't explode env vars if env_nested_delimiter is empty +- Add patch use-typing_objects.patch: + * Use typing_inspection.typing_objects rather than isinstance. +- Refreshed patch fix-settings-dump.patch + ------------------------------------------------------------------- Tue Jan 28 02:23:01 UTC 2025 - Steve Kowalik diff --git a/python-pydantic-settings.spec b/python-pydantic-settings.spec index 82742a9..a033d20 100644 --- a/python-pydantic-settings.spec +++ b/python-pydantic-settings.spec @@ -26,7 +26,7 @@ %endif %{?sle15_python_module_pythons} Name: python-pydantic-settings%{psuffix} -Version: 2.7.1 +Version: 2.8.1 Release: 0 Summary: Settings management using Pydantic License: MIT @@ -34,6 +34,8 @@ URL: https://github.com/pydantic/pydantic-settings Source: https://files.pythonhosted.org/packages/source/p/pydantic-settings/pydantic_settings-%{version}.tar.gz # PATCH-FIX-OPENSUSE Support Pydantic 2.10 changes. Patch0: fix-settings-dump.patch +# PATCH-FIX-OPENSUSE Use typing_inspection.typing_objects (adapted from upstream) +Patch1: use-typing_objects.patch BuildRequires: %{python_module hatchling} BuildRequires: %{python_module pip} BuildRequires: python-rpm-macros @@ -48,6 +50,7 @@ BuildRequires: %{python_module pytest} BuildRequires: fdupes Requires: python-pydantic >= 2.3.0 Requires: python-python-dotenv >= 0.21.0 +Requires: python-typing-inspection >= 0.4.0 Suggests: python-pyyaml >= 6.0.1 Suggests: python-tomli >= 2.0.1 BuildArch: noarch @@ -71,7 +74,7 @@ Settings management using Pydantic, this is the new official home of Pydantic's %check %if %{with test} # This test requires azure -skiptest="test_docs_examples[docs/index.md:1680-1724]" +skiptest="test_docs_examples[docs/index.md:1803-1847]" %pytest -k "not ($skiptest)" %endif diff --git a/use-typing_objects.patch b/use-typing_objects.patch new file mode 100644 index 0000000..97fe454 --- /dev/null +++ b/use-typing_objects.patch @@ -0,0 +1,33 @@ +Index: pydantic_settings-2.8.1/pydantic_settings/sources.py +=================================================================== +--- pydantic_settings-2.8.1.orig/pydantic_settings/sources.py ++++ pydantic_settings-2.8.1/pydantic_settings/sources.py +@@ -45,6 +45,7 @@ from pydantic.dataclasses import is_pyda + from pydantic.fields import FieldInfo + from pydantic_core import PydanticUndefined + from typing_extensions import Annotated, _AnnotatedAlias, get_args, get_origin ++from typing_inspection import typing_objects + + from pydantic_settings.utils import path_type_label + +@@ -1996,7 +1997,7 @@ class CliSettingsSource(EnvSettingsSourc + return '...' + elif isinstance(obj, Representation): + return repr(obj) +- elif isinstance(obj, typing_extensions.TypeAliasType): ++ elif typing_objects.is_typealiastype(obj): + return str(obj) + + if not isinstance(obj, (typing_base, WithArgsTypes, type)): +Index: pydantic_settings-2.8.1/pyproject.toml +=================================================================== +--- pydantic_settings-2.8.1.orig/pyproject.toml ++++ pydantic_settings-2.8.1/pyproject.toml +@@ -43,6 +43,7 @@ requires-python = '>=3.8' + dependencies = [ + 'pydantic>=2.7.0', + 'python-dotenv>=0.21.0', ++ 'typing-inspection>=0.4.0', + ] + dynamic = ['version'] +