From cadaed418e6964bb86f82be833a987b60e864fe5 Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 03:13:17 +0000 Subject: [PATCH 01/11] [#240] dref_vector_name for better warning msg --- datastock/_class1_uniformize.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/datastock/_class1_uniformize.py b/datastock/_class1_uniformize.py index 86f2ef5..99577d0 100644 --- a/datastock/_class1_uniformize.py +++ b/datastock/_class1_uniformize.py @@ -43,6 +43,7 @@ def get_ref_vector( quant=None, name=None, units=None, + dref_vector_name=None, # exclude from search key_exclude=None, ref_exclude=None, @@ -188,6 +189,8 @@ def get_ref_vector( f"\t- hasref: {hasref}\n" f"\t- refok: {refok}\n" ) + if dref_vector_name is not None: + msg += "\nFrom '{dref_vector_name}'\n" warnings.warn(msg) hasvect = False else: @@ -440,6 +443,7 @@ def _get_ref_vector_find_identical( quant=None, name=None, units=None, + dref_vector_name=None, # for comparison val=None ): @@ -456,6 +460,7 @@ def _get_ref_vector_find_identical( quant=quant, name=name, units=units, + dref_vector_name=dref_vector_name, values=None, indices=None, )[:4] @@ -496,6 +501,7 @@ def get_ref_vector_common( quant=None, name=None, units=None, + dref_vector_name=None, # exclude from search key_exclude=None, ref_exclude=None, @@ -564,6 +570,7 @@ def get_ref_vector_common( quant=quant, name=name, units=units, + dref_vector_name=dref_vector_name, # exclude from search key_exclude=key_exclude, ref_exclude=ref_exclude, @@ -741,6 +748,7 @@ def get_ref_vector_common( quant=quant, name=name, units=units, + dref_vector_name=dref_vector_name, # dkeys=dkeys, key_vector=key_vector, @@ -772,6 +780,7 @@ def _get_ref_vector_common_values( quant=None, name=None, units=None, + dref_vector_name=None, # dkeys=None, key_vector=None, @@ -807,6 +816,7 @@ def _get_ref_vector_common_values( quant=quant, name=name, units=units, + dref_vector_name=dref_vector_name, # exclude from search key_exclude=key_exclude, ref_exclude=ref_exclude, @@ -972,7 +982,11 @@ def _uniformize_check( for k0, v0 in dparam.items(): lout = [ k1 for k1 in v0['keys'] - if coll.get_ref_vector(key0=k1, **{param: k0})[3] is None + if coll.get_ref_vector( + key0=k1, + dref_vector_name=f"param '{k0}'", + **{param: k0}, + )[3] is None ] if len(lout) > 0: dfails[k0] = lout @@ -1121,4 +1135,4 @@ def uniformize( if returnas == 'dataframe': pass - return stu \ No newline at end of file + return stu From f780947ed257615faecba1921947d4e9829be6bd Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 03:27:02 +0000 Subject: [PATCH 02/11] [#240] Propagated up to _class1.py --- datastock/_class1.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/datastock/_class1.py b/datastock/_class1.py index 9e61983..29b9296 100644 --- a/datastock/_class1.py +++ b/datastock/_class1.py @@ -618,6 +618,7 @@ def get_ref_vector( quant=None, name=None, units=None, + dref_vector_name=None, # exclude from search key_exclude=None, ref_exclude=None, @@ -670,6 +671,7 @@ def get_ref_vector( quant=quant, name=name, units=units, + dref_vector_name=dref_vector_name, # exclude from search key_exclude=key_exclude, ref_exclude=ref_exclude, @@ -690,6 +692,7 @@ def get_ref_vector_common( quant=None, name=None, units=None, + dref_vector_name=None, # strategy for choosing common ref vector strategy=None, strategy_bounds=None, @@ -726,6 +729,7 @@ def get_ref_vector_common( quant=quant, name=name, units=units, + dref_vector_name=dref_vector_name, # strategy for choosing common ref vector strategy=strategy, strategy_bounds=strategy_bounds, @@ -1079,4 +1083,4 @@ def show_links(self): __all__ = [ sorted([k0 for k0 in locals() if k0.startswith('DataStock')])[-1] -] \ No newline at end of file +] From f42bb2b825124ebcab0d1d247e265b93c4e40a13 Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 04:22:49 +0000 Subject: [PATCH 03/11] [#240] Full warning msg --- datastock/_class1_uniformize.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/datastock/_class1_uniformize.py b/datastock/_class1_uniformize.py index 99577d0..8823361 100644 --- a/datastock/_class1_uniformize.py +++ b/datastock/_class1_uniformize.py @@ -142,8 +142,13 @@ def get_ref_vector( if hasref is not False: + lp = [ + ('dim', dim), + ('quant', quant), + ('name', name), + ('units', units), + ] - lp = [('dim', dim), ('quant', quant), ('name', name), ('units', units)] lk_vect = [ k0 for k0, v0 in ddata.items() if v0['monot'] == (True,) @@ -182,15 +187,18 @@ def get_ref_vector( hasref = True else: + lstr = [f"\t- {p0} = {p1}" for (p0, p1) in lp] msg = ( f"Multiple possible vectors found:\n{lk_vect}\n" f"\t- key0: {key0}\n" + f"\t- key: {key}\n" f"\t- ref: {ref}\n" f"\t- hasref: {hasref}\n" f"\t- refok: {refok}\n" + + "Provided:\n" + "\n".join(lstr) + "\n" ) if dref_vector_name is not None: - msg += "\nFrom '{dref_vector_name}'\n" + msg += f"From '{dref_vector_name}'\n" warnings.warn(msg) hasvect = False else: From 3e1e885a4edd24d6831d791c31ebd72aacecf41d Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 14:22:48 +0000 Subject: [PATCH 04/11] [#240] Minor cleanup --- datastock/_class1_interpolate.py | 1 - 1 file changed, 1 deletion(-) diff --git a/datastock/_class1_interpolate.py b/datastock/_class1_interpolate.py index c6c4204..461fdb7 100644 --- a/datastock/_class1_interpolate.py +++ b/datastock/_class1_interpolate.py @@ -842,7 +842,6 @@ def _x01_grid( ix1=None, ): - # ------------ # trivial case From 338c7eaddfe40da41c31872d48ad40f9739af92d Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 14:48:37 +0000 Subject: [PATCH 05/11] [#242] Relaxed numpy version control --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 23ddb69..96e75da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ keywords = [ ] requires-python = ">=3.8" dependencies = [ - "numpy<1.25", # for astropy compatibility vs deprecated np.product + "numpy", # for astropy compatibility vs deprecated np.product "scipy", "matplotlib", # "PySide2 ; platform_system != 'Windows'", From 7d07ed87ea024b8f3bd4df003ffa257e8e34b2bb Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 14:50:17 +0000 Subject: [PATCH 06/11] [#242] Deleted _updateversion.py --- _updateversion.py | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 _updateversion.py diff --git a/_updateversion.py b/_updateversion.py deleted file mode 100644 index c87ab05..0000000 --- a/_updateversion.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env/python -# coding=utf-8 - - -import os -import subprocess - - -_HERE = os.path.abspath(os.path.dirname(__file__)) - - -def updateversion(path=_HERE): - - # Fetch version from git tags, and write to version.py - # Also, when git is not available (PyPi package), use stored version.py - version_py = os.path.join(path, 'datastock', 'version.py') - try: - version_git = subprocess.check_output( - ["git", "describe"] - ).rstrip().decode() - - except subprocess.CalledProcessError: - with open(version_py, 'r') as fh: - version_git = fh.read().strip().split("=")[-1].replace("'", '') - - version_git = version_git.lower().replace('v', '').replace(' ', '') - - version_msg = "# Do not edit, pipeline versioning governed by git tags!" - with open(version_py, "w") as fh: - msg = "{0}__version__ = '{1}'{0}".format(os.linesep, version_git) - fh.write(version_msg + msg) - return version_git From 092000fc193833d32307606c8064592263707982 Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 16:08:18 +0000 Subject: [PATCH 07/11] [#242] astropy >= 6.1 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 96e75da..a4481ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,7 +41,7 @@ dependencies = [ "scipy", "matplotlib", # "PySide2 ; platform_system != 'Windows'", - "astropy", + "astropy>=6.1", ] From dcd01da2a67f0e12ad4aebcbaf8ebbad2aa195de Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 16:09:28 +0000 Subject: [PATCH 08/11] [#242] astropy >= 6.1 + doc --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index a4481ad..4a3911f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,6 +41,7 @@ dependencies = [ "scipy", "matplotlib", # "PySide2 ; platform_system != 'Windows'", + # see https://github.com/ToFuProject/datastock/pull/243 "astropy>=6.1", ] From 5be6bca3cd3cd28713e0cae47d9b85798528d269 Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 16:14:10 +0000 Subject: [PATCH 09/11] [#242] Updates python >= 3.10 and <= 3.12 --- .github/workflows/python-publish-wheel.yml | 2 +- .github/workflows/python-testing-matrix.yml | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-publish-wheel.yml b/.github/workflows/python-publish-wheel.yml index be562b8..e52cb30 100644 --- a/.github/workflows/python-publish-wheel.yml +++ b/.github/workflows/python-publish-wheel.yml @@ -24,7 +24,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ["3.8", "3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11", "3.12"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/python-testing-matrix.yml b/.github/workflows/python-testing-matrix.yml index 405803d..f217e25 100644 --- a/.github/workflows/python-testing-matrix.yml +++ b/.github/workflows/python-testing-matrix.yml @@ -18,7 +18,7 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ["3.8", "3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11", "3.12"] steps: diff --git a/pyproject.toml b/pyproject.toml index 4a3911f..6e46b4b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ maintainers = [ keywords = [ "data", "analysis", "interactive", "heterogeneous arrays", "numpy", "Collection", ] -requires-python = ">=3.8" +requires-python = ">=3.10" # due to astropy >= 6.1 dependencies = [ "numpy", # for astropy compatibility vs deprecated np.product "scipy", From 627fef3122881b6c2287f98a47937f7e8f2e600f Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 16:17:29 +0000 Subject: [PATCH 10/11] [#242] Added tests of python 3.13, 3.14 --- .github/workflows/python-testing-matrix.yml | 2 +- pyproject.toml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-testing-matrix.yml b/.github/workflows/python-testing-matrix.yml index f217e25..ea67014 100644 --- a/.github/workflows/python-testing-matrix.yml +++ b/.github/workflows/python-testing-matrix.yml @@ -18,7 +18,7 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: diff --git a/pyproject.toml b/pyproject.toml index 6e46b4b..46f93a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,9 @@ maintainers = [ keywords = [ "data", "analysis", "interactive", "heterogeneous arrays", "numpy", "Collection", ] -requires-python = ">=3.10" # due to astropy >= 6.1 +# due to astropy >= 6.1 and to end-of-life of 3.9 +# see https://devguide.python.org/versions/ +requires-python = ">=3.10" dependencies = [ "numpy", # for astropy compatibility vs deprecated np.product "scipy", From e4225c63cffb5fd206ba4d7353ab3b9c55a0361a Mon Sep 17 00:00:00 2001 From: dvezinet Date: Thu, 5 Feb 2026 16:38:06 +0000 Subject: [PATCH 11/11] [#devel] Cleaned up version.py --- datastock/version.py | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 datastock/version.py diff --git a/datastock/version.py b/datastock/version.py deleted file mode 100644 index 2710ad7..0000000 --- a/datastock/version.py +++ /dev/null @@ -1,2 +0,0 @@ -# Do not edit, pipeline versioning governed by git tags! -__version__ = '0.0.49-1-g545b8a4'