Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pytoolconfig for
openSUSE:Factory checked in at 2024-03-17 22:15:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytoolconfig (Old)
and /work/SRC/openSUSE:Factory/.python-pytoolconfig.new.1905 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytoolconfig"
Sun Mar 17 22:15:02 2024 rev:4 rq:1158464 version:1.3.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytoolconfig/python-pytoolconfig.changes
2024-01-06 18:41:12.141617119 +0100
+++
/work/SRC/openSUSE:Factory/.python-pytoolconfig.new.1905/python-pytoolconfig.changes
2024-03-17 22:15:25.779124320 +0100
@@ -1,0 +2,11 @@
+Sat Mar 16 11:57:12 UTC 2024 - Dirk Müller <[email protected]>
+
+- update to 1.3.1:
+ * Drop 3.7 support
+ * do sys path hack
+- update to 1.3.0:
+ * Enum Support
+ * Use trusted publishing
+ * deduplicate ci
+
+-------------------------------------------------------------------
Old:
----
pytoolconfig-1.2.6.tar.gz
New:
----
pytoolconfig-1.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytoolconfig.spec ++++++
--- /var/tmp/diff_new_pack.GDv8w8/_old 2024-03-17 22:15:26.299143342 +0100
+++ /var/tmp/diff_new_pack.GDv8w8/_new 2024-03-17 22:15:26.299143342 +0100
@@ -18,14 +18,14 @@
%{?sle15_python_module_pythons}
Name: python-pytoolconfig
-Version: 1.2.6
+Version: 1.3.1
Release: 0
Summary: Python tool configuration
License: LGPL-3.0-or-later
URL: https://github.com/bagel897/pytoolconfig
Source:
https://files.pythonhosted.org/packages/source/p/pytoolconfig/pytoolconfig-%{version}.tar.gz
-BuildRequires: %{python_module base >= 3.7}
-BuildRequires: %{python_module packaging >= 22}
+BuildRequires: %{python_module base >= 3.8}
+BuildRequires: %{python_module packaging >= 23.2}
BuildRequires: %{python_module pdm-backend}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module tomli >= 2.0.1 if %python-base < 3.11}
@@ -41,11 +41,11 @@
Requires: python-typing-extensions >= 4.4.0
%endif
# SECTION test
-BuildRequires: %{python_module Sphinx >= 4.5.0}
-BuildRequires: %{python_module platformdirs > 1.4.4}
-BuildRequires: %{python_module pydantic >= 1.7.4}
+BuildRequires: %{python_module Sphinx >= 7.1.2}
+BuildRequires: %{python_module platformdirs >= 3.11.0 }
+BuildRequires: %{python_module pydantic >= 2.5.3}
BuildRequires: %{python_module pytest}
-BuildRequires: %{python_module tabulate >= 0.8.9}
+BuildRequires: %{python_module tabulate >= 0.9.0}
# /SECTION
%python_subpackages
@@ -57,7 +57,7 @@
%package global
Summary: [global] extra for %{python_flavor}-pytoolconfig
-Requires: python-platformdirs >= 1.4.4
+Requires: python-platformdirs >= 3.11.0
Requires: python-pytoolconfig = %{version}
%description global
@@ -65,7 +65,7 @@
%package validation
Summary: [validation] extra for %{python_flavor}-pytoolconfig
-Requires: python-pydantic >= 1.7.4
+Requires: python-pydantic >= 2.5.3
Requires: python-pytoolconfig = %{version}
%description validation
++++++ pytoolconfig-1.2.6.tar.gz -> pytoolconfig-1.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytoolconfig-1.2.6/PKG-INFO
new/pytoolconfig-1.3.1/PKG-INFO
--- old/pytoolconfig-1.2.6/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
+++ new/pytoolconfig-1.3.1/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +1,20 @@
Metadata-Version: 2.1
Name: pytoolconfig
-Version: 1.2.6
+Version: 1.3.1
Summary: Python tool configuration
Author-Email: bageljr <[email protected]>
License: LGPL-3.0-or-later
Project-URL: Homepage, https://github.com/bageljrkhanofemus/pytoolconfig
-Requires-Python: >=3.7
+Requires-Python: >=3.8
Requires-Dist: tomli>=2.0.1; python_version < "3.11"
-Requires-Dist: packaging>=22.0
-Requires-Dist: typing-extensions>=4.4.0; python_version < "3.8"
-Requires-Dist: pydantic>=1.7.4; extra == "validation"
-Requires-Dist: platformdirs>=1.4.4; extra == "global"
-Requires-Dist: tabulate>=0.8.9; extra == "doc"
-Requires-Dist: sphinx>=4.5.0; extra == "doc"
-Requires-Dist: sphinx>=4.5.0; extra == "gendocs"
-Requires-Dist: sphinx-autodoc-typehints>=1.18.1; extra == "gendocs"
-Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "gendocs"
+Requires-Dist: packaging>=23.2
+Requires-Dist: pydantic>=2.5.3; extra == "validation"
+Requires-Dist: platformdirs>=3.11.0; extra == "global"
+Requires-Dist: tabulate>=0.9.0; extra == "doc"
+Requires-Dist: sphinx>=7.1.2; extra == "doc"
+Requires-Dist: sphinx>=7.1.2; extra == "gendocs"
+Requires-Dist: sphinx-autodoc-typehints>=1.25.2; extra == "gendocs"
+Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "gendocs"
Requires-Dist: pytoolconfig[doc]; extra == "gendocs"
Provides-Extra: validation
Provides-Extra: global
@@ -30,7 +29,7 @@
The goal of this project is to manage configuration for python tools, such as
rope and add support for a pyproject.toml configuration file.
[Documentation](https://pytoolconfig.readthedocs.io/en/latest/) This library
-only supports python 3.7 to 3.11. 3.12 plus may work, but isn't tested.
+only supports python 3.8 to 3.12. 3.13+ may work, but isn't tested.
## Development
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytoolconfig-1.2.6/README.md
new/pytoolconfig-1.3.1/README.md
--- old/pytoolconfig-1.2.6/README.md 2023-09-16 20:15:01.532572000 +0200
+++ new/pytoolconfig-1.3.1/README.md 2024-01-11 17:24:56.724668300 +0100
@@ -5,7 +5,7 @@
The goal of this project is to manage configuration for python tools, such as
rope and add support for a pyproject.toml configuration file.
[Documentation](https://pytoolconfig.readthedocs.io/en/latest/) This library
-only supports python 3.7 to 3.11. 3.12 plus may work, but isn't tested.
+only supports python 3.8 to 3.12. 3.13+ may work, but isn't tested.
## Development
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytoolconfig-1.2.6/pyproject.toml
new/pytoolconfig-1.3.1/pyproject.toml
--- old/pytoolconfig-1.2.6/pyproject.toml 2023-10-15 00:00:21.084315800
+0200
+++ new/pytoolconfig-1.3.1/pyproject.toml 2024-01-11 17:25:08.704626800
+0100
@@ -4,15 +4,14 @@
description = "Python tool configuration"
dependencies = [
"tomli>=2.0.1; python_version < \"3.11\"",
- "packaging>=22.0",
- "typing-extensions>=4.4.0; python_version < \"3.8\"",
+ "packaging>=23.2",
]
-requires-python = ">=3.7"
+requires-python = ">=3.8"
readme = "README.md"
authors = [
{ name = "bageljr", email = "[email protected]" },
]
-version = "1.2.6"
+version = "1.3.1"
[project.license]
text = "LGPL-3.0-or-later"
@@ -22,19 +21,19 @@
[project.optional-dependencies]
validation = [
- "pydantic>=1.7.4",
+ "pydantic>=2.5.3",
]
global = [
- "platformdirs>=1.4.4",
+ "platformdirs>=3.11.0",
]
doc = [
- "tabulate>=0.8.9",
- "sphinx>=4.5.0",
+ "tabulate>=0.9.0",
+ "sphinx>=7.1.2",
]
gendocs = [
- "sphinx>=4.5.0",
- "sphinx-autodoc-typehints>=1.18.1",
- "sphinx-rtd-theme>=1.0.0",
+ "sphinx>=7.1.2",
+ "sphinx-autodoc-typehints>=1.25.2",
+ "sphinx-rtd-theme>=2.0.0",
"pytoolconfig[doc]",
]
@@ -43,16 +42,16 @@
[tool.pdm.dev-dependencies]
dev = [
- "pytest>=7.2.0",
- "mypy>=0.991",
- "types-tabulate>=0.9.0.2",
- "tox>=4.0.8",
- "tox-pdm>=0.6.0",
- "types-docutils>=0.19.1.9",
- "tox-gh>=1.0.0",
+ "pytest>=7.4.4",
+ "mypy>=1.8.0",
+ "types-tabulate>=0.9.0.20240106",
+ "tox>=4.11.4",
+ "tox-pdm>=0.7.2",
+ "types-docutils>=0.20.0.20240106",
+ "tox-gh>=1.3.1",
"pytest-emoji>=0.2.0",
"pytest-md>=0.2.0",
- "pydantic>=2.3.0",
+ "pydantic>=2.5.3",
]
[tool.pytoolconfig]
@@ -85,7 +84,7 @@
"SLF001",
"FA100",
]
-target-version = "py37"
+target-version = "py38"
force-exclude = true
[tool.ruff.per-file-ignores]
@@ -107,7 +106,7 @@
]
[tool.tox]
-legacy_tox_ini = "[tox]\nenvlist = py37,py38, py39, py310, py311,
py312\nisolated_build = True\n\n[gh-actions]\npython =\n 3.7: py37\n 3.8:
py38\n 3.9: py39\n 3.10: py310\n 3.11: py311\n 3.12:
py312\n[testenv]\nextras = doc, global\ngroups = dev\ncommands = pytest\n"
+legacy_tox_ini = "[tox]\nmin_version = 4.0\nenvlist = py38, py39, py310,
py311, py312\nisolated_build = True\n\n[gh-actions]\npython =\n 3.8: py38\n
3.9: py39\n 3.10: py310\n 3.11: py311\n 3.12:
py312\n[testenv]\ngroups = dev, doc, global\ncommands = pytest\n"
[tool.pylint.format]
max-line-length = "88"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytoolconfig-1.2.6/src/pytoolconfig/documentation.py
new/pytoolconfig-1.3.1/src/pytoolconfig/documentation.py
--- old/pytoolconfig-1.2.6/src/pytoolconfig/documentation.py 2023-09-16
20:15:01.532572000 +0200
+++ new/pytoolconfig-1.3.1/src/pytoolconfig/documentation.py 2024-01-11
17:24:56.724668300 +0100
@@ -3,7 +3,6 @@
from __future__ import annotations
-import sys
from dataclasses import is_dataclass
from typing import TYPE_CHECKING, Any, Generator
@@ -15,6 +14,8 @@
from .pytoolconfig import PyToolConfig
from .types import ConfigField
+from typing import get_origin
+
from sphinx.ext.autodoc import ClassDocumenter
from tabulate import tabulate
@@ -22,11 +23,6 @@
from .sources import Source
from .universal_config import UniversalConfig
-if sys.version_info < (3, 8, 0):
- from typing_extensions import get_origin
-else:
- from typing import get_origin
-
def _type_to_str(type_to_print: type[Any]) -> str | None:
if type_to_print is None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytoolconfig-1.2.6/src/pytoolconfig/fields.py
new/pytoolconfig-1.3.1/src/pytoolconfig/fields.py
--- old/pytoolconfig-1.2.6/src/pytoolconfig/fields.py 2023-09-16
20:15:01.532572000 +0200
+++ new/pytoolconfig-1.3.1/src/pytoolconfig/fields.py 2024-01-11
17:24:56.724668300 +0100
@@ -23,7 +23,7 @@
@overload
-def field( # noqa: PLR0913
+def field(
default: T,
description: str | None = None,
command_line: tuple[str] | None = None,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytoolconfig-1.2.6/src/pytoolconfig/utils.py
new/pytoolconfig-1.3.1/src/pytoolconfig/utils.py
--- old/pytoolconfig-1.2.6/src/pytoolconfig/utils.py 2023-09-16
20:15:01.534572100 +0200
+++ new/pytoolconfig-1.3.1/src/pytoolconfig/utils.py 2024-01-11
17:24:56.724668300 +0100
@@ -2,7 +2,9 @@
from __future__ import annotations
import sys
+import warnings
from dataclasses import Field, fields, is_dataclass, replace
+from enum import EnumMeta
from pathlib import Path
from typing import TYPE_CHECKING, Any, Generator, Mapping, TypeVar
@@ -90,6 +92,12 @@
return {field.name: field for field in fields(dataclass) if field.init}
+def _format_enum(option: Any) -> str:
+ if isinstance(option, str):
+ return f'"{option}"'
+ return str(option)
+
+
def _dict_to_dataclass(
dataclass: type[T],
dictionary: Mapping[str, Key],
@@ -103,7 +111,19 @@
assert isinstance(value, Mapping)
filtered_arg_dict[key_name] = _dict_to_dataclass(sub_table, value)
elif key_name in dataclass_fields:
- filtered_arg_dict[key_name] = value
+ keytype = dataclass_fields[key_name].type
+ if isinstance(keytype, EnumMeta):
+ try:
+ filtered_arg_dict[key_name] = keytype(value)
+ except ValueError:
+ valid = set(keytype._value2member_map_.keys())
+ warnings.warn(
+ f"{value} is not a valid option for {key_name},
skipping."
+ f"Valid options are: {','.join(map(_format_enum,
valid))}.",
+ stacklevel=1,
+ )
+ else:
+ filtered_arg_dict[key_name] = value
return dataclass(**filtered_arg_dict)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytoolconfig-1.2.6/tests/configfiles/pyproject.toml
new/pytoolconfig-1.3.1/tests/configfiles/pyproject.toml
--- old/pytoolconfig-1.2.6/tests/configfiles/pyproject.toml 2023-09-16
20:15:01.534572100 +0200
+++ new/pytoolconfig-1.3.1/tests/configfiles/pyproject.toml 2024-01-11
17:24:56.728668200 +0100
@@ -4,28 +4,28 @@
[project]
name = "tomli"
-version = "2.0.1" # DO NOT EDIT THIS LINE MANUALLY. LET bump2version UTILITY
DO IT
+version = "2.0.1" # DO NOT EDIT THIS LINE MANUALLY. LET bump2version UTILITY
DO IT
description = "A lil' TOML parser"
authors = [
- { name = "Taneli Hukkinen", email = "[email protected]" },
+ { name = "Taneli Hukkinen", email = "[email protected]" },
]
license = { file = "LICENSE" }
requires-python = ">=3.7"
readme = "README.md"
classifiers = [
- "License :: OSI Approved :: MIT License",
- "Operating System :: MacOS",
- "Operating System :: Microsoft :: Windows",
- "Operating System :: POSIX :: Linux",
- "Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: 3.8",
- "Programming Language :: Python :: 3.9",
- "Programming Language :: Python :: 3.10",
- "Programming Language :: Python :: Implementation :: CPython",
- "Programming Language :: Python :: Implementation :: PyPy",
- "Topic :: Software Development :: Libraries :: Python Modules",
- "Typing :: Typed",
+ "License :: OSI Approved :: MIT License",
+ "Operating System :: MacOS",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX :: Linux",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: Implementation :: CPython",
+ "Programming Language :: Python :: Implementation :: PyPy",
+ "Topic :: Software Development :: Libraries :: Python Modules",
+ "Typing :: Typed",
]
keywords = ["toml"]
@@ -34,6 +34,10 @@
"Changelog" = "https://github.com/hukkin/tomli/blob/master/CHANGELOG.md"
[tool.pytoolconfig]
formatter = "black"
+[tool.pytoolconfig2]
+option2 = true
+option1 = false
+option3 = "alternate"
[tool.fall_through]
foo_other = "ba"
[tool.isort]
@@ -50,16 +54,9 @@
[project.optional-dependencies]
-validation = [
- "pydantic>=1.7.4",
-]
-global = [
- "appdirs>=1.4.4",
-]
-doc = [
- "tabulate>=0.8.9",
- "sphinx>=4.5.0",
-]
+validation = ["pydantic>=1.7.4"]
+global = ["appdirs>=1.4.4"]
+doc = ["tabulate>=0.8.9", "sphinx>=4.5.0"]
[tool.tox]
legacy_tox_ini = '''
[tox]
@@ -135,12 +132,12 @@
[tool.coverage.report]
# Regexes for lines to exclude from consideration
exclude_lines = [
- # Re-enable the standard pragma (with extra strictness)
- '# pragma: no cover\b',
- # Code for static type checkers
- 'if TYPE_CHECKING:',
- # Scripts
- 'if __name__ == .__main__.:',
+ # Re-enable the standard pragma (with extra strictness)
+ '# pragma: no cover\b',
+ # Code for static type checkers
+ 'if TYPE_CHECKING:',
+ # Scripts
+ 'if __name__ == .__main__.:',
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytoolconfig-1.2.6/tests/test_enum.py
new/pytoolconfig-1.3.1/tests/test_enum.py
--- old/pytoolconfig-1.2.6/tests/test_enum.py 1970-01-01 01:00:00.000000000
+0100
+++ new/pytoolconfig-1.3.1/tests/test_enum.py 2024-01-11 17:24:56.728668200
+0100
@@ -0,0 +1,25 @@
+from dataclasses import dataclass
+from enum import Enum
+
+from pytoolconfig.pytoolconfig import PyToolConfig
+
+
+class Demo(Enum):
+ DISABLED = False
+ ENABLED = True
+ ALT = "alternate"
+
+
+@dataclass
+class EnumModel:
+ option1: Demo = Demo.DISABLED
+ option2: Demo = Demo.DISABLED
+ option3: Demo = Demo.DISABLED
+
+
+def test_simple(cwd):
+ config = PyToolConfig("pytoolconfig2", cwd, EnumModel)
+ result = config.parse()
+ assert result.option1 == Demo.DISABLED
+ assert result.option2 == Demo.ENABLED
+ assert result.option3 == Demo.ALT