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.
@@ -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} must be in {allowed}!\n"
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 {excluded}!\n"
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
- def _check_inplace(coll=None, keys=None, inplace=None):
548
- """ Check key to data and inplace """
552
+ # # -----------------------------
553
+ # # keys of data to be extracted
554
+ # # ----------------------------
549
555
 
550
- # key
551
- if isinstance(keys, str):
552
- keys = [keys]
553
- keys = _check_var_iter(
554
- keys, 'keys',
555
- default=None,
556
- types=list,
557
- types_iter=str,
558
- allowed=list(coll.ddata.keys()),
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
- # inplace
562
- inplace = _check_var(
563
- inplace, 'inplace',
564
- types=bool,
565
- default=False,
566
- )
566
+ # # ----------------------
567
+ # # extract sub-collection
568
+ # # ----------------------
567
569
 
568
- # extract sub-collection of necessary
569
- if inplace:
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
- # Include all data matching any single ref
576
- for rr in coll._ddata[key]['ref']:
577
- for k0, v0 in coll._ddata.items():
578
- if v0['ref'] == (rr,):
579
- if k0 not in lk0:
580
- lk0.append(k0)
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
- # include all data matching all refs
583
- for k0, v0 in coll._ddata.items():
584
- if v0['ref'] == coll._ddata[key]['ref']:
585
- if k0 not in lk0:
586
- lk0.append(k0)
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
- coll2 = coll.extract(lk0)
586
+ # coll2 = coll.extract(lk0)
589
587
 
590
- return keys, inplace, coll2
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
@@ -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
 
@@ -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 = _check(
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 _check(
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
- keys, inplace, coll2 = _generic_check._check_inplace(
120
- coll=coll,
121
- keys=[keyA, keyB],
122
- inplace=inplace,
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 = keys
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