[Git][debian-gis-team/python-geotiepoints][master] 7 commits: New upstream version 1.8.0
Antonio Valentino (@antonio.valentino)
gitlab at salsa.debian.org
Wed Sep 17 23:43:00 BST 2025
Antonio Valentino pushed to branch master at Debian GIS Project / python-geotiepoints
Commits:
b6abfb9b by Antonio Valentino at 2025-09-17T22:19:21+00:00
New upstream version 1.8.0
- - - - -
546de691 by Antonio Valentino at 2025-09-17T22:19:37+00:00
Update upstream source from tag 'upstream/1.8.0'
Update to upstream version '1.8.0'
with Debian dir 4718730f63272e2f9065e188c6e1a3259e71479b
- - - - -
99a181ef by Antonio Valentino at 2025-09-17T22:20:57+00:00
New upstream release
- - - - -
7e78d83e by Antonio Valentino at 2025-09-17T22:23:18+00:00
Update dates in d/copyright
- - - - -
e2eab407 by Antonio Valentino at 2025-09-17T22:32:24+00:00
Drop 0002-Compatibility-with-numpy-2.patch
- - - - -
1a10e372 by Antonio Valentino at 2025-09-17T22:40:22+00:00
New 0002-Fix-compatibility-with-cython-3.1.patch
- - - - -
eeb604ca by Antonio Valentino at 2025-09-17T22:40:22+00:00
Set distribution to unstable
- - - - -
18 changed files:
- .github/workflows/ci.yaml
- .github/workflows/deploy.yaml
- .gitignore
- + .readthedocs.yml
- CHANGELOG.md
- debian/changelog
- debian/copyright
- − debian/patches/0002-Compatibility-with-numpy-2.patch
- + debian/patches/0002-Fix-compatibility-with-cython-3.1.patch
- debian/patches/series
- doc/source/conf.py
- doc/source/index.rst
- geotiepoints/_modis_interpolator.pyx
- geotiepoints/version.py
- pyproject.toml
- + rtd_requirements.txt
- setup.cfg
- setup.py
Changes:
=====================================
.github/workflows/ci.yaml
=====================================
@@ -10,10 +10,10 @@ jobs:
fail-fast: false
matrix:
os: ["windows-latest", "ubuntu-latest", "macos-latest"]
- python-version: ["3.10", "3.11", "3.12"]
+ python-version: ["3.11", "3.12", "3.13"]
experimental: [false]
include:
- - python-version: "3.12"
+ - python-version: "3.13"
os: "ubuntu-latest"
experimental: true
@@ -25,16 +25,18 @@ jobs:
steps:
- name: Checkout source
- uses: actions/checkout at v4
+ uses: actions/checkout at v5
- name: Setup Conda Environment
uses: conda-incubator/setup-miniconda at v3
with:
miniforge-version: latest
- channel-priority: strict
- python-version: ${{ matrix.python-version }}
+ python-version: "${{ matrix.python-version }}"
activate-environment: test-environment
environment-file: continuous_integration/environment.yaml
+ channels: conda-forge
+ conda-remove-defaults: true
+ channel-priority: strict
- name: Install unstable dependencies
if: matrix.experimental == true
@@ -71,17 +73,11 @@ jobs:
run: |
pytest --cov=geotiepoints geotiepoints/tests --cov-report=xml --cov-report=
- # FIXME: These fail
-# - name: Test website
-# shell: bash -l {0}
-# run: |
-# cd doc && mkdir doctest && sphinx-build -E -n -b doctest ./source ./doctest && cd ..
-
- name: Upload unittest coverage to Codecov
- uses: codecov/codecov-action at v4
+ uses: codecov/codecov-action at v5
with:
flags: unittests
- file: ./coverage.xml
+ files: ./coverage.xml
env_vars: OS,PYTHON_VERSION,UNSTABLE
- name: Coveralls Parallel
=====================================
.github/workflows/deploy.yaml
=====================================
@@ -1,6 +1,5 @@
name: Deploy sdist and wheels
-
on:
push:
pull_request:
@@ -13,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout source
- uses: actions/checkout at v4
+ uses: actions/checkout at v5
- name: Create sdist
shell: bash -l {0}
@@ -28,46 +27,41 @@ jobs:
path: dist/*.tar.gz
build_wheels:
- name: "Build wheels on ${{ matrix.os }} ${{ matrix.cibw_archs }}"
+ name: "Build wheels on ${{ matrix.os }} ${{ matrix.arch }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- - os: windows-2019
- cibw_archs: "AMD64 ARM64"
- artifact_name: "win"
- - os: macos-latest
- cibw_archs: "x86_64 arm64"
- artifact_name: "mac"
- - os: "ubuntu-20.04"
- cibw_archs: "aarch64"
- artifact_name: "ubuntu-aarch"
- - os: "ubuntu-20.04"
- cibw_archs: "x86_64"
- artifact_name: "ubuntu-x86_64"
+ - os: windows-2022
+ arch: "AMD64"
+ - os: windows-11-arm
+ arch: "ARM64"
+ - os: macos-13
+ arch: "x86_64"
+ - os: macos-14
+ arch: "arm64"
+ - os: "ubuntu-24.04-arm"
+ arch: "aarch64"
+ - os: "ubuntu-24.04"
+ arch: "x86_64"
steps:
- - uses: actions/checkout at v4
+ - uses: actions/checkout at v5
- run: |
git fetch --prune --unshallow
- - name: Set up QEMU
- if: runner.os == 'Linux'
- uses: docker/setup-qemu-action at v3
- with:
- platforms: all
-
- name: Build wheels
- uses: pypa/cibuildwheel at v2.21.1
+ uses: pypa/cibuildwheel at v3.1.4
env:
- CIBW_SKIP: "cp36-* cp37-* cp38-* pp* *-manylinux_i686 *-musllinux_i686 *-musllinux_aarch64 *-win32"
- CIBW_ARCHS: "${{ matrix.cibw_archs }}"
- CIBW_TEST_SKIP: "*_arm64 *_universal2:arm64"
+ CIBW_SKIP: "cp39-* cp310-* *-manylinux_i686 *-musllinux_i686 *-musllinux_aarch64 *-win32"
+ CIBW_ARCHS: "${{ matrix.arch }}"
+ CIBW_TEST_SKIP: "*_arm64"
+ CIBW_ENABLE: cpython-freethreading
- uses: actions/upload-artifact at v4
with:
- name: wheels-${{ matrix.artifact_name }}
+ name: wheels-${{ matrix.os }}-${{ matrix.arch }}
path: ./wheelhouse/*.whl
upload_to_pypi:
@@ -75,40 +69,26 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download sdist artifact
- uses: actions/download-artifact at v4
+ uses: actions/download-artifact at v5
with:
name: sdist
path: dist
- - name: Download wheels artifact - win
- uses: actions/download-artifact at v4
- with:
- name: wheels-win
- path: dist
- - name: Download wheels artifact - mac
- uses: actions/download-artifact at v4
- with:
- name: wheels-mac
- path: dist
- - name: Download wheels artifact - ubuntu aarch
- uses: actions/download-artifact at v4
- with:
- name: wheels-ubuntu-aarch
- path: dist
- - name: Download wheels artifact - ubuntu x86_64
- uses: actions/download-artifact at v4
+ - name: Download wheels artifact
+ uses: actions/download-artifact at v5
with:
- name: wheels-ubuntu-x86_64
+ pattern: wheels-*
+ merge-multiple: true
path: dist
- name: Publish package to Test PyPI
if: github.event.action != 'published' && github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
- uses: pypa/gh-action-pypi-publish at v1.10.2
+ uses: pypa/gh-action-pypi-publish at v1.13.0
with:
user: __token__
password: ${{ secrets.test_pypi_password }}
repository_url: https://test.pypi.org/legacy/
- name: Publish package to PyPI
if: github.event.action == 'published'
- uses: pypa/gh-action-pypi-publish at v1.10.2
+ uses: pypa/gh-action-pypi-publish at v1.13.0
with:
user: __token__
password: ${{ secrets.pypi_password }}
=====================================
.gitignore
=====================================
@@ -34,4 +34,4 @@ geotiepoints/*.c
.idea
# vscode
-.vscode
\ No newline at end of file
+.vscode
=====================================
.readthedocs.yml
=====================================
@@ -0,0 +1,19 @@
+version: 2
+
+build:
+ os: "ubuntu-20.04"
+ tools:
+ python: "3.11"
+ jobs:
+ post_checkout:
+ - git fetch --tags
+ pre_install:
+ - git update-index --assume-unchanged rtd_requirements.txt doc/source/conf.py
+sphinx:
+ configuration: doc/source/conf.py
+ fail_on_warning: true
+python:
+ install:
+ - requirements: rtd_requirements.txt
+ - method: pip
+ path: .
=====================================
CHANGELOG.md
=====================================
@@ -1,3 +1,24 @@
+## Version 1.8.0 (2025/09/10)
+
+### Issues Closed
+
+* [Issue 37](https://github.com/pytroll/python-geotiepoints/issues/37) - Issues with interpolation on a Sentinel Tie Point Grid.
+
+In this release 1 issue was closed.
+
+### Pull Requests Merged
+
+#### Bugs fixed
+
+* [PR 103](https://github.com/pytroll/python-geotiepoints/pull/103) - Fix gcc compiler warnings in MODIS interpolator
+
+#### Features added
+
+* [PR 102](https://github.com/pytroll/python-geotiepoints/pull/102) - Add free-threading compatibility and drop Python 3.10 support
+
+In this release 2 pull requests were closed.
+
+
## Version 1.7.5 (2024/10/12)
### Issues Closed
=====================================
debian/changelog
=====================================
@@ -1,10 +1,17 @@
-python-geotiepoints (1.7.5-2) UNRELEASED; urgency=medium
+python-geotiepoints (1.8.0-1) unstable; urgency=medium
- * Team upload.
+ [ Bas Couwenberg ]
* Bump Standards-Version to 4.7.2, no changes.
* Update lintian overrides.
- -- Bas Couwenberg <sebastic at debian.org> Thu, 20 Mar 2025 06:25:58 +0100
+ [ Antonio Valentino ]
+ * New upstream release.
+ * Update dates in d/copyright.
+ * debian/patches:
+ - Drop 0002-Compatibility-with-numpy-2.patch, applied upstream.
+ - New 0002-Fix-compatibility-with-cython-3.1.patch.
+
+ -- Antonio Valentino <antonio.valentino at tiscali.it> Wed, 17 Sep 2025 22:25:04 +0000
python-geotiepoints (1.7.5-1) unstable; urgency=medium
=====================================
debian/copyright
=====================================
@@ -38,7 +38,7 @@ License: public-domain
For more information, please refer to <http://unlicense.org/>
Files: debian/*
-Copyright: 2018-2024, Antonio Valentino <antonio.valentino at tiscali.it>
+Copyright: 2018-2025, Antonio Valentino <antonio.valentino at tiscali.it>
License: GPL-3+
License: GPL-3+
=====================================
debian/patches/0002-Compatibility-with-numpy-2.patch deleted
=====================================
@@ -1,72 +0,0 @@
-From: Antonio Valentino <antonio.valentino at tiscali.it>
-Date: Sat, 20 Apr 2024 07:03:50 +0000
-Subject: Compatibility with numpy < 2
-
-Forwarded: not-needed
----
- geotiepoints/tests/test_interpolator.py | 17 +++++++++++++----
- pyproject.toml | 2 +-
- 2 files changed, 14 insertions(+), 5 deletions(-)
-
-diff --git a/geotiepoints/tests/test_interpolator.py b/geotiepoints/tests/test_interpolator.py
-index 567e686..55bd646 100644
---- a/geotiepoints/tests/test_interpolator.py
-+++ b/geotiepoints/tests/test_interpolator.py
-@@ -50,6 +50,15 @@ TIES_EXP1 = np.array([[-2.00000000e+00, -4.00000000e-01, 3.60000000e+00,
- 2.02000000e+01]])
-
-
-+if np.__version__[0] < "2":
-+ CUBIC_LEGACY = "cubic"
-+ import scipy
-+ if scipy.__version__.split(".")[:2] >= ["1", "13"]:
-+ CUBIC_LEGACY = "cubic_legacy"
-+else:
-+ CUBIC_LEGACY = "cubic_legacy"
-+
-+
- class TestInterpolator(unittest.TestCase):
- """Test the interpolator."""
-
-@@ -349,12 +358,12 @@ class TestSingleGridInterpolator:
- fine_x = np.arange(16)
- fine_y = np.arange(32)
-
-- res = grid_interpolator.interpolate((fine_y, fine_x), method="cubic_legacy")
-+ res = grid_interpolator.interpolate((fine_y, fine_x), method=CUBIC_LEGACY)
- np.testing.assert_allclose(res, self.expected, atol=2e-9)
-
- def test_interpolate_slices(self, grid_interpolator):
- """Test that interpolation from slices is working."""
-- res = grid_interpolator.interpolate_slices((slice(0, 32), slice(0, 16)), method="cubic_legacy")
-+ res = grid_interpolator.interpolate_slices((slice(0, 32), slice(0, 16)), method=CUBIC_LEGACY)
- np.testing.assert_allclose(res, self.expected, atol=2e-9)
-
- @pytest.mark.parametrize("chunks, expected_chunks", [(10, (10, 10)),
-@@ -369,7 +378,7 @@ class TestSingleGridInterpolator:
- with mock.patch.object(grid_interpolator,
- "interpolate_numpy",
- wraps=grid_interpolator.interpolate_numpy) as interpolate:
-- res = grid_interpolator.interpolate((fine_y, fine_x), method="cubic_legacy", chunks=chunks)
-+ res = grid_interpolator.interpolate((fine_y, fine_x), method=CUBIC_LEGACY, chunks=chunks)
- assert not interpolate.called
-
- assert isinstance(res, da.Array)
-@@ -395,5 +404,5 @@ class TestSingleGridInterpolator:
- fine_x = np.arange(16)
- fine_y = np.arange(32)
-
-- res = grid_interpolator.interpolate((fine_y, fine_x), method="cubic_legacy")
-+ res = grid_interpolator.interpolate((fine_y, fine_x), method=CUBIC_LEGACY)
- assert res.dtype == data.dtype
-diff --git a/pyproject.toml b/pyproject.toml
-index 57e52e0..04eafb3 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -1,5 +1,5 @@
- [build-system]
--requires = ["setuptools", "wheel", "numpy>=2.0.0rc1,<3", "Cython>=3", "versioneer"]
-+requires = ["setuptools", "wheel", "numpy", "Cython>=3", "versioneer"]
- build-backend = "setuptools.build_meta"
-
- [tool.coverage.run]
=====================================
debian/patches/0002-Fix-compatibility-with-cython-3.1.patch
=====================================
@@ -0,0 +1,22 @@
+From: Antonio Valentino <antonio.valentino at tiscali.it>
+Date: Wed, 17 Sep 2025 22:38:29 +0000
+Subject: Fix compatibility with cython < 3.1
+
+Forwarded: not-needed
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index cd265fe..b3bc1f0 100644
+--- a/setup.py
++++ b/setup.py
+@@ -67,7 +67,7 @@ except ValueError:
+
+ cython_directives = {
+ "language_level": "3",
+- "freethreading_compatible": True,
++ # "freethreading_compatible": True,
+ }
+ define_macros = [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")]
+ if cython_coverage:
=====================================
debian/patches/series
=====================================
@@ -1,2 +1,2 @@
0001-Skip-tests-using-external-data.patch
-0002-Compatibility-with-numpy-2.patch
+0002-Fix-compatibility-with-cython-3.1.patch
=====================================
doc/source/conf.py
=====================================
@@ -154,8 +154,7 @@ html_theme = 'default'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-#html_static_path = ['.static']
-html_static_path = ['sphinx_static']
+#html_static_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
=====================================
doc/source/index.rst
=====================================
@@ -11,7 +11,7 @@ package should be generic enough to be used for any kind of data.
The source code of the module can be found on the github_ page.
-.. _github: http://github.com/adybbroe/python-geotiepoints
+.. _github: http://github.com/pytroll/python-geotiepoints
.. contents::
@@ -24,7 +24,7 @@ You can install the latest version of python-geotiepoints with pip::
Alternatively, you can download the source code from github_::
- git clone git://github.com/adybbroe/python-geotiepoints.git
+ git clone git://github.com/pytroll/python-geotiepoints.git
and then run::
=====================================
geotiepoints/_modis_interpolator.pyx
=====================================
@@ -214,12 +214,12 @@ cdef class MODISInterpolator:
) noexcept nogil:
cdef unsigned int scan_idx
cdef int i
- cdef int fine_idx
- cdef int half_scan_length = self._fine_pixels_per_coarse_pixel // 2
+ cdef unsigned int fine_idx
+ cdef unsigned int half_scan_length = self._fine_pixels_per_coarse_pixel // 2
cdef unsigned int fine_pixels_per_scan = self._coarse_scan_length * self._fine_pixels_per_coarse_pixel
for fine_idx in range(fine_pixels_per_scan):
if fine_idx < half_scan_length:
- y_view[fine_idx] = -half_scan_length + 0.5 + fine_idx
+ y_view[fine_idx] = 0.5 + fine_idx - half_scan_length
elif fine_idx >= fine_pixels_per_scan - half_scan_length:
y_view[fine_idx] = (self._fine_pixels_per_coarse_pixel + 0.5) + (half_scan_length - (fine_pixels_per_scan - fine_idx))
else:
=====================================
geotiepoints/version.py
=====================================
@@ -26,9 +26,9 @@ def get_keywords():
# setup.py/versioneer.py will grep for the variable names, so they must
# each be defined on a line of their own. _version.py will just call
# get_keywords().
- git_refnames = " (HEAD -> main, tag: v1.7.5)"
- git_full = "44f8e87bba78e29b5c8dda325984e069cbd2092a"
- git_date = "2024-10-12 10:07:53 +0200"
+ git_refnames = " (HEAD -> main, tag: v1.8.0)"
+ git_full = "9efadb3ae47d06abc11bceb4f633fb27bc14bfbb"
+ git_date = "2025-09-10 13:34:22 -0500"
keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
return keywords
=====================================
pyproject.toml
=====================================
@@ -1,8 +1,15 @@
[build-system]
-requires = ["setuptools", "wheel", "numpy>=2.0.0rc1,<3", "Cython>=3", "versioneer"]
+requires = ["setuptools", "wheel", "numpy>=2.0.0,<3", "Cython>=3.1.2", "versioneer[toml]"]
build-backend = "setuptools.build_meta"
[tool.coverage.run]
relative_files = true
plugins = ["Cython.Coverage"]
omit = ["geotiepoints/version.py"]
+
+[tool.versioneer]
+VCS = "git"
+style = "pep440"
+versionfile_source = "geotiepoints/version.py"
+versionfile_build = "geotiepoints/version.py"
+tag_prefix = "v"
=====================================
rtd_requirements.txt
=====================================
@@ -0,0 +1,8 @@
+xarray
+dask[array]
+pyresample
+pyproj
+sphinx
+sphinxcontrib-apidoc
+pytest
+
=====================================
setup.cfg
=====================================
@@ -1,14 +1,3 @@
-[bdist_rpm]
-requires=numpy cython scipy
-release=1
-
[flake8]
max-line-length = 120
ignore = D107
-
-[versioneer]
-VCS = git
-style = pep440
-versionfile_source = geotiepoints/version.py
-versionfile_build = geotiepoints/version.py
-tag_prefix = v
=====================================
setup.py
=====================================
@@ -23,7 +23,7 @@ from Cython.Build import build_ext
from Cython.Distutils import Extension
requirements = ['numpy', 'scipy', 'pandas']
-test_requires = ['pytest', 'pytest-cov', 'h5py', 'xarray', 'dask', 'pyproj', "pyresample"]
+test_requires = ['pytest', 'pytest-cov', 'h5py', 'xarray', 'dask[array]', 'pyproj', "pyresample"]
if sys.platform.startswith("win"):
extra_compile_args = []
@@ -67,6 +67,7 @@ except ValueError:
cython_directives = {
"language_level": "3",
+ "freethreading_compatible": True,
}
define_macros = [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")]
if cython_coverage:
@@ -96,19 +97,25 @@ if __name__ == "__main__":
long_description_content_type='text/markdown',
author='Adam Dybbroe, Martin Raspaud',
author_email='martin.raspaud at smhi.se',
- classifiers=["Development Status :: 5 - Production/Stable",
- "Intended Audience :: Science/Research",
- "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
- "Operating System :: OS Independent",
- "Programming Language :: Python",
- "Programming Language :: Cython",
- "Topic :: Scientific/Engineering"],
+ classifiers=[
+ "Development Status :: 5 - Production/Stable",
+ "Intended Audience :: Science/Research",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Cython",
+ "Topic :: Scientific/Engineering",
+ "Programming Language :: Python :: Free Threading :: 1 - Unstable",
+ ],
+ license="GPL-3.0-or-later",
+ license_files=["LICENSE.txt"],
url="https://github.com/pytroll/python-geotiepoints",
packages=find_packages(),
- python_requires='>=3.10',
+ python_requires='>=3.11',
cmdclass=cmdclass,
install_requires=requirements,
ext_modules=EXTENSIONS,
- tests_require=test_requires,
+ extras_require={
+ "tests": test_requires,
+ },
zip_safe=False
)
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-geotiepoints/-/compare/8f84bafc9bfdbe798fb167746a8053e423887518...eeb604ca13b8992c5b579d8f94fcc007fc16939a
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-geotiepoints/-/compare/8f84bafc9bfdbe798fb167746a8053e423887518...eeb604ca13b8992c5b579d8f94fcc007fc16939a
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20250917/6a8e1b52/attachment-0001.htm>
More information about the Pkg-grass-devel
mailing list