datastock 0.0.35__py3-none-any.whl → 0.0.37__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- datastock/_class1.py +88 -127
- datastock/_class1_check.py +1 -98
- datastock/_class1_compute.py +203 -43
- datastock/_class1_domain.py +2 -2
- datastock/_class1_interpolate.py +8 -8
- datastock/_class1_show.py +406 -0
- datastock/_class1_uniformize.py +37 -19
- datastock/_class2.py +4 -48
- datastock/_class3.py +14 -6
- datastock/_generic_check.py +41 -43
- datastock/_generic_utils.py +11 -1
- datastock/_generic_utils_plot.py +76 -3
- datastock/_plot_BvsA_as_distribution_check.py +9 -5
- datastock/_plot_as_array.py +368 -2523
- datastock/_plot_as_array_1d.py +298 -0
- datastock/_plot_as_array_234d.py +786 -0
- datastock/_plot_as_mobile_lines.py +18 -13
- datastock/_plot_as_profile1d.py +27 -12
- datastock/_saveload.py +2 -0
- datastock/tests/test_01_DataStock.py +102 -27
- datastock/version.py +1 -1
- {datastock-0.0.35.dist-info → datastock-0.0.37.dist-info}/METADATA +1 -1
- datastock-0.0.37.dist-info/RECORD +42 -0
- datastock-0.0.35.dist-info/RECORD +0 -39
- /datastock/{_plot_misc.py → _plot_old_backup.py} +0 -0
- {datastock-0.0.35.dist-info → datastock-0.0.37.dist-info}/LICENSE +0 -0
- {datastock-0.0.35.dist-info → datastock-0.0.37.dist-info}/WHEEL +0 -0
- {datastock-0.0.35.dist-info → datastock-0.0.37.dist-info}/top_level.txt +0 -0
datastock/_generic_check.py
CHANGED
@@ -80,8 +80,9 @@ def _check_var(
|
|
80
80
|
var = allowed[0]
|
81
81
|
elif var not in allowed:
|
82
82
|
msg = (
|
83
|
-
f"Arg {varname}
|
84
|
-
f"Provided: {var}"
|
83
|
+
f"Arg {varname} not in allowed range!\n"
|
84
|
+
f"Provided: {var}\n"
|
85
|
+
f"Allowed: {allowed}\n"
|
85
86
|
)
|
86
87
|
raise Exception(_complete_extra_msg(msg, extra_msg))
|
87
88
|
|
@@ -98,8 +99,9 @@ def _check_var(
|
|
98
99
|
if excluded is not None:
|
99
100
|
if var in excluded:
|
100
101
|
msg = (
|
101
|
-
f"Arg {varname} must not be in
|
102
|
-
f"Provided: {var}"
|
102
|
+
f"Arg {varname} must not be in excluded range!\n"
|
103
|
+
f"Provided: {var}\n"
|
104
|
+
f"Excluded: {excluded}\n"
|
103
105
|
)
|
104
106
|
raise Exception(_complete_extra_msg(msg, extra_msg))
|
105
107
|
|
@@ -124,7 +126,7 @@ def _check_var(
|
|
124
126
|
|
125
127
|
if err is True:
|
126
128
|
msg = (
|
127
|
-
f"Arg {varname} must be {sign}\n"
|
129
|
+
f"Arg {varname} must be of sign {sign}\n"
|
128
130
|
f"Provided: {var}"
|
129
131
|
)
|
130
132
|
raise Exception(_complete_extra_msg(msg, extra_msg))
|
@@ -543,51 +545,47 @@ def _obj_key(d0=None, short=None, key=None, ndigits=None):
|
|
543
545
|
# Utilities for plotting
|
544
546
|
# #############################################################################
|
545
547
|
|
548
|
+
# DEPRECATED
|
549
|
+
# def _check_inplace(coll=None, keys=None):
|
550
|
+
# """ Check key to data and inplace """
|
546
551
|
|
547
|
-
|
548
|
-
|
552
|
+
# # -----------------------------
|
553
|
+
# # keys of data to be extracted
|
554
|
+
# # ----------------------------
|
549
555
|
|
550
|
-
#
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
)
|
556
|
+
# if isinstance(keys, str):
|
557
|
+
# keys = [keys]
|
558
|
+
# keys = _check_var_iter(
|
559
|
+
# keys, 'keys',
|
560
|
+
# default=None,
|
561
|
+
# types=list,
|
562
|
+
# types_iter=str,
|
563
|
+
# allowed=list(coll.ddata.keys()),
|
564
|
+
# )
|
560
565
|
|
561
|
-
#
|
562
|
-
|
563
|
-
|
564
|
-
types=bool,
|
565
|
-
default=False,
|
566
|
-
)
|
566
|
+
# # ----------------------
|
567
|
+
# # extract sub-collection
|
568
|
+
# # ----------------------
|
567
569
|
|
568
|
-
#
|
569
|
-
|
570
|
-
coll2 = coll
|
571
|
-
else:
|
572
|
-
lk0 = list(keys)
|
573
|
-
for key in keys:
|
570
|
+
# lk0 = list(keys)
|
571
|
+
# for key in keys:
|
574
572
|
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
573
|
+
# # Include all data matching any single ref
|
574
|
+
# for rr in coll._ddata[key]['ref']:
|
575
|
+
# for k0, v0 in coll._ddata.items():
|
576
|
+
# if v0['ref'] == (rr,):
|
577
|
+
# if k0 not in lk0:
|
578
|
+
# lk0.append(k0)
|
581
579
|
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
580
|
+
# # include all data matching all refs
|
581
|
+
# for k0, v0 in coll._ddata.items():
|
582
|
+
# if v0['ref'] == coll._ddata[key]['ref']:
|
583
|
+
# if k0 not in lk0:
|
584
|
+
# lk0.append(k0)
|
587
585
|
|
588
|
-
|
586
|
+
# coll2 = coll.extract(lk0)
|
589
587
|
|
590
|
-
return keys,
|
588
|
+
# return keys, coll2
|
591
589
|
|
592
590
|
|
593
591
|
def _check_dax(dax=None, main=None):
|
@@ -921,4 +919,4 @@ def _check_cmap_vminvmax(data=None, cmap=None, vmin=None, vmax=None):
|
|
921
919
|
else:
|
922
920
|
vmax = nanmax
|
923
921
|
|
924
|
-
return cmap, vmin, vmax
|
922
|
+
return cmap, vmin, vmax
|
datastock/_generic_utils.py
CHANGED
@@ -31,7 +31,10 @@ def _pretty_print_check(
|
|
31
31
|
returnas=None,
|
32
32
|
):
|
33
33
|
|
34
|
+
# -------------
|
34
35
|
# headers
|
36
|
+
# -------------
|
37
|
+
|
35
38
|
c0 = (
|
36
39
|
isinstance(headers, list)
|
37
40
|
and all([
|
@@ -65,7 +68,10 @@ def _pretty_print_check(
|
|
65
68
|
headers[ii] = [headers[ii]]
|
66
69
|
nhead = [len(h0[0]) for h0 in headers]
|
67
70
|
|
71
|
+
# -------------
|
68
72
|
# content
|
73
|
+
# -------------
|
74
|
+
|
69
75
|
c0 = (
|
70
76
|
isinstance(content, list)
|
71
77
|
and all([
|
@@ -92,10 +98,14 @@ def _pretty_print_check(
|
|
92
98
|
)
|
93
99
|
raise Exception(msg)
|
94
100
|
|
101
|
+
# -------------
|
102
|
+
# options
|
103
|
+
# -------------
|
104
|
+
|
95
105
|
# sep
|
96
106
|
sep = _generic_check._check_var(
|
97
107
|
sep, 'sep',
|
98
|
-
default='
|
108
|
+
default=' ',
|
99
109
|
types=str,
|
100
110
|
)
|
101
111
|
|
datastock/_generic_utils_plot.py
CHANGED
@@ -17,6 +17,7 @@ __all__ = [
|
|
17
17
|
'set_aspect3d',
|
18
18
|
]
|
19
19
|
|
20
|
+
|
20
21
|
# ###############################################################
|
21
22
|
# ###############################################################
|
22
23
|
# set_aspect3d
|
@@ -31,7 +32,7 @@ def set_aspect3d(
|
|
31
32
|
# ------------
|
32
33
|
# check inputs
|
33
34
|
|
34
|
-
ax, margin =
|
35
|
+
ax, margin = _set_aspect3d_check(
|
35
36
|
ax=ax,
|
36
37
|
margin=margin,
|
37
38
|
)
|
@@ -73,7 +74,7 @@ def set_aspect3d(
|
|
73
74
|
# ################
|
74
75
|
|
75
76
|
|
76
|
-
def
|
77
|
+
def _set_aspect3d_check(
|
77
78
|
ax=None,
|
78
79
|
margin=None,
|
79
80
|
):
|
@@ -100,4 +101,76 @@ def _check(
|
|
100
101
|
sign='>=0',
|
101
102
|
)
|
102
103
|
|
103
|
-
return ax, margin
|
104
|
+
return ax, margin
|
105
|
+
|
106
|
+
|
107
|
+
# ############################################################
|
108
|
+
# ############################################################
|
109
|
+
# _get_str_datadlab
|
110
|
+
# ############################################################
|
111
|
+
|
112
|
+
|
113
|
+
def _get_str_datadlab(
|
114
|
+
coll=None,
|
115
|
+
keyX=None,
|
116
|
+
refX=None,
|
117
|
+
nx=None,
|
118
|
+
islogX=None,
|
119
|
+
):
|
120
|
+
|
121
|
+
keyX2 = keyX
|
122
|
+
xstr = (
|
123
|
+
(keyX != 'index')
|
124
|
+
and coll.ddata[keyX]['data'].dtype.type == np.str_
|
125
|
+
)
|
126
|
+
|
127
|
+
# --------------------
|
128
|
+
# add index vector
|
129
|
+
|
130
|
+
if keyX == 'index' or xstr:
|
131
|
+
keyX2 = f"{refX}_index"
|
132
|
+
|
133
|
+
c0 = (
|
134
|
+
keyX2 in coll.ddata.keys()
|
135
|
+
and coll.ddata[keyX2]['ref'] == (refX,)
|
136
|
+
and np.allclose(coll.ddata[keyX2]['data'], np.arange(nx))
|
137
|
+
)
|
138
|
+
|
139
|
+
if not c0:
|
140
|
+
coll.add_data(
|
141
|
+
key=keyX2,
|
142
|
+
data=np.arange(0, nx),
|
143
|
+
ref=refX,
|
144
|
+
units='',
|
145
|
+
)
|
146
|
+
dX2 = 0.5
|
147
|
+
if keyX == 'index':
|
148
|
+
labX = "index"
|
149
|
+
else:
|
150
|
+
labX = ''
|
151
|
+
|
152
|
+
if xstr is True:
|
153
|
+
xstr = coll.ddata[keyX]['data']
|
154
|
+
|
155
|
+
# -------------------------------------
|
156
|
+
# keyX refers to exising numerical data
|
157
|
+
|
158
|
+
else:
|
159
|
+
if islogX is True:
|
160
|
+
keyX2 = f"{keyX}_log10"
|
161
|
+
coll.add_data(
|
162
|
+
key=keyX2,
|
163
|
+
data=np.log10(coll.ddata[keyX]['data']),
|
164
|
+
ref=coll.ddata[keyX]['ref'],
|
165
|
+
units=coll.ddata[keyX]['units'],
|
166
|
+
)
|
167
|
+
labX = r"$\log_{10}$" + f"({keyX} ({coll._ddata[keyX]['units']}))"
|
168
|
+
dataX = coll.ddata[keyX2]['data']
|
169
|
+
coll.remove_data(keyX, propagate=False)
|
170
|
+
|
171
|
+
else:
|
172
|
+
labX = f"{keyX} ({coll._ddata[keyX]['units']})"
|
173
|
+
dataX = coll.ddata[keyX]['data']
|
174
|
+
dX2 = np.nanmean(np.diff(dataX)) / 2.
|
175
|
+
|
176
|
+
return keyX2, xstr, dX2, labX
|
@@ -116,12 +116,16 @@ def _plot_BvsA_check(
|
|
116
116
|
dataB = dataB.toarray()
|
117
117
|
|
118
118
|
# check key, inplace flag and extract sub-collection
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
119
|
+
lk = [kk for kk in [keyA, keyB, keyX] if kk is not None]
|
120
|
+
coll2, key = coll.extract(
|
121
|
+
lk,
|
122
|
+
inc_monot=False,
|
123
|
+
inc_vectors=False,
|
124
|
+
inc_allrefs=False,
|
125
|
+
return_keys=True,
|
123
126
|
)
|
124
|
-
keyA, keyB =
|
127
|
+
keyA, keyB = key[:2]
|
128
|
+
|
125
129
|
dimA, dimB = dataA.ndim, dataB.ndim
|
126
130
|
if dimA > dimB:
|
127
131
|
ndim, refs, shape = dimA, refA, dataA.shape
|