Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-deepmerge for openSUSE:Factory checked in at 2023-12-19 23:16:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-deepmerge (Old) and /work/SRC/openSUSE:Factory/.python-deepmerge.new.9037 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-deepmerge" Tue Dec 19 23:16:31 2023 rev:3 rq:1133986 version:1.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-deepmerge/python-deepmerge.changes 2023-05-30 22:02:38.551081056 +0200 +++ /work/SRC/openSUSE:Factory/.python-deepmerge.new.9037/python-deepmerge.changes 2023-12-19 23:16:41.607414714 +0100 @@ -1,0 +2,9 @@ +Tue Dec 19 09:34:58 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 1.1.1: + * Fix documentation for custom strategies + * Update Python versions + * Make predefined merge strategies work with built-in + collections subtypes + +------------------------------------------------------------------- Old: ---- deepmerge-1.1.0.tar.gz New: ---- deepmerge-1.1.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-deepmerge.spec ++++++ --- /var/tmp/diff_new_pack.DFFlQB/_old 2023-12-19 23:16:42.207436564 +0100 +++ /var/tmp/diff_new_pack.DFFlQB/_new 2023-12-19 23:16:42.211436709 +0100 @@ -18,17 +18,17 @@ %{?sle15_python_module_pythons} Name: python-deepmerge -Version: 1.1.0 +Version: 1.1.1 Release: 0 License: MIT Summary: A toolset to deeply merge python dictionaries URL: https://github.com/toumorokoshi/deepmerge Group: Development/Languages/Python Source: https://files.pythonhosted.org/packages/source/d/deepmerge/deepmerge-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.8} BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools_scm > 5} -BuildRequires: %{python_module setuptools} BuildRequires: %{python_module vcver} BuildRequires: %{python_module wheel} BuildRequires: fdupes ++++++ deepmerge-1.1.0.tar.gz -> deepmerge-1.1.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/deepmerge-1.1.0/.github/workflows/python-package.yaml new/deepmerge-1.1.1/.github/workflows/python-package.yaml --- old/deepmerge-1.1.0/.github/workflows/python-package.yaml 2022-10-25 07:23:59.000000000 +0200 +++ new/deepmerge-1.1.1/.github/workflows/python-package.yaml 2023-12-18 23:13:38.000000000 +0100 @@ -18,7 +18,7 @@ strategy: fail-fast: false matrix: - python-version: ["2.7", "3.8", "3.9", "3.10"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v2 @@ -34,14 +34,14 @@ run: | make build - name: lint - if: ${{ matrix.python-version == '3.10' }} + if: ${{ matrix.python-version == '3.12' }} run: | make lint - name: test run: | make test - name: pypi-release - if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.python-version == '3.10' }} + if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.python-version == '3.12' }} uses: pypa/gh-action-pypi-publish@master with: password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/deepmerge-1.1.0/PKG-INFO new/deepmerge-1.1.1/PKG-INFO --- old/deepmerge-1.1.0/PKG-INFO 2022-10-25 07:24:22.488194500 +0200 +++ new/deepmerge-1.1.1/PKG-INFO 2023-12-18 23:14:00.097812200 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: deepmerge -Version: 1.1.0 +Version: 1.1.1 Summary: a toolset to deeply merge python dictionaries. Home-page: http://deepmerge.readthedocs.io/en/latest/ Classifier: Development Status :: 5 - Production/Stable diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/deepmerge-1.1.0/deepmerge/_version.py new/deepmerge-1.1.1/deepmerge/_version.py --- old/deepmerge-1.1.0/deepmerge/_version.py 2022-10-25 07:24:22.000000000 +0200 +++ new/deepmerge-1.1.1/deepmerge/_version.py 2023-12-18 23:14:00.000000000 +0100 @@ -1,5 +1,16 @@ -# coding: utf-8 # file generated by setuptools_scm # don't change, don't track in version control -__version__ = version = '1.1.0' -__version_tuple__ = version_tuple = (1, 1, 0) +TYPE_CHECKING = False +if TYPE_CHECKING: + from typing import Tuple, Union + VERSION_TUPLE = Tuple[Union[int, str], ...] +else: + VERSION_TUPLE = object + +version: str +__version__: str +__version_tuple__: VERSION_TUPLE +version_tuple: VERSION_TUPLE + +__version__ = version = '1.1.1' +__version_tuple__ = version_tuple = (1, 1, 1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/deepmerge-1.1.0/deepmerge/merger.py new/deepmerge-1.1.1/deepmerge/merger.py --- old/deepmerge-1.1.0/deepmerge/merger.py 2022-10-25 07:23:59.000000000 +0200 +++ new/deepmerge-1.1.1/deepmerge/merger.py 2023-12-18 23:13:38.000000000 +0100 @@ -36,9 +36,9 @@ return self._type_conflict_strategy(self, *args) def value_strategy(self, path, base, nxt): - if not (isinstance(base, type(nxt)) or isinstance(nxt, type(base))): - return self.type_conflict_strategy(path, base, nxt) for typ, strategy in self._type_strategies: - if isinstance(nxt, typ): + if isinstance(base, typ) and isinstance(nxt, typ): return strategy(self, path, base, nxt) + if not (isinstance(base, type(nxt)) or isinstance(nxt, type(base))): + return self.type_conflict_strategy(path, base, nxt) return self._fallback_strategy(self, path, base, nxt) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/deepmerge-1.1.0/deepmerge/tests/test_full.py new/deepmerge-1.1.1/deepmerge/tests/test_full.py --- old/deepmerge-1.1.0/deepmerge/tests/test_full.py 2022-10-25 07:23:59.000000000 +0200 +++ new/deepmerge-1.1.1/deepmerge/tests/test_full.py 2023-12-18 23:13:38.000000000 +0100 @@ -1,4 +1,5 @@ from deepmerge.exception import * +from collections import OrderedDict, defaultdict import pytest @@ -48,3 +49,12 @@ always_merger.merge(base, next) assert base == {"foo": "value", "bar": "value2", "baz": ["a", "b"]} + + +def test_subtypes(): + base = OrderedDict({"foo": "value", "baz": ["a"]}) + next = defaultdict(str, {"bar": "value2", "baz": ["b"]}) + + result = always_merger.merge(base, next) + + assert dict(result) == {"foo": "value", "bar": "value2", "baz": ["a", "b"]} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/deepmerge-1.1.0/deepmerge.egg-info/PKG-INFO new/deepmerge-1.1.1/deepmerge.egg-info/PKG-INFO --- old/deepmerge-1.1.0/deepmerge.egg-info/PKG-INFO 2022-10-25 07:24:22.000000000 +0200 +++ new/deepmerge-1.1.1/deepmerge.egg-info/PKG-INFO 2023-12-18 23:14:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: deepmerge -Version: 1.1.0 +Version: 1.1.1 Summary: a toolset to deeply merge python dictionaries. Home-page: http://deepmerge.readthedocs.io/en/latest/ Classifier: Development Status :: 5 - Production/Stable diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/deepmerge-1.1.0/docs/guide.rst new/deepmerge-1.1.1/docs/guide.rst --- old/deepmerge-1.1.0/docs/guide.rst 2022-10-25 07:23:59.000000000 +0200 +++ new/deepmerge-1.1.1/docs/guide.rst 2023-12-18 23:13:38.000000000 +0100 @@ -80,7 +80,7 @@ Strategies are functions that satisfy the following properties: * have the function signature (config, path, base, nxt) -* return the merged object, or None. +* return the merged object, or `deepmerge.STRATEGY_END`. Example: @@ -92,7 +92,7 @@ base.append(nxt[-1]) return base -If a strategy fails, an exception should not be raised. This is to +If a strategy fails, an exception should not be raised, instead it should return `deepmerge.STRATEGY_END`. This is to ensure it can be chained with other strategies, or the fall-back. Uniqueness of elements when merging @@ -104,4 +104,4 @@ dictionaries. In those cases, built-in deepmerge strategies will call repr() -on the object and hash that value instead. \ No newline at end of file +on the object and hash that value instead.