diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3aed557..00183b0 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,12 +8,12 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: '3.9' + python-version: '3.13' architecture: 'x64' - name: Install dependencies and package diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fa536e3..f5c9c0a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,16 +8,17 @@ jobs: fail-fast: false matrix: python-version: - - "3.7" - - "3.8" - "3.9" - "3.10" + - "3.11" + - "3.12" + - "3.13" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} @@ -40,4 +41,4 @@ jobs: coverage xml - name: Upload coverage to Codecov - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 26a9d5b..b7ab17a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.1.0] +### Added +- Added support for Python 3.11 - 3.13 + +### Removed +- Dropped support for Python 3.6 - 3.8 + +## [2.0.0] - 2023-10-13 +- Moved to new GitHub organization + ## [1.0.1] - 2021-09-28 ### Fixed - Fixed compare for `str` types. @@ -15,6 +25,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Method to deep compare data structures containing `dict`, `list` and `tuple` types. - Method to partially deep compare data structures containing `dict`, `list` and `tuple` types. -[Unreleased]: https://github.com/anexia/python-deepcompare/compare/1.0.1...HEAD +[Unreleased]: https://github.com/anexia/python-deepcompare/compare/2.1.0...HEAD +[2.1.0]: https://github.com/anexia/python-deepcompare/compare/2.0.0...2.1.0 +[2.0.0]: https://github.com/anexia/python-deepcompare/releases/tag/2.0.0 [1.0.1]: https://github.com/anexia/python-deepcompare/compare/1.0.0...1.0.1 [1.0.0]: https://github.com/anexia/python-deepcompare/releases/tag/1.0.0 diff --git a/deepcompare/__init__.py b/deepcompare/__init__.py index 5e9d086..ce5e7c7 100644 --- a/deepcompare/__init__.py +++ b/deepcompare/__init__.py @@ -56,13 +56,13 @@ def _compare(haystack: Any, subset: Any, partial: bool, strict: bool) -> bool: if not issubclass(type(haystack), type(subset)): return False - # if we compare compare two dict types, we check each key of the haystack object to be equal to the + # if we compare two dict types, we check each key of the haystack object to be equal to the # subset object. if we are working in partial mode, we ignore if some keys are missing on the subset object. # however we check if all keys of the subset object are existing on the haystack object. if isinstance(haystack, _DICT_TYPES) and isinstance(subset, _DICT_TYPES): return _compare_mapping(haystack, subset, partial, strict) - # if we compare compare two list types, we check each value of the haystack object to be equal to the + # if we compare two list types, we check each value of the haystack object to be equal to the # subset object. if we are working in partial mode, we ignore if the subset list is shorter than the haystack list. elif isinstance(haystack, _LIST_TYPES) and not isinstance(haystack, _STR_TYPES) \ and isinstance(subset, _LIST_TYPES) and not isinstance(subset, _STR_TYPES): diff --git a/pyproject.toml b/pyproject.toml index ee72b51..9ceb7d2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,6 @@ [build-system] requires = [ - "setuptools>=58", + "setuptools>=75", "wheel", ] build-backend = "setuptools.build_meta" - diff --git a/requirements.txt b/requirements.txt index fff50ee..b15a240 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,12 +2,9 @@ -e . # Development dependencies -pytest>=6.2,<6.3 -flake8>=3.9,<3.10 +pytest>=8.3,<8.4 +flake8>=7.1,<7.2 codecov>=2.1,<2.2 -setuptools>=42 -wheel>=0.37 -twine>=3.4 - -# fix importlib version to avoid "AttributeError: 'EntryPoints' object has no attribute 'get'" with flake8 -importlib-metadata<5.0 +setuptools>=75 +wheel>=0.44 +twine>=5.1 diff --git a/setup.py b/setup.py index b0ee198..4514763 100644 --- a/setup.py +++ b/setup.py @@ -28,10 +28,11 @@ 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'Topic :: Software Development', ], )