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..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.8", "3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: 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 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 +] 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 diff --git a/datastock/_class1_uniformize.py b/datastock/_class1_uniformize.py index 86f2ef5..8823361 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, @@ -141,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,) @@ -181,13 +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 += f"From '{dref_vector_name}'\n" warnings.warn(msg) hasvect = False else: @@ -440,6 +451,7 @@ def _get_ref_vector_find_identical( quant=None, name=None, units=None, + dref_vector_name=None, # for comparison val=None ): @@ -456,6 +468,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 +509,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 +578,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 +756,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 +788,7 @@ def _get_ref_vector_common_values( quant=None, name=None, units=None, + dref_vector_name=None, # dkeys=None, key_vector=None, @@ -807,6 +824,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 +990,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 +1143,4 @@ def uniformize( if returnas == 'dataframe': pass - return stu \ No newline at end of file + return stu 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' diff --git a/pyproject.toml b/pyproject.toml index 23ddb69..46f93a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,13 +35,16 @@ maintainers = [ keywords = [ "data", "analysis", "interactive", "heterogeneous arrays", "numpy", "Collection", ] -requires-python = ">=3.8" +# 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<1.25", # for astropy compatibility vs deprecated np.product + "numpy", # for astropy compatibility vs deprecated np.product "scipy", "matplotlib", # "PySide2 ; platform_system != 'Windows'", - "astropy", + # see https://github.com/ToFuProject/datastock/pull/243 + "astropy>=6.1", ]