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