dclab 0.62.8__cp38-cp38-win_amd64.whl → 0.62.9__cp38-cp38-win_amd64.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.

Potentially problematic release.


This version of dclab might be problematic. Click here for more details.

dclab/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.62.8'
16
- __version_tuple__ = version_tuple = (0, 62, 8)
15
+ __version__ = version = '0.62.9'
16
+ __version_tuple__ = version_tuple = (0, 62, 9)
Binary file
@@ -1,6 +1,7 @@
1
1
  """RT-DC dataset core classes and methods"""
2
2
  import abc
3
3
  import hashlib
4
+ import json
4
5
  import os.path
5
6
  import pathlib
6
7
  import traceback
@@ -15,6 +16,7 @@ from .. import definitions as dfn
15
16
  from .. import downsampling
16
17
  from ..polygon_filter import PolygonFilter
17
18
  from .. import kde_methods
19
+ from ..util import hashobj
18
20
 
19
21
  from .feat_anc_core import AncillaryFeature, FEATURES_RAPID
20
22
  from . import feat_basin
@@ -825,14 +827,20 @@ class RTDCBase(abc.ABC):
825
827
  # Sort basins according to priority
826
828
  bdicts_srt = sorted(self.basins_get_dicts(),
827
829
  key=feat_basin.basin_priority_sorted_key)
828
- bd_keys = [bd["key"] for bd in bdicts_srt if "key" in bd]
830
+ # complement basin "key"s (we do the same in writer)
831
+ for bdict in bdicts_srt:
832
+ if "key" not in bdict:
833
+ b_dat = json.dumps(bdict, indent=2, sort_keys=True).split("\n")
834
+ bdict["key"] = hashobj(b_dat)
835
+
836
+ bd_keys = [bd["key"] for bd in bdicts_srt]
829
837
  bd_keys += self._basins_ignored
830
838
  for bdict in bdicts_srt:
831
839
  if bdict["format"] not in bc:
832
840
  warnings.warn(f"Encountered unsupported basin "
833
841
  f"format '{bdict['format']}'!")
834
842
  continue
835
- if "key" in bdict and bdict["key"] in self._basins_ignored:
843
+ if bdict["key"] in self._basins_ignored:
836
844
  warnings.warn(
837
845
  f"Encountered cyclic basin dependency '{bdict['key']}'",
838
846
  feat_basin.CyclicBasinDependencyFoundWarning)
@@ -853,6 +861,8 @@ class RTDCBase(abc.ABC):
853
861
  "measurement_identifier": self.get_measurement_identifier(),
854
862
  # allow to ignore basins
855
863
  "ignored_basins": bd_keys,
864
+ # basin key
865
+ "key": bdict["key"],
856
866
  }
857
867
 
858
868
  # Check whether this basin is supported and exists
@@ -9,6 +9,7 @@ import abc
9
9
  import numbers
10
10
  import threading
11
11
  from typing import Dict, List, Literal
12
+ import uuid
12
13
  import warnings
13
14
  import weakref
14
15
 
@@ -74,6 +75,7 @@ class Basin(abc.ABC):
74
75
  ] = "same",
75
76
  mapping_referrer: Dict = None,
76
77
  ignored_basins: List[str] = None,
78
+ key: str = None,
77
79
  **kwargs):
78
80
  """
79
81
 
@@ -109,6 +111,10 @@ class Basin(abc.ABC):
109
111
  :class:`.RTDCBase`.
110
112
  ignored_basins: list of str
111
113
  List of basins to ignore in subsequent basin instantiations
114
+ key: str
115
+ Unique key to identify this basin; normally computed from
116
+ a JSON dump of the basin definition. A random string is used
117
+ if None is specified.
112
118
  kwargs:
113
119
  Additional keyword arguments passed to the `load_dataset`
114
120
  method of the `Basin` subclass.
@@ -124,6 +130,8 @@ class Basin(abc.ABC):
124
130
  self.name = name
125
131
  #: lengthy description of the basin
126
132
  self.description = description
133
+ # defining key of the basin
134
+ self.key = key or str(uuid.uuid4())
127
135
  # features this basin provides
128
136
  self._features = features
129
137
  #: measurement identifier of the referencing dataset
@@ -367,6 +375,7 @@ class BasinProxy:
367
375
  dataset to the downstream dataset
368
376
  """
369
377
  self.ds = ds
378
+ self.basins_get_dicts = ds.basins_get_dicts
370
379
  self.basinmap = basinmap
371
380
  self._features = {}
372
381
 
@@ -389,7 +389,7 @@ class RTDCWriter:
389
389
  flocs.append(str(pp.resolve()))
390
390
  # Also store the relative path for user convenience.
391
391
  # Don't use pathlib.Path.relative_to, because that
392
- # is deprecated in Python 3.12.
392
+ # only has `walk_up` since Python 3.12.
393
393
  # Also, just look in subdirectories which simplifies
394
394
  # path resolution.
395
395
  this_parent = str(self.path.parent) + os.sep
@@ -408,7 +408,7 @@ class RTDCWriter:
408
408
  else:
409
409
  raise ValueError(f"Unknown basin type '{basin_type}'")
410
410
 
411
- b_lines = json.dumps(b_data, indent=2).split("\n")
411
+ b_lines = json.dumps(b_data, indent=2, sort_keys=True).split("\n")
412
412
  basins = self.h5file.require_group("basins")
413
413
  key = hashobj(b_lines)
414
414
  if key not in basins:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dclab
3
- Version: 0.62.8
3
+ Version: 0.62.9
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>
@@ -1,7 +1,7 @@
1
1
  dclab/__init__.py,sha256=7_y6YtYcoL_a5M6Q9PiwZPzHSxS66yCTgs_uuK5C1dg,835
2
- dclab/_version.py,sha256=qVziVuodFeRMjE4HHLtmm_Yy49iMpeo90iqYHmVvyE0,429
2
+ dclab/_version.py,sha256=NL_KF0HMvQA9ov7bA-jEvOCXhXF0zvRwnc5Mbv4n8RM,429
3
3
  dclab/cached.py,sha256=t01BYTf43VEsBYa0c-bMxgceF5vKoGV73b42UlLH6Lo,3014
4
- dclab/downsampling.cp38-win_amd64.pyd,sha256=ulqx8_pGQ4S_WlSXrdgKFqhWZLTPm3HyE3mUsVBl6RA,188416
4
+ dclab/downsampling.cp38-win_amd64.pyd,sha256=XQU_KjcUsxy_JnqR-tw2R6V7jqBHC6aQ37mo-1Csj40,188416
5
5
  dclab/downsampling.pyx,sha256=Ez6MbNbzCUzs2IXXKtAYsjtYqP22kI8hdA1IE-3mqvY,7488
6
6
  dclab/http_utils.py,sha256=nneq9Cx8dw8ChQx5oIg2pN0xGkvNWCMSY5VYmttqyXA,11232
7
7
  dclab/kde_contours.py,sha256=k0Y1UsJNtuYY8iqYmfQ-Nml-dFpJAcigd3vmt9U6zsY,6967
@@ -35,14 +35,14 @@ dclab/external/packaging/version.py,sha256=NgEgv7me4UCvFMyiNYD-nc_28b9UHUvBVh8RD
35
35
  dclab/external/skimage/LICENSE,sha256=Tdv08zzxYV32WRdYnco9P3nVyS5w17OTxIAFeRSd1wc,1480
36
36
  dclab/external/skimage/__init__.py,sha256=icOIlThkyn_hxmnM_i7OpbU7fhvqYWNpGdNGD38qthU,74
37
37
  dclab/external/skimage/_find_contours.py,sha256=auRMNfZg7B73DX7kPXxgD8gMXXB3Lk9QDWt4wlQnUWg,9556
38
- dclab/external/skimage/_find_contours_cy.cp38-win_amd64.pyd,sha256=JdDeLPcg72y02Mbm7pYumkbp9UxL8bMnazadOElmTCU,143360
38
+ dclab/external/skimage/_find_contours_cy.cp38-win_amd64.pyd,sha256=w1ki1KOaPiGNx2YdWm2O5fSRGj9jUFaIV1CATKpErDU,143360
39
39
  dclab/external/skimage/_find_contours_cy.pyx,sha256=c-EobLhKjZNCpuqWxmvrcH35uAY_Bu-_hZiUHbXODms,7349
40
- dclab/external/skimage/_pnpoly.cp38-win_amd64.pyd,sha256=DshPeQLCgW7P83qUgIum_COMU052pXQyCdvBwfNjsvU,159232
40
+ dclab/external/skimage/_pnpoly.cp38-win_amd64.pyd,sha256=wp6bA4-bCIzfjzvBP1AvT9a5JbOIpAgOg7QJySzPke4,159232
41
41
  dclab/external/skimage/_pnpoly.pyx,sha256=eHV3DlIGcBhAQ12-Y58EYq8xcq0Sibyc4xTxzX9NJsk,2603
42
42
  dclab/external/skimage/measure.py,sha256=rzyI0HCr9O9GJNieVW8pcqDjTGRAdSehDUawD8QkIAE,254
43
43
  dclab/external/skimage/pnpoly.py,sha256=zB4rSxjHJyY1OsGZ7QfFQqxIEDLGK8CWPehwutoFqm4,1400
44
44
  dclab/external/skimage/_shared/__init__.py,sha256=q29esTsNh0HfQxcd2EuwdYNbEBJwo_qY4dfv7RihzoA,38
45
- dclab/external/skimage/_shared/geometry.cp38-win_amd64.pyd,sha256=_9ADx4RD-i1HshD1MyxXx0M50S4eKSs-x_1SiRT2jyg,21504
45
+ dclab/external/skimage/_shared/geometry.cp38-win_amd64.pyd,sha256=yH5tAYkqm75XVjR9I8Wrsv_KUevp4eYHE5885yyb_js,21504
46
46
  dclab/external/skimage/_shared/geometry.pxd,sha256=3gJ7fbXXsxJunSN4biE0dzEbZpX9ZqzR4cUDDN0JnAU,352
47
47
  dclab/external/skimage/_shared/geometry.pyx,sha256=b6hADE8chse63haO1Kdt13_oQ54J9tkBf7dVA22-s-M,1722
48
48
  dclab/external/statsmodels/LICENSE,sha256=8D7nwukc6YgsZCdN9mG0psM3I9j-z8fuUgFyVhnMXpU,1672
@@ -83,16 +83,16 @@ dclab/rtdc_dataset/__init__.py,sha256=BuWKEUm7QUe-Kj1wMR0AXON_XN2mzXlbOgouHdnvAw
83
83
  dclab/rtdc_dataset/check.py,sha256=l2QoIL3gno_Z2-e8RvYHAurHZP_oLGtZk8l6jUDiuTA,35908
84
84
  dclab/rtdc_dataset/config.py,sha256=HVJiqKlqd-SpYqnNTKSr1yUsq2Bkfq5s5zluT-8PUc0,17965
85
85
  dclab/rtdc_dataset/copier.py,sha256=f8ySDHnuSWfZYI_kPCCrzickTOo6NqovBGvzMTCbK4M,14339
86
- dclab/rtdc_dataset/core.py,sha256=yTxpOPqb6Ihaqmq5wJLRtkxHzpPQNUN3O3DyOw0dZJ4,38663
86
+ dclab/rtdc_dataset/core.py,sha256=7pQOcFGEO2AnI7r8rJLjXkAi8mXkY4GCQ41eXfBHMx0,38999
87
87
  dclab/rtdc_dataset/export.py,sha256=iqWzj9BjPVhs-d3898DLM9y5rLxTSIaN0S3po42IPdU,30219
88
- dclab/rtdc_dataset/feat_basin.py,sha256=Gi9Ct5TRABieacG5fVMONBocVbik_D5p6Ii1NYNdgVM,21241
88
+ dclab/rtdc_dataset/feat_basin.py,sha256=nDMMkjBmVrH26_lhSJ4pmgUfcwdV1wDON-Hu-864is8,21622
89
89
  dclab/rtdc_dataset/feat_temp.py,sha256=5QiF8Nc8MVoTtinYlvfoSuoopND-uvWVWKjMggBTHLw,3796
90
90
  dclab/rtdc_dataset/filter.py,sha256=IRaEUt0tWtZGLKYvtqzfYO2kN5yhqx9eLoHd3VOLCTE,10286
91
91
  dclab/rtdc_dataset/fmt_dict.py,sha256=-tlzOwsOCh4Vt3rSiBUvMKW7vBgrRNubU7ZHdGMB3gE,3112
92
92
  dclab/rtdc_dataset/fmt_http.py,sha256=XzcgvJ4lm-eWbveBraBc5PPJeGWeUGC35p8ptnxBycc,3476
93
93
  dclab/rtdc_dataset/fmt_s3.py,sha256=35ZNCSbfpn75QHqrciMur2MUAiViddCAZsXkzql6uv0,10962
94
94
  dclab/rtdc_dataset/load.py,sha256=IKRtlZbHGAHNCNaZQPRXFxJjnnMH5HXnhNuIwqYmHzo,2545
95
- dclab/rtdc_dataset/writer.py,sha256=Actk8Xan-TbZEOQs0joLf5IBMvfwMw7JFlfkiTi2aPQ,41393
95
+ dclab/rtdc_dataset/writer.py,sha256=f4xU55FvxJEoxwzjqEQzXrlr1eZe3PFaprh_8g4qyf8,41417
96
96
  dclab/rtdc_dataset/feat_anc_core/__init__.py,sha256=j7vtbQGJid3hchXryo19cxnwanepdDQ_RuJVf740mZs,488
97
97
  dclab/rtdc_dataset/feat_anc_core/af_basic.py,sha256=7pM6Gn1ZkuttHNfkaLijPudddAu0jMDPGJS9HzKh8rE,2268
98
98
  dclab/rtdc_dataset/feat_anc_core/af_emodulus.py,sha256=lsJpQ409EsxnMtyhO7igquWnJxIhXz_w9f8vtIq7F1M,6830
@@ -129,9 +129,9 @@ dclab/rtdc_dataset/fmt_tdms/event_mask.py,sha256=cW-Tw2PIe6X1Hc4UZJ22-mI_qFaIMWA
129
129
  dclab/rtdc_dataset/fmt_tdms/event_trace.py,sha256=ktWnXfMir1v5Wfeo7tOd0txSOe1bgsXotf9Ul5T5-B4,5361
130
130
  dclab/rtdc_dataset/fmt_tdms/exc.py,sha256=FfxUY4LGIMPGJTYmGITmEm7X5iu8GBsj7OfZR8Zb-IE,850
131
131
  dclab/rtdc_dataset/fmt_tdms/naming.py,sha256=SFeWiwIN7sg0qNe0Aya2bZshN1Zbw4YcOKunZ6kfIGM,5524
132
- dclab-0.62.8.dist-info/LICENSE,sha256=ayjnuJcdf_kpkDyD61tUcVqVAQaNSYXJ73m5HVB4G8s,18474
133
- dclab-0.62.8.dist-info/METADATA,sha256=XEPR3tgdPJL4PXaajLI_JCjmeYH0H9Zlf91vRVluadc,4900
134
- dclab-0.62.8.dist-info/WHEEL,sha256=rTcqimtzpX3smAWAhGmiRSWAxTY4PqYPNE-p4kscHDQ,99
135
- dclab-0.62.8.dist-info/entry_points.txt,sha256=eOpjgznu-eW-9utUpLU-77O5098YyUEgGF3ksGMdtec,273
136
- dclab-0.62.8.dist-info/top_level.txt,sha256=irvwZMgs1edY1Zj60ZFk7Almb9Zhk4k6E6aC4YPFnnM,6
137
- dclab-0.62.8.dist-info/RECORD,,
132
+ dclab-0.62.9.dist-info/LICENSE,sha256=ayjnuJcdf_kpkDyD61tUcVqVAQaNSYXJ73m5HVB4G8s,18474
133
+ dclab-0.62.9.dist-info/METADATA,sha256=u-w5rYXwQgpAm20yw-JZO8O5NlxpWX8aJRS5U7Vc0_s,4900
134
+ dclab-0.62.9.dist-info/WHEEL,sha256=rTcqimtzpX3smAWAhGmiRSWAxTY4PqYPNE-p4kscHDQ,99
135
+ dclab-0.62.9.dist-info/entry_points.txt,sha256=eOpjgznu-eW-9utUpLU-77O5098YyUEgGF3ksGMdtec,273
136
+ dclab-0.62.9.dist-info/top_level.txt,sha256=irvwZMgs1edY1Zj60ZFk7Almb9Zhk4k6E6aC4YPFnnM,6
137
+ dclab-0.62.9.dist-info/RECORD,,
File without changes