dclab 0.62.17__cp39-cp39-macosx_11_0_arm64.whl → 0.67.3__cp39-cp39-macosx_11_0_arm64.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.
- dclab/_version.py +16 -3
- dclab/cli/task_tdms2rtdc.py +1 -1
- dclab/cli/task_verify_dataset.py +3 -3
- dclab/definitions/__init__.py +1 -1
- dclab/definitions/feat_const.py +6 -4
- dclab/definitions/feat_logic.py +27 -28
- dclab/downsampling.cpython-39-darwin.so +0 -0
- dclab/downsampling.pyx +12 -7
- dclab/external/skimage/_find_contours_cy.cpython-39-darwin.so +0 -0
- dclab/external/skimage/_pnpoly.cpython-39-darwin.so +0 -0
- dclab/external/skimage/_shared/geometry.cpython-39-darwin.so +0 -0
- dclab/features/bright.py +11 -2
- dclab/features/bright_bc.py +13 -2
- dclab/features/bright_perc.py +10 -2
- dclab/features/contour.py +12 -7
- dclab/features/emodulus/__init__.py +33 -27
- dclab/features/emodulus/load.py +8 -6
- dclab/features/emodulus/pxcorr.py +33 -15
- dclab/features/emodulus/scale_linear.py +79 -52
- dclab/features/emodulus/viscosity.py +31 -19
- dclab/features/fl_crosstalk.py +19 -10
- dclab/features/inert_ratio.py +18 -11
- dclab/features/volume.py +24 -14
- dclab/http_utils.py +1 -1
- dclab/kde/base.py +238 -14
- dclab/kde/methods.py +33 -12
- dclab/rtdc_dataset/config.py +1 -1
- dclab/rtdc_dataset/core.py +22 -8
- dclab/rtdc_dataset/export.py +171 -34
- dclab/rtdc_dataset/feat_basin.py +250 -33
- dclab/rtdc_dataset/fmt_dcor/api.py +69 -7
- dclab/rtdc_dataset/fmt_dcor/base.py +103 -4
- dclab/rtdc_dataset/fmt_dcor/logs.py +1 -1
- dclab/rtdc_dataset/fmt_dcor/tables.py +1 -1
- dclab/rtdc_dataset/fmt_hdf5/events.py +20 -1
- dclab/rtdc_dataset/fmt_hierarchy/base.py +1 -1
- dclab/rtdc_dataset/fmt_s3.py +29 -10
- dclab/rtdc_dataset/fmt_tdms/event_trace.py +1 -1
- dclab/rtdc_dataset/fmt_tdms/naming.py +1 -1
- dclab/rtdc_dataset/writer.py +43 -11
- dclab/statistics.py +27 -4
- dclab/warn.py +1 -1
- {dclab-0.62.17.dist-info → dclab-0.67.3.dist-info}/METADATA +26 -4
- {dclab-0.62.17.dist-info → dclab-0.67.3.dist-info}/RECORD +48 -48
- {dclab-0.62.17.dist-info → dclab-0.67.3.dist-info}/WHEEL +1 -1
- {dclab-0.62.17.dist-info → dclab-0.67.3.dist-info}/entry_points.txt +0 -0
- {dclab-0.62.17.dist-info → dclab-0.67.3.dist-info}/licenses/LICENSE +0 -0
- {dclab-0.62.17.dist-info → dclab-0.67.3.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""RT-DC hdf5 format"""
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
|
|
4
|
+
import pathlib
|
|
4
5
|
import warnings
|
|
5
6
|
|
|
6
7
|
import numbers
|
|
@@ -17,7 +18,17 @@ class H5ContourEvent:
|
|
|
17
18
|
self._length = length
|
|
18
19
|
self.h5group = h5group
|
|
19
20
|
# for hashing in util.obj2bytes
|
|
20
|
-
|
|
21
|
+
# path within the HDF5 file
|
|
22
|
+
o_name = h5group["0"].name,
|
|
23
|
+
# filename
|
|
24
|
+
o_filename = h5group.file.filename
|
|
25
|
+
_data = [o_name, o_filename]
|
|
26
|
+
if pathlib.Path(o_filename).exists():
|
|
27
|
+
# when the file was changed
|
|
28
|
+
_data.append(pathlib.Path(h5group.file.filename).stat().st_mtime)
|
|
29
|
+
# size of the file
|
|
30
|
+
_data.append(pathlib.Path(h5group.file.filename).stat().st_size)
|
|
31
|
+
self.identifier = _data
|
|
21
32
|
|
|
22
33
|
def __getitem__(self, key):
|
|
23
34
|
if not isinstance(key, numbers.Integral):
|
|
@@ -168,6 +179,10 @@ class H5MaskEvent:
|
|
|
168
179
|
def shape(self):
|
|
169
180
|
return self.h5dataset.shape
|
|
170
181
|
|
|
182
|
+
@property
|
|
183
|
+
def size(self):
|
|
184
|
+
return np.prod(self.shape)
|
|
185
|
+
|
|
171
186
|
|
|
172
187
|
class H5ScalarEvent(np.lib.mixins.NDArrayOperatorsMixin):
|
|
173
188
|
def __init__(self, h5ds):
|
|
@@ -224,6 +239,10 @@ class H5ScalarEvent(np.lib.mixins.NDArrayOperatorsMixin):
|
|
|
224
239
|
def shape(self):
|
|
225
240
|
return self.h5ds.shape
|
|
226
241
|
|
|
242
|
+
@property
|
|
243
|
+
def size(self):
|
|
244
|
+
return len(self)
|
|
245
|
+
|
|
227
246
|
|
|
228
247
|
class H5TraceEvent:
|
|
229
248
|
def __init__(self, h5group):
|
|
@@ -29,7 +29,7 @@ class RTDC_Hierarchy(RTDCBase):
|
|
|
29
29
|
Children in hierarchies always update their data according to
|
|
30
30
|
the filtered event data from their parent when `apply_filter`
|
|
31
31
|
is called. This makes it easier to save and load hierarchy
|
|
32
|
-
children with e.g.
|
|
32
|
+
children with e.g. DCscope and it makes the handling of
|
|
33
33
|
hierarchies more intuitive (when the parent changes,
|
|
34
34
|
the child changes as well).
|
|
35
35
|
|
dclab/rtdc_dataset/fmt_s3.py
CHANGED
|
@@ -42,6 +42,27 @@ S3_ACCESS_KEY_ID = os.environ.get("DCLAB_S3_ACCESS_KEY_ID")
|
|
|
42
42
|
S3_SECRET_ACCESS_KEY = os.environ.get("DCLAB_S3_SECRET_ACCESS_KEY")
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
@functools.lru_cache(maxsize=1000)
|
|
46
|
+
def get_s3_session_client(access_key_id: str,
|
|
47
|
+
secret_access_key: str,
|
|
48
|
+
use_ssl: bool,
|
|
49
|
+
verify_ssl: bool,
|
|
50
|
+
endpoint_url: str
|
|
51
|
+
):
|
|
52
|
+
botocore_session = botocore.session.get_session()
|
|
53
|
+
s3_session = boto3.Session(
|
|
54
|
+
aws_access_key_id=access_key_id,
|
|
55
|
+
aws_secret_access_key=secret_access_key,
|
|
56
|
+
botocore_session=botocore_session)
|
|
57
|
+
s3_client = s3_session.client(
|
|
58
|
+
service_name='s3',
|
|
59
|
+
use_ssl=use_ssl,
|
|
60
|
+
verify=verify_ssl,
|
|
61
|
+
endpoint_url=endpoint_url,
|
|
62
|
+
)
|
|
63
|
+
return botocore_session, s3_session, s3_client
|
|
64
|
+
|
|
65
|
+
|
|
45
66
|
class S3File(HTTPFile):
|
|
46
67
|
"""Monkeypatched `HTTPFile` to support authenticated access to S3"""
|
|
47
68
|
def __init__(self,
|
|
@@ -74,17 +95,15 @@ class S3File(HTTPFile):
|
|
|
74
95
|
"not specify the full S3 URL or that you forgot to set "
|
|
75
96
|
"the `S3_ENDPOINT_URL` environment variable.")
|
|
76
97
|
endpoint_url = endpoint_url.strip().rstrip("/")
|
|
77
|
-
self.botocore_session =
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
use_ssl=use_ssl,
|
|
85
|
-
verify=verify_ssl,
|
|
86
|
-
endpoint_url=endpoint_url,
|
|
98
|
+
self.botocore_session, self.s3_session, self.s3_client = \
|
|
99
|
+
get_s3_session_client(
|
|
100
|
+
access_key_id=access_key_id,
|
|
101
|
+
secret_access_key=secret_access_key,
|
|
102
|
+
use_ssl=use_ssl,
|
|
103
|
+
verify_ssl=verify_ssl,
|
|
104
|
+
endpoint_url=endpoint_url,
|
|
87
105
|
)
|
|
106
|
+
|
|
88
107
|
# Use a configuration that allows anonymous access
|
|
89
108
|
# https://stackoverflow.com/a/34866092
|
|
90
109
|
if not secret_access_key:
|
|
@@ -17,7 +17,7 @@ class TraceColumn(object):
|
|
|
17
17
|
|
|
18
18
|
The trace data is loaded when __getitem__, __len__, or __iter__
|
|
19
19
|
are called. This saves time and memory when the trace data is
|
|
20
|
-
not needed at all, e.g. for batch processing with
|
|
20
|
+
not needed at all, e.g. for batch processing with DCscope.
|
|
21
21
|
"""
|
|
22
22
|
self._trace = None
|
|
23
23
|
self.mname = rtdc_dataset.path
|
|
@@ -49,7 +49,7 @@ for kk in dclab2tdms:
|
|
|
49
49
|
tdms2dclab[dclab2tdms[kk]] = kk
|
|
50
50
|
|
|
51
51
|
# Add capitalized userdef features as well.
|
|
52
|
-
# see https://github.com/
|
|
52
|
+
# see https://github.com/DC-analysis/DCscope/issues/212
|
|
53
53
|
for _i in range(10):
|
|
54
54
|
tdms2dclab["UserDef{}".format(_i)] = "userdef{}".format(_i)
|
|
55
55
|
|
dclab/rtdc_dataset/writer.py
CHANGED
|
@@ -44,6 +44,10 @@ FEATURES_UINT64 = [
|
|
|
44
44
|
]
|
|
45
45
|
|
|
46
46
|
|
|
47
|
+
class StoringPerishableBasinWarning(UserWarning):
|
|
48
|
+
pass
|
|
49
|
+
|
|
50
|
+
|
|
47
51
|
class RTDCWriter:
|
|
48
52
|
def __init__(self,
|
|
49
53
|
path_or_h5file: str | pathlib.Path | h5py.File,
|
|
@@ -66,8 +70,8 @@ class RTDCWriter:
|
|
|
66
70
|
compression_kwargs: dict-like
|
|
67
71
|
Dictionary with the keys "compression" and "compression_opts"
|
|
68
72
|
which are passed to :func:`h5py.H5File.create_dataset`. The
|
|
69
|
-
default is Zstandard compression with the
|
|
70
|
-
level `hdf5plugin.Zstd(clevel=
|
|
73
|
+
default is Zstandard compression with the compression
|
|
74
|
+
level 5 `hdf5plugin.Zstd(clevel=5)`. To disable compression, use
|
|
71
75
|
`{"compression": None}`.
|
|
72
76
|
compression: str or None
|
|
73
77
|
Compression method used for data storage;
|
|
@@ -88,7 +92,7 @@ class RTDCWriter:
|
|
|
88
92
|
# be backwards-compatible
|
|
89
93
|
compression_kwargs = {"compression": compression}
|
|
90
94
|
if compression_kwargs is None:
|
|
91
|
-
compression_kwargs = hdf5plugin.Zstd(clevel=
|
|
95
|
+
compression_kwargs = hdf5plugin.Zstd(clevel=5)
|
|
92
96
|
|
|
93
97
|
self.mode = mode
|
|
94
98
|
self.compression_kwargs = compression_kwargs
|
|
@@ -207,8 +211,10 @@ class RTDCWriter:
|
|
|
207
211
|
basin_descr: str | None = None,
|
|
208
212
|
basin_feats: List[str] = None,
|
|
209
213
|
basin_map: np.ndarray | Tuple[str, np.ndarray] = None,
|
|
214
|
+
basin_id: str = None,
|
|
210
215
|
internal_data: Dict | h5py.Group = None,
|
|
211
216
|
verify: bool = True,
|
|
217
|
+
perishable: bool = False,
|
|
212
218
|
):
|
|
213
219
|
"""Write basin information
|
|
214
220
|
|
|
@@ -242,6 +248,12 @@ class RTDCWriter:
|
|
|
242
248
|
a case, you may specify a tuple `(feature_name, mapping_array)`
|
|
243
249
|
where `feature_name` is the explicit mapping name, e.g.
|
|
244
250
|
`"basinmap3"`.
|
|
251
|
+
basin_id: str
|
|
252
|
+
Identifier of the basin. This is the string returned by
|
|
253
|
+
:meth:`.RTDCBase.get_measurement_identifier`. This is
|
|
254
|
+
a unique string that identifies the data within a basin.
|
|
255
|
+
If not specified and `verify=True`, this value is automatically
|
|
256
|
+
taken from the basin file.
|
|
245
257
|
internal_data: dict or instance of h5py.Group
|
|
246
258
|
A dictionary or an `h5py.Group` containing the basin data.
|
|
247
259
|
The data are copied to the "basin_events" group, if
|
|
@@ -249,9 +261,13 @@ class RTDCWriter:
|
|
|
249
261
|
This must be specified when storing internal basins, and it
|
|
250
262
|
must not be specified for any other basin type.
|
|
251
263
|
verify: bool
|
|
252
|
-
|
|
264
|
+
Whether to verify the basin before storing it; You might have
|
|
253
265
|
set this to False if you would like to write a basin that is
|
|
254
266
|
e.g. temporarily not available
|
|
267
|
+
perishable: bool
|
|
268
|
+
Whether the basin is perishable. If this is True, then a
|
|
269
|
+
warning will be issued, because perishable basins may not be
|
|
270
|
+
accessed (e.g. time-based URL for private S3 data).
|
|
255
271
|
|
|
256
272
|
Returns
|
|
257
273
|
-------
|
|
@@ -261,6 +277,9 @@ class RTDCWriter:
|
|
|
261
277
|
|
|
262
278
|
.. versionadded:: 0.58.0
|
|
263
279
|
"""
|
|
280
|
+
if perishable:
|
|
281
|
+
warnings.warn(f"Storing perishable basin '{basin_name}'",
|
|
282
|
+
StoringPerishableBasinWarning)
|
|
264
283
|
if basin_type == "internal":
|
|
265
284
|
if internal_data is None:
|
|
266
285
|
raise ValueError(
|
|
@@ -303,19 +322,30 @@ class RTDCWriter:
|
|
|
303
322
|
# We have to import this here to avoid circular imports
|
|
304
323
|
from .load import new_dataset
|
|
305
324
|
# Make sure the basin can be opened by dclab, verify its ID
|
|
306
|
-
|
|
325
|
+
ref_id = self.h5file.attrs.get("experiment:run identifier")
|
|
307
326
|
for loc in basin_locs:
|
|
308
327
|
with new_dataset(loc) as ds:
|
|
309
328
|
# We can open the file, which is great.
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
329
|
+
# Compare the IDs.
|
|
330
|
+
bn_id = ds.get_measurement_identifier()
|
|
331
|
+
# Check whether `basin_id` matches the actual basin
|
|
332
|
+
if basin_id:
|
|
333
|
+
if basin_id != bn_id:
|
|
334
|
+
raise ValueError(
|
|
335
|
+
f"Measurement identifier mismatch for "
|
|
336
|
+
f"{loc}: got {bn_id}, expected {basin_id=})!")
|
|
337
|
+
else:
|
|
338
|
+
# If `basin_id` was not specified, set it here for
|
|
339
|
+
# user convenience.
|
|
340
|
+
basin_id = bn_id or None
|
|
341
|
+
# Check whether the referrer ID matches the basin ID.
|
|
342
|
+
if ref_id:
|
|
343
|
+
if not (bn_id == ref_id
|
|
314
344
|
or (basin_map is not None
|
|
315
|
-
and
|
|
345
|
+
and ref_id.startswith(bn_id))):
|
|
316
346
|
raise ValueError(
|
|
317
347
|
f"Measurement identifier mismatch between "
|
|
318
|
-
f"{self.path} ({
|
|
348
|
+
f"{self.path} ({ref_id}) and {loc} ({bn_id})!")
|
|
319
349
|
if basin_feats:
|
|
320
350
|
for feat in basin_feats:
|
|
321
351
|
if not dfn.feature_exists(feat):
|
|
@@ -381,6 +411,8 @@ class RTDCWriter:
|
|
|
381
411
|
"type": basin_type,
|
|
382
412
|
"features": None if basin_feats is None else sorted(basin_feats),
|
|
383
413
|
"mapping": basin_map_name,
|
|
414
|
+
"perishable": perishable,
|
|
415
|
+
"identifier": basin_id,
|
|
384
416
|
}
|
|
385
417
|
if basin_type == "file":
|
|
386
418
|
flocs = []
|
dclab/statistics.py
CHANGED
|
@@ -86,7 +86,7 @@ def flow_rate(ds):
|
|
|
86
86
|
return np.nan
|
|
87
87
|
|
|
88
88
|
|
|
89
|
-
def get_statistics(ds, methods=None, features=None):
|
|
89
|
+
def get_statistics(ds, methods=None, features=None, ret_dict=False):
|
|
90
90
|
"""Compute statistics for an RT-DC dataset
|
|
91
91
|
|
|
92
92
|
Parameters
|
|
@@ -96,13 +96,16 @@ def get_statistics(ds, methods=None, features=None):
|
|
|
96
96
|
methods: list of str or None
|
|
97
97
|
The methods wih which to compute the statistics.
|
|
98
98
|
The list of available methods is given with
|
|
99
|
-
|
|
99
|
+
:func:`.available_methods.keys`
|
|
100
100
|
If set to `None`, statistics for all methods are computed.
|
|
101
101
|
features: list of str
|
|
102
102
|
Feature name identifiers are defined by
|
|
103
|
-
|
|
103
|
+
:func:`dclab.definitions.feature_exists`.
|
|
104
104
|
If set to `None`, statistics for all scalar features
|
|
105
105
|
available are computed.
|
|
106
|
+
ret_dict: bool
|
|
107
|
+
Instead of returning ``(header, values)``, return a dictionary
|
|
108
|
+
with headers as keys.
|
|
106
109
|
|
|
107
110
|
Returns
|
|
108
111
|
-------
|
|
@@ -148,7 +151,10 @@ def get_statistics(ds, methods=None, features=None):
|
|
|
148
151
|
label = dfn.get_feature_label(ft, rtdc_ds=ds)
|
|
149
152
|
header.append(" ".join([mt, label]))
|
|
150
153
|
|
|
151
|
-
|
|
154
|
+
if ret_dict:
|
|
155
|
+
return dict(zip(header, values))
|
|
156
|
+
else:
|
|
157
|
+
return header, values
|
|
152
158
|
|
|
153
159
|
|
|
154
160
|
def mode(data):
|
|
@@ -191,7 +197,24 @@ def mode(data):
|
|
|
191
197
|
# Register all the methods
|
|
192
198
|
# Methods that require an axis
|
|
193
199
|
Statistics(name="Mean", req_feature=True, method=np.average)
|
|
200
|
+
# Premature-Optimization warning: `np.percentile` also accepts an array
|
|
201
|
+
# of percentiles as the `q` argument, which I would expect to yield better
|
|
202
|
+
# performance than computing percentiles individually. Implementing this
|
|
203
|
+
# would break the way we are defining statistical methods here (One
|
|
204
|
+
# `Statistics` instance per method) and thus requires a considerable
|
|
205
|
+
# amount of work (much more work than writing this text here). It would
|
|
206
|
+
# also make understanding the code more difficult. In addition, computing
|
|
207
|
+
# statistics is not done often and is extremely fast anyway for a few
|
|
208
|
+
# millions of events. Don't optimize this!
|
|
209
|
+
Statistics(name="10th Percentile", req_feature=True,
|
|
210
|
+
method=lambda data: np.percentile(data, 10))
|
|
211
|
+
Statistics(name="25th Percentile", req_feature=True,
|
|
212
|
+
method=lambda data: np.percentile(data, 25))
|
|
194
213
|
Statistics(name="Median", req_feature=True, method=np.median)
|
|
214
|
+
Statistics(name="75th Percentile", req_feature=True,
|
|
215
|
+
method=lambda data: np.percentile(data, 75))
|
|
216
|
+
Statistics(name="90th Percentile", req_feature=True,
|
|
217
|
+
method=lambda data: np.percentile(data, 90))
|
|
195
218
|
Statistics(name="Mode", req_feature=True, method=mode)
|
|
196
219
|
Statistics(name="SD", req_feature=True, method=np.std)
|
|
197
220
|
# Methods that work on RTDCBase
|
dclab/warn.py
CHANGED
|
@@ -9,7 +9,7 @@ class PipelineWarning(UserWarning):
|
|
|
9
9
|
computation) in his analysis pipeline. All of these
|
|
10
10
|
warnings should be subclassed from PipelineWarning
|
|
11
11
|
to allow identifying them in higher-level software
|
|
12
|
-
such as
|
|
12
|
+
such as DCscope and to present them correctly to the
|
|
13
13
|
user.
|
|
14
14
|
"""
|
|
15
15
|
pass
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dclab
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.67.3
|
|
4
4
|
Summary: Library for real-time deformability cytometry (RT-DC)
|
|
5
5
|
Author: Benedikt Hartmann, Eoghan O'Connell, Maik Herbig, Maximilian Schlögel, Nadia Sbaa, Paul Müller, Philipp Rosendahl, Raghava Alajangi
|
|
6
6
|
Maintainer-email: Paul Müller <dev@craban.de>
|
|
7
|
-
License: GPL-2.0-or-later
|
|
7
|
+
License-Expression: GPL-2.0-or-later
|
|
8
8
|
Project-URL: source, https://github.com/DC-Analysis/dclab
|
|
9
9
|
Project-URL: tracker, https://github.com/DC-Analysis/dclab/issues
|
|
10
10
|
Project-URL: documentation, https://dclab.readthedocs.io/en/stable/
|
|
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
16
16
|
Classifier: Intended Audience :: Science/Research
|
|
17
|
-
Requires-Python: <4,>=3.
|
|
17
|
+
Requires-Python: <4,>=3.9
|
|
18
18
|
Description-Content-Type: text/x-rst
|
|
19
19
|
License-File: LICENSE
|
|
20
20
|
Requires-Dist: h5py<4,>=3.0.0
|
|
@@ -46,7 +46,13 @@ Dynamic: license-file
|
|
|
46
46
|
|
|
47
47
|
This is a Python library for the post-measurement analysis of
|
|
48
48
|
real-time deformability cytometry (RT-DC) datasets; an essential part of
|
|
49
|
-
|
|
49
|
+
the DC Cosmos (
|
|
50
|
+
`DCscope <https://github.com/DC-analysis/DCscope>`__,
|
|
51
|
+
`DCOR <https://github.com/DCOR-dev/dcor_control>`__,
|
|
52
|
+
`DCOR-Aid <https://github.com/DCOR-dev/DCOR-Aid>`__,
|
|
53
|
+
`DCTag <https://github.com/DC-analysis/DCTag>`__,
|
|
54
|
+
`DCKit <https://github.com/DC-analysis/DCKit>`__,
|
|
55
|
+
).
|
|
50
56
|
|
|
51
57
|
Documentation
|
|
52
58
|
-------------
|
|
@@ -122,6 +128,22 @@ We use flake8 to enforce coding style::
|
|
|
122
128
|
flake8 tests
|
|
123
129
|
|
|
124
130
|
|
|
131
|
+
Type Hinting
|
|
132
|
+
~~~~~~~~~~~~
|
|
133
|
+
For type hinting and docstring styling, try to keep the
|
|
134
|
+
Code Reference readable in the documentation website.
|
|
135
|
+
If in doubt just ask, or look at the examples in the codebase.
|
|
136
|
+
|
|
137
|
+
* Simple type combintions such as ``float`` or ``str | pathlib.Path``
|
|
138
|
+
should be included as type hints, but do not need to be included
|
|
139
|
+
in the docstring parameter description.
|
|
140
|
+
* More involved type hints can have extra information in the
|
|
141
|
+
docstring. For example for numpy arrays, ``npt.NDArray[np.bool]`` doesn't
|
|
142
|
+
render in a readable way in the Code Reference, and doesn't include shape.
|
|
143
|
+
Therefore, you can also keep the docstring parameter description with
|
|
144
|
+
the shape and dtype information e.g., ``binary ndarray of shape (M, N)``.
|
|
145
|
+
|
|
146
|
+
|
|
125
147
|
Incrementing version
|
|
126
148
|
~~~~~~~~~~~~~~~~~~~~
|
|
127
149
|
Dclab gets its version from the latest git tag.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
dclab/kde_methods.py,sha256=f0-zDN7ETintvGB3gSzxwgBb53YtT9jZtzI70EAX50g,365
|
|
2
|
-
dclab/_version.py,sha256=
|
|
2
|
+
dclab/_version.py,sha256=C93LipY6MoOvCWHtZWanKa2gAYf8_iZ23C55Gs_peq0,714
|
|
3
3
|
dclab/util.py,sha256=HFT5ZQV6AW8GIIruVMldukbVVdlMyKH50GUfOogAcxI,5860
|
|
4
|
-
dclab/downsampling.pyx,sha256=
|
|
4
|
+
dclab/downsampling.pyx,sha256=b_UAoY-TQyZsMiqV10R2Qss_O7IWmQoiwX1zGqniIxc,7504
|
|
5
5
|
dclab/__init__.py,sha256=wyJWhElQRPcq09vUqUnuquTU_KHgHxv6wQxuxQ988Iw,1583
|
|
6
|
-
dclab/warn.py,sha256=
|
|
6
|
+
dclab/warn.py,sha256=fy2fcZdA0YRMlVFIcOPNZJQOQLkvblJQ8pCfCx1phnw,521
|
|
7
7
|
dclab/cached.py,sha256=eWTYBiI-HQM7JuPH-oxa5LLnhAX32GpRwlYg2kQ3sTA,2917
|
|
8
|
-
dclab/http_utils.py,sha256=
|
|
8
|
+
dclab/http_utils.py,sha256=XHicbHQts5LY3zSNmYqNgAZpKTktotEiwQgJ8d2sBlk,10912
|
|
9
9
|
dclab/polygon_filter.py,sha256=qexmo-rXe06CUPZhN6EMJy4y4B5gXZeqejdvIB2arOE,13480
|
|
10
|
-
dclab/downsampling.cpython-39-darwin.so,sha256=
|
|
11
|
-
dclab/statistics.py,sha256=
|
|
10
|
+
dclab/downsampling.cpython-39-darwin.so,sha256=Nr3zUj4k2CFx-AfYH7oC3bzrRfEc8y-G-5EIEBkb6rw,260992
|
|
11
|
+
dclab/statistics.py,sha256=DWBG_Kj7cn89b_s5mqWYDCMGB881jHcCRFY-KAOBnhE,7598
|
|
12
12
|
dclab/kde_contours.py,sha256=UlU64lrzMQUZH11oZndW7xf7NFCzwP3FcVujwuqXDCI,278
|
|
13
13
|
dclab/isoelastics/iso_LE-2D-FEM-19-volume-deform.txt,sha256=vTcazOlOXo3BQ0NQtGB_IdHKA0neOLXZ_d3JuMU--RE,83358
|
|
14
14
|
dclab/isoelastics/iso_HE-3D-FEM-22-area_um-deform.txt,sha256=IjULG1KO-hClaYPoJJnwPbF2TkS9i9jxF1tbhhQTClY,71350
|
|
@@ -18,39 +18,39 @@ dclab/isoelastics/__init__.py,sha256=d07K8Ab73_vot8Op4ZpNi_YbtlJPM8r53davAEB_zSc
|
|
|
18
18
|
dclab/isoelastics/iso_HE-2D-FEM-22-area_um-deform.txt,sha256=bkRIbEq2UVoc8bzjfg3R9XODdjG4TyCZDLDVv9lNnqY,90298
|
|
19
19
|
dclab/isoelastics/iso_LE-2D-FEM-19-area_um-deform.txt,sha256=lcTjUUnIwj_bVBrG2T2OWBK1ApuLjxJkvL2KAuU51OM,79694
|
|
20
20
|
dclab/isoelastics/iso_HE-3D-FEM-22-volume-deform.txt,sha256=NlaE7yKz7N8yF65ri3H8gvjAQBEfPSXULFJtMhjYgSc,82116
|
|
21
|
-
dclab/features/fl_crosstalk.py,sha256=
|
|
22
|
-
dclab/features/bright_bc.py,sha256=
|
|
21
|
+
dclab/features/fl_crosstalk.py,sha256=RyqcbcALxfSS72WlDbPoIrCYnQkMX0hSfxL9v8hKjpQ,2944
|
|
22
|
+
dclab/features/bright_bc.py,sha256=nhMpVuSZ40q0cmMZ6MbtEDZITyz18sDIE8afQVLIfMM,3428
|
|
23
23
|
dclab/features/__init__.py,sha256=rgFgFdAs9ylviKk-ap8lSlewPcLh5Myib1Xtrk8Oylk,352
|
|
24
|
-
dclab/features/inert_ratio.py,sha256=
|
|
25
|
-
dclab/features/volume.py,sha256=
|
|
26
|
-
dclab/features/bright_perc.py,sha256=
|
|
27
|
-
dclab/features/bright.py,sha256=
|
|
28
|
-
dclab/features/contour.py,sha256=
|
|
24
|
+
dclab/features/inert_ratio.py,sha256=u2WMLHdJgkba40AEtWW6B_a2NPTspiRsPIkaA2iD-uU,12280
|
|
25
|
+
dclab/features/volume.py,sha256=Pht80sbmDcnLhffkT9La6alIhur3nW-K4hdAjK2xnMo,9122
|
|
26
|
+
dclab/features/bright_perc.py,sha256=uyZF4YAF0WhL7_SjUBFY-L0eXio4c_2CzHwGvUOO84A,2387
|
|
27
|
+
dclab/features/bright.py,sha256=I_4LFyQ-3GW9gH7ZtBRhNbsndkKjixDvPRNAbMxIuQk,2665
|
|
28
|
+
dclab/features/contour.py,sha256=aufysNbBW0OhQzTOtZ6nxBzya5AN7g0SexihpF5BLFM,5847
|
|
29
29
|
dclab/features/emodulus/lut_HE-2D-FEM-22.txt,sha256=5bLgd-BBaFW9bAtEyEmlTvaG4EABXRAo73K51gd2UT8,608170
|
|
30
30
|
dclab/features/emodulus/lut_LE-2D-FEM-19.txt,sha256=r36u9Bo7WJF1l1EYezMz-R-xYoxQrYozVHtXIHjwQnU,484422
|
|
31
|
-
dclab/features/emodulus/__init__.py,sha256=
|
|
32
|
-
dclab/features/emodulus/pxcorr.py,sha256=
|
|
33
|
-
dclab/features/emodulus/scale_linear.py,sha256=
|
|
31
|
+
dclab/features/emodulus/__init__.py,sha256=6ckm1PUiveEFmMW5YJv3nHyhKZFlbRHm1m0eihyBRmA,14358
|
|
32
|
+
dclab/features/emodulus/pxcorr.py,sha256=UJcu-dCwxxWopeIQsT24X1BYnBhiUlIhjnGYjfgGax0,5372
|
|
33
|
+
dclab/features/emodulus/scale_linear.py,sha256=vDISUWATvpprmTgbtcN-HxBNPuw9I66tuqhXgYo8hkI,8254
|
|
34
34
|
dclab/features/emodulus/lut_HE-3D-FEM-22.txt,sha256=1Sg4ys0ykT7Q_jFM28XS0uJ85nZd_ha7BDXdN2rsPIA,47248
|
|
35
|
-
dclab/features/emodulus/load.py,sha256=
|
|
36
|
-
dclab/features/emodulus/viscosity.py,sha256=
|
|
35
|
+
dclab/features/emodulus/load.py,sha256=fcc6ds3iE0SvGSXszB-UTIgMDse24E44Zgh_OMZVvYs,8745
|
|
36
|
+
dclab/features/emodulus/viscosity.py,sha256=ZTpFJJ2uz6LcFzCohTYLfodFX0ce3nbwWBuZ8NBaeTQ,9893
|
|
37
37
|
dclab/lme4/lme4_template.R,sha256=CEXQIquvYCla9dCvRYgiBemI6fiVgAKnJTetJA2LAtk,2570
|
|
38
38
|
dclab/lme4/__init__.py,sha256=5WPFMTK-Yia3NJuwZEEBQ3fCyW3DiFgpZFrAwU33TV4,272
|
|
39
39
|
dclab/lme4/rsetup.py,sha256=kH9VFtcK83ZaF9jvh1n5kcmGmPLLsmCPia_ElEHBLes,5890
|
|
40
40
|
dclab/lme4/wrapr.py,sha256=rdIc2hS8GhgdU9WFA6pLzohJGlBga-mkm60qqqk6VO4,15017
|
|
41
|
-
dclab/cli/task_tdms2rtdc.py,sha256=
|
|
41
|
+
dclab/cli/task_tdms2rtdc.py,sha256=5VBXEnTknaA-qlb9C-px6BTG3RzBg8vmY8iPIraGi8o,8281
|
|
42
42
|
dclab/cli/__init__.py,sha256=84YzzV6aE_NY-o7wvqgvUoxBLvIOEXpSUbkVcGRyzQ0,483
|
|
43
43
|
dclab/cli/task_condense.py,sha256=uNZzm04VuQOXJi6uXPmaLdQCk0g8ONueiO4p67yJv0k,8546
|
|
44
|
-
dclab/cli/task_verify_dataset.py,sha256=
|
|
44
|
+
dclab/cli/task_verify_dataset.py,sha256=IU-A3fTG1F_8JThv-eKn9PqbA15pEjVSHyyX3ieMrOI,2685
|
|
45
45
|
dclab/cli/task_repack.py,sha256=uSY3xCL1pvaqgG27ou6vMSavXk6nOJXkGno2XcaLOCo,3315
|
|
46
46
|
dclab/cli/common.py,sha256=uY0IexcvmScB-5AVIQhM9qMutUcSf7CM9tUrgtuawgU,7224
|
|
47
47
|
dclab/cli/task_join.py,sha256=R04ZmXG2-O82E8le0ywZpy9NzOYoErw8hLx8m4q76ms,9464
|
|
48
48
|
dclab/cli/task_split.py,sha256=dqW3GWkwi4ceDqRVrQx8ADGk4--KSsD3Q1knkD3ZXI4,6060
|
|
49
49
|
dclab/cli/task_compress.py,sha256=LH3j41aKq5regAH-ZFdOgnXImf5DrReDJ7ITwUObUSQ,4100
|
|
50
50
|
dclab/kde/contours.py,sha256=WoRqBj_xK-23FZjtaYly7E2Q8sGZ16q2ILq-DmrlmC8,6742
|
|
51
|
-
dclab/kde/methods.py,sha256=
|
|
51
|
+
dclab/kde/methods.py,sha256=QTOK0qy2w6hcppPyzZlTaOSQCSD9Wb_dKQccJg4TWc0,9801
|
|
52
52
|
dclab/kde/__init__.py,sha256=_WSLPMfxE2su6tmO5mJxUE_9ON16-pqQUQCUlzRtyKI,55
|
|
53
|
-
dclab/kde/base.py,sha256=
|
|
53
|
+
dclab/kde/base.py,sha256=17gu0P63RatGdr-5NzKROaCwVCoA_Cial631bHHOBw0,16405
|
|
54
54
|
dclab/external/__init__.py,sha256=gb0UdzoMymEURPsTXRqVTT1ZJedJ2ubH3jApBIRkwjk,93
|
|
55
55
|
dclab/external/packaging/version.py,sha256=9MLL6_EYHvGA1yCGndwL5ZmmDA_wqQsW15GyKrI6siQ,14685
|
|
56
56
|
dclab/external/packaging/LICENSE,sha256=ytHvW9NA1z4HS6YU0m996spceUDD2MNIUuZcSQlobEg,197
|
|
@@ -65,35 +65,35 @@ dclab/external/statsmodels/nonparametric/kernel_density.py,sha256=3UyzLuZS68TkNT
|
|
|
65
65
|
dclab/external/statsmodels/nonparametric/__init__.py,sha256=-GEWgwsF27ems5WTBvR1zo4SWJ0pRTWyHVagnIYer3g,43
|
|
66
66
|
dclab/external/statsmodels/nonparametric/kernels.py,sha256=fuy4kStFz2ZA9pqgfUb4cly-YBpXLu4TJ9-ZujayuIw,1075
|
|
67
67
|
dclab/external/skimage/measure.py,sha256=y1idCqD9TUxp3-QnOiWR_d674OKaeqBJ4MN2-gVP6ro,247
|
|
68
|
-
dclab/external/skimage/_find_contours_cy.cpython-39-darwin.so,sha256=
|
|
68
|
+
dclab/external/skimage/_find_contours_cy.cpython-39-darwin.so,sha256=a7Lg3OvM36ekhCQqhcTLQalEdJAz-3VZOVb4R0UFWBQ,206456
|
|
69
69
|
dclab/external/skimage/LICENSE,sha256=ivsSBvn3c0R9mOctWRRdza7C7wdZSRYgCVxlVqUdlB8,1452
|
|
70
70
|
dclab/external/skimage/pnpoly.py,sha256=r8hFNiTz5XlUoNZjosqA0iyv1FPn0l7ewbplgFgkdaw,1347
|
|
71
71
|
dclab/external/skimage/_find_contours.py,sha256=16v5eeTZBmevG8SSuXtJ6yUpVPhwfSmtc8pDD0nuuOU,9340
|
|
72
72
|
dclab/external/skimage/__init__.py,sha256=-B2QUKHAFzQuBWuuKvPDC5JIl0Zb-x3OGmbwPaE9VwQ,72
|
|
73
73
|
dclab/external/skimage/_pnpoly.pyx,sha256=Qdn6xPazDschBqbr46DzB75MB2MnqvdnoTSBMK7kUGE,2504
|
|
74
74
|
dclab/external/skimage/_find_contours_cy.pyx,sha256=pZJOBhMHzYEMkcz4WQVyjn7jDNrdjCfet47FU1hRAxk,7161
|
|
75
|
-
dclab/external/skimage/_pnpoly.cpython-39-darwin.so,sha256=
|
|
75
|
+
dclab/external/skimage/_pnpoly.cpython-39-darwin.so,sha256=SxQeGq81yoqjX57TsEse7R-vSC4HimoIbFxFSjc5uIg,226384
|
|
76
76
|
dclab/external/skimage/_shared/geometry.pxd,sha256=kRsu9ifv_rL3kbRIgSLf86p0hn2oTMp6s013lZ9bBZM,346
|
|
77
77
|
dclab/external/skimage/_shared/__init__.py,sha256=2sHZwTtJSlMTa3Q2YSvQW7jrPLMUSqDJQa-ROe5zfcw,37
|
|
78
|
-
dclab/external/skimage/_shared/geometry.cpython-39-darwin.so,sha256=
|
|
78
|
+
dclab/external/skimage/_shared/geometry.cpython-39-darwin.so,sha256=WXjdTXomKxmscHPK46Uob98G6lVw2hheTFfmJVXTwwA,55648
|
|
79
79
|
dclab/external/skimage/_shared/geometry.pyx,sha256=miCHUh6mBDbRRIoaF_0xAER1MRzsCAzFdlYQZhV7RmE,1667
|
|
80
|
-
dclab/definitions/feat_logic.py,sha256=
|
|
80
|
+
dclab/definitions/feat_logic.py,sha256=_Rr2vK-nbRNjxk5Kf8Iohs_Q3jzUe9EZJgxB9vMwxwE,5379
|
|
81
81
|
dclab/definitions/meta_parse.py,sha256=YdaTdM8DAMsIFn5ITH9OHYGTXeAOBGWtx22oVjxXcWk,2393
|
|
82
|
-
dclab/definitions/__init__.py,sha256=
|
|
82
|
+
dclab/definitions/__init__.py,sha256=4OQhbMSfCdmibhMDmttjIlCdrQC9Y0Y_SJjOON8_iWU,2779
|
|
83
83
|
dclab/definitions/meta_const.py,sha256=zqE-SrD2tJMCFWdtp_IenwnbIQg0lulvbQAw9dK0Gho,13125
|
|
84
|
-
dclab/definitions/feat_const.py,sha256=
|
|
84
|
+
dclab/definitions/feat_const.py,sha256=JSCxOVEg86vBPAm_pjHgGYuLExvYc2Z1Rz4ksRps-jw,9746
|
|
85
85
|
dclab/definitions/meta_logic.py,sha256=wCgb7DPRHaR8DCWw_VbwNkpslUnazzWfgX0iS8oEe90,4194
|
|
86
|
-
dclab/rtdc_dataset/config.py,sha256=
|
|
86
|
+
dclab/rtdc_dataset/config.py,sha256=lcJm13LYDyPqbH1E-TI8fM6B4_G8OkCEl0LXhQGuhf4,17430
|
|
87
87
|
dclab/rtdc_dataset/check.py,sha256=lJNaz4QTe2WNlxik6zSohRHTiAYuP_bKOzSDjPGTUS0,35006
|
|
88
88
|
dclab/rtdc_dataset/meta_table.py,sha256=ucqBNrgI6rDAuQFuMRckY8lp1LpnYAoRgEsLObWTJCE,648
|
|
89
|
-
dclab/rtdc_dataset/feat_basin.py,sha256=
|
|
90
|
-
dclab/rtdc_dataset/fmt_s3.py,sha256=
|
|
89
|
+
dclab/rtdc_dataset/feat_basin.py,sha256=vXeNt0eWngEy08anWQttrhfAwtqTRuhGtg4zyQHXJ0A,29509
|
|
90
|
+
dclab/rtdc_dataset/fmt_s3.py,sha256=bU3V_WGyqJhxPCH80X_nlNqq-jXcgoZKv_aUBIqwaL8,11877
|
|
91
91
|
dclab/rtdc_dataset/feat_temp.py,sha256=XbDIS1iUUkRH0Zp9uVlwvK_untJ7hkOnKshK1Drsnt8,3694
|
|
92
92
|
dclab/rtdc_dataset/__init__.py,sha256=MUHSGVQJ4Zc0IyU2lf01dpDWyOyNveHip-UjSkmPNvQ,486
|
|
93
|
-
dclab/rtdc_dataset/core.py,sha256=
|
|
94
|
-
dclab/rtdc_dataset/export.py,sha256=
|
|
93
|
+
dclab/rtdc_dataset/core.py,sha256=mF3cktzJVjXJB2HLqOceiYTjZgOAkPp7BshFH0zxvn4,35075
|
|
94
|
+
dclab/rtdc_dataset/export.py,sha256=RMNRB_PXHnEUi4IpPEM5M3zjnayO-9Y7EoUwH1HMNtg,36751
|
|
95
95
|
dclab/rtdc_dataset/fmt_dict.py,sha256=gumVQOiVVDFUKow_483PY7cxInqo-NiBBnBhIU8s4lg,3009
|
|
96
|
-
dclab/rtdc_dataset/writer.py,sha256=
|
|
96
|
+
dclab/rtdc_dataset/writer.py,sha256=JgqFbc-Ih6qYK-jKMJqDh6P1yw9fj28Y0_ab08ijga4,42965
|
|
97
97
|
dclab/rtdc_dataset/filter.py,sha256=AFPUBzOIi3pqXgUdMQ5CIi9ZeGOKC71rfSZKLMLgtog,10023
|
|
98
98
|
dclab/rtdc_dataset/fmt_http.py,sha256=vXVxRLXZp2_V1v3xk4lu4VUHYXfNHJdsRkVt3trC1RU,3374
|
|
99
99
|
dclab/rtdc_dataset/load.py,sha256=5_xGw2P8Mjs0gW-vGr2Kn28j6Qv3BvvMvguMibC_mM4,2761
|
|
@@ -104,10 +104,10 @@ dclab/rtdc_dataset/fmt_hierarchy/events.py,sha256=pRqiFJpBoTwL2krG3asmLw4Fyp7O-v
|
|
|
104
104
|
dclab/rtdc_dataset/fmt_hierarchy/mapper.py,sha256=dgGLO1ki2upV9QP6h7DCyNGgcMw45bzFbXc1CyyFAGw,4210
|
|
105
105
|
dclab/rtdc_dataset/fmt_hierarchy/__init__.py,sha256=0e0lmGjeb9e7skZy1ksfEOFkwKLIu1N6MnuY1aUWkWA,355
|
|
106
106
|
dclab/rtdc_dataset/fmt_hierarchy/hfilter.py,sha256=niYjYz6R-D2S2zurgmmIqrmsSFJ3tVgAS-UxweImAEU,5852
|
|
107
|
-
dclab/rtdc_dataset/fmt_hierarchy/base.py,sha256=
|
|
107
|
+
dclab/rtdc_dataset/fmt_hierarchy/base.py,sha256=gIcUXaO4gfQ1m8KDkY3X2KN7KyjdVPV81ls1TtHZcwk,9438
|
|
108
108
|
dclab/rtdc_dataset/fmt_hdf5/feat_defect.py,sha256=MeIxPz799x-sljbmSb0n40eVLw_iPnbCfOm07_lTBxo,6540
|
|
109
109
|
dclab/rtdc_dataset/fmt_hdf5/basin.py,sha256=mJZR92Qoa71EwDVDYAP9KtOcjvRyjtA2wO1DkCBfBQc,792
|
|
110
|
-
dclab/rtdc_dataset/fmt_hdf5/events.py,sha256=
|
|
110
|
+
dclab/rtdc_dataset/fmt_hdf5/events.py,sha256=Us5xdKsmxOgTSDxFjnYSFIzm5kkDj6pTKPT9JcgI1cE,8782
|
|
111
111
|
dclab/rtdc_dataset/fmt_hdf5/__init__.py,sha256=yWLYK-Fq0EYnp2eYfl1Ze02RBMOWg-iALJWs4dFSxxY,270
|
|
112
112
|
dclab/rtdc_dataset/fmt_hdf5/logs.py,sha256=-mDewfv_aOeHaJykuJIWsqr9a7-moKhoGhqw9cR4ebg,1004
|
|
113
113
|
dclab/rtdc_dataset/fmt_hdf5/tables.py,sha256=9Q-9N52BTtOT_9avGObpe71t6MpLAKQDhbJrcETJ4a8,1553
|
|
@@ -123,20 +123,20 @@ dclab/rtdc_dataset/feat_anc_ml/__init__.py,sha256=99jZlz17aBCAxI5xx42XINomMy20Hi
|
|
|
123
123
|
dclab/rtdc_dataset/fmt_dcor/access_token.py,sha256=jotLQay138RUlv8wbdF2ishRnyE9N0KwGGBlbCL0wRI,2028
|
|
124
124
|
dclab/rtdc_dataset/fmt_dcor/basin.py,sha256=tQZ4GumqURjS3eppRrSyUq1zBPD0y_8rwznMRDXiDUs,2526
|
|
125
125
|
dclab/rtdc_dataset/fmt_dcor/__init__.py,sha256=WjO1uM_Vlof15Y7HkhkV5Xv75q9TDIdOBIuS_I38qps,210
|
|
126
|
-
dclab/rtdc_dataset/fmt_dcor/api.py,sha256=
|
|
127
|
-
dclab/rtdc_dataset/fmt_dcor/logs.py,sha256=
|
|
128
|
-
dclab/rtdc_dataset/fmt_dcor/tables.py,sha256=
|
|
129
|
-
dclab/rtdc_dataset/fmt_dcor/base.py,sha256=
|
|
126
|
+
dclab/rtdc_dataset/fmt_dcor/api.py,sha256=IhmNpEdVSGHdJUepCkmuyTVOp3fNn1WASPVohAzwhu8,6274
|
|
127
|
+
dclab/rtdc_dataset/fmt_dcor/logs.py,sha256=FHaDGjh4wMd18S2FFr6IVdd23l21S6s3fwZnFbPG83E,594
|
|
128
|
+
dclab/rtdc_dataset/fmt_dcor/tables.py,sha256=a4gMIjH0TgFdz36l_F-xriHTT4LMI64ur-atHyvAp80,1694
|
|
129
|
+
dclab/rtdc_dataset/fmt_dcor/base.py,sha256=cFiZcWG43jOGTY3oNl-E_vdzbm5QZU1CEB7ucrLZP_U,11167
|
|
130
130
|
dclab/rtdc_dataset/fmt_tdms/event_mask.py,sha256=eZiDHAGG3MCVckEMHsV-YBbL-pETVLomGk1gmpjc8-k,2175
|
|
131
|
-
dclab/rtdc_dataset/fmt_tdms/naming.py,sha256=
|
|
131
|
+
dclab/rtdc_dataset/fmt_tdms/naming.py,sha256=1t_NIHIJhvqkgbUUS27ta6mzId0t3lYhgB4Pz2NV2sU,5363
|
|
132
132
|
dclab/rtdc_dataset/fmt_tdms/__init__.py,sha256=3Hc6ASVHEmZBW0pCdFiLZcBtNPcEjG6c7eddqeAZRK4,18923
|
|
133
133
|
dclab/rtdc_dataset/fmt_tdms/event_image.py,sha256=-jp7Z-N91e4ieumYQ1huMicj7PMJqwIr5VsNWE_-EEk,8006
|
|
134
|
-
dclab/rtdc_dataset/fmt_tdms/event_trace.py,sha256=
|
|
134
|
+
dclab/rtdc_dataset/fmt_tdms/event_trace.py,sha256=OdKOjW1cXURCWcb89PEcQKnkb0VqV0UA0m74maUu2GU,5213
|
|
135
135
|
dclab/rtdc_dataset/fmt_tdms/exc.py,sha256=WzrMqnyrzp8gsT8Pf7JKqGGv43ewx7d_qgtirURppRI,813
|
|
136
136
|
dclab/rtdc_dataset/fmt_tdms/event_contour.py,sha256=kjo0wJx9F0gmmOOyR0NoLw6VEtSl3h63WXXkcbfnoS8,9627
|
|
137
|
-
dclab-0.
|
|
138
|
-
dclab-0.
|
|
139
|
-
dclab-0.
|
|
140
|
-
dclab-0.
|
|
141
|
-
dclab-0.
|
|
142
|
-
dclab-0.
|
|
137
|
+
dclab-0.67.3.dist-info/RECORD,,
|
|
138
|
+
dclab-0.67.3.dist-info/WHEEL,sha256=3Ay3BV466cqEtozXyfUOiOI0BMlFSRJlC2qfKO6Lfps,135
|
|
139
|
+
dclab-0.67.3.dist-info/entry_points.txt,sha256=eOpjgznu-eW-9utUpLU-77O5098YyUEgGF3ksGMdtec,273
|
|
140
|
+
dclab-0.67.3.dist-info/top_level.txt,sha256=irvwZMgs1edY1Zj60ZFk7Almb9Zhk4k6E6aC4YPFnnM,6
|
|
141
|
+
dclab-0.67.3.dist-info/METADATA,sha256=ZeIAbqeq6aA_N8SqWWs-I0lCVqRf702Ta3IcPzyPZ5M,5724
|
|
142
|
+
dclab-0.67.3.dist-info/licenses/LICENSE,sha256=gLDaVZWRrlnLdyfOrR0qfWjLbOVcjvoJ-kCLUK0fyXA,15360
|
|
File without changes
|
|
File without changes
|
|
File without changes
|