legend-pydataobj 1.11.12__tar.gz → 1.11.13__tar.gz

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.
Files changed (96) hide show
  1. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/PKG-INFO +1 -1
  2. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/legend_pydataobj.egg-info/PKG-INFO +1 -1
  3. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/legend_pydataobj.egg-info/SOURCES.txt +1 -0
  4. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/_version.py +2 -2
  5. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/__init__.py +2 -2
  6. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/write/array.py +2 -3
  7. legend_pydataobj-1.11.13/src/lgdo/lh5/settings.py +34 -0
  8. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_lh5_store.py +11 -12
  9. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_lh5_write.py +24 -0
  10. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/LICENSE +0 -0
  11. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/README.md +0 -0
  12. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/pyproject.toml +0 -0
  13. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/setup.cfg +0 -0
  14. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/legend_pydataobj.egg-info/dependency_links.txt +0 -0
  15. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/legend_pydataobj.egg-info/entry_points.txt +0 -0
  16. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/legend_pydataobj.egg-info/not-zip-safe +0 -0
  17. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/legend_pydataobj.egg-info/requires.txt +0 -0
  18. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/legend_pydataobj.egg-info/top_level.txt +0 -0
  19. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/__init__.py +0 -0
  20. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/cli.py +0 -0
  21. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/compression/__init__.py +0 -0
  22. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/compression/base.py +0 -0
  23. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/compression/generic.py +0 -0
  24. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/compression/radware.py +0 -0
  25. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/compression/utils.py +0 -0
  26. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/compression/varlen.py +0 -0
  27. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lgdo_utils.py +0 -0
  28. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/__init__.py +0 -0
  29. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/read/__init__.py +0 -0
  30. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/read/array.py +0 -0
  31. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/read/composite.py +0 -0
  32. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/read/encoded.py +0 -0
  33. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/read/ndarray.py +0 -0
  34. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/read/scalar.py +0 -0
  35. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/read/utils.py +0 -0
  36. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/read/vector_of_vectors.py +0 -0
  37. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/write/__init__.py +0 -0
  38. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/write/composite.py +0 -0
  39. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/write/scalar.py +0 -0
  40. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/_serializers/write/vector_of_vectors.py +0 -0
  41. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/concat.py +0 -0
  42. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/core.py +0 -0
  43. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/datatype.py +0 -0
  44. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/exceptions.py +0 -0
  45. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/iterator.py +0 -0
  46. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/store.py +0 -0
  47. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/tools.py +0 -0
  48. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5/utils.py +0 -0
  49. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/lh5_store.py +0 -0
  50. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/logging.py +0 -0
  51. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/__init__.py +0 -0
  52. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/array.py +0 -0
  53. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/arrayofequalsizedarrays.py +0 -0
  54. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/encoded.py +0 -0
  55. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/fixedsizearray.py +0 -0
  56. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/histogram.py +0 -0
  57. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/lgdo.py +0 -0
  58. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/scalar.py +0 -0
  59. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/struct.py +0 -0
  60. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/table.py +0 -0
  61. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/vectorofvectors.py +0 -0
  62. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/vovutils.py +0 -0
  63. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/types/waveformtable.py +0 -0
  64. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/units.py +0 -0
  65. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/src/lgdo/utils.py +0 -0
  66. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/compression/conftest.py +0 -0
  67. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/compression/sigcompress/LDQTA_r117_20200110T105115Z_cal_geds_raw-0.dat +0 -0
  68. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/compression/sigcompress/special-wf-clipped.dat +0 -0
  69. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/compression/test_compression.py +0 -0
  70. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/compression/test_radware_sigcompress.py +0 -0
  71. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/compression/test_str2wfcodec.py +0 -0
  72. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/compression/test_uleb128_zigzag_diff.py +0 -0
  73. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/conftest.py +0 -0
  74. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/conftest.py +0 -0
  75. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_concat.py +0 -0
  76. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_core.py +0 -0
  77. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_exceptions.py +0 -0
  78. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_lh5_datatype.py +0 -0
  79. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_lh5_iterator.py +0 -0
  80. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_lh5_tools.py +0 -0
  81. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/lh5/test_lh5_utils.py +0 -0
  82. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/test_cli.py +0 -0
  83. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/test_lgdo_utils.py +0 -0
  84. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_array.py +0 -0
  85. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_arrayofequalsizedarrays.py +0 -0
  86. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_encoded.py +0 -0
  87. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_fixedsizearray.py +0 -0
  88. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_histogram.py +0 -0
  89. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_representations.py +0 -0
  90. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_scalar.py +0 -0
  91. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_struct.py +0 -0
  92. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_table.py +0 -0
  93. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_table_eval.py +0 -0
  94. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_vectorofvectors.py +0 -0
  95. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_vovutils.py +0 -0
  96. {legend_pydataobj-1.11.12 → legend_pydataobj-1.11.13}/tests/types/test_waveformtable.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: legend_pydataobj
3
- Version: 1.11.12
3
+ Version: 1.11.13
4
4
  Summary: LEGEND Python Data Objects
5
5
  Author: The LEGEND Collaboration
6
6
  Maintainer: The LEGEND Collaboration
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: legend_pydataobj
3
- Version: 1.11.12
3
+ Version: 1.11.13
4
4
  Summary: LEGEND Python Data Objects
5
5
  Author: The LEGEND Collaboration
6
6
  Maintainer: The LEGEND Collaboration
@@ -28,6 +28,7 @@ src/lgdo/lh5/core.py
28
28
  src/lgdo/lh5/datatype.py
29
29
  src/lgdo/lh5/exceptions.py
30
30
  src/lgdo/lh5/iterator.py
31
+ src/lgdo/lh5/settings.py
31
32
  src/lgdo/lh5/store.py
32
33
  src/lgdo/lh5/tools.py
33
34
  src/lgdo/lh5/utils.py
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.11.12'
21
- __version_tuple__ = version_tuple = (1, 11, 12)
20
+ __version__ = version = '1.11.13'
21
+ __version_tuple__ = version_tuple = (1, 11, 13)
@@ -7,7 +7,6 @@ browsed easily in python like any `HDF5 <https://www.hdfgroup.org>`_ file using
7
7
 
8
8
  from __future__ import annotations
9
9
 
10
- from ._serializers.write.array import DEFAULT_HDF5_SETTINGS
11
10
  from .core import read, read_as, write
12
11
  from .iterator import LH5Iterator
13
12
  from .store import LH5Store
@@ -15,16 +14,17 @@ from .tools import load_dfs, load_nda, ls, show
15
14
  from .utils import read_n_rows
16
15
 
17
16
  __all__ = [
18
- "DEFAULT_HDF5_SETTINGS",
19
17
  "LH5Iterator",
20
18
  "LH5Store",
21
19
  "concat",
20
+ "default_hdf5_settings",
22
21
  "load_dfs",
23
22
  "load_nda",
24
23
  "ls",
25
24
  "read",
26
25
  "read_as",
27
26
  "read_n_rows",
27
+ "reset_default_hdf5_settings",
28
28
  "show",
29
29
  "write",
30
30
  ]
@@ -6,12 +6,11 @@ import h5py
6
6
  import numpy as np
7
7
 
8
8
  from .... import types
9
+ from ... import settings
9
10
  from ...exceptions import LH5EncodeError
10
11
 
11
12
  log = logging.getLogger(__name__)
12
13
 
13
- DEFAULT_HDF5_SETTINGS: dict[str, ...] = {"shuffle": True, "compression": "gzip"}
14
-
15
14
 
16
15
  def _h5_write_array(
17
16
  obj,
@@ -49,7 +48,7 @@ def _h5_write_array(
49
48
  del group[name]
50
49
 
51
50
  # set default compression options
52
- for k, v in DEFAULT_HDF5_SETTINGS.items():
51
+ for k, v in settings.DEFAULT_HDF5_SETTINGS.items():
53
52
  h5py_kwargs.setdefault(k, v)
54
53
 
55
54
  # compress using the 'compression' LGDO attribute, if available
@@ -0,0 +1,34 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any
4
+
5
+
6
+ def default_hdf5_settings() -> dict[str, Any]:
7
+ """Returns the HDF5 settings for writing data to disk to the pydataobj defaults.
8
+
9
+ Examples
10
+ --------
11
+ >>> from lgdo import lh5
12
+ >>> lh5.DEFAULT_HDF5_SETTINGS["compression"] = "lzf"
13
+ >>> lh5.write(data, "data", "file.lh5") # compressed with LZF
14
+ >>> lh5.DEFAULT_HDF5_SETTINGS = lh5.default_hdf5_settings()
15
+ >>> lh5.write(data, "data", "file.lh5", "of") # compressed with default settings (GZIP)
16
+ """
17
+
18
+ return {
19
+ "shuffle": True,
20
+ "compression": "gzip",
21
+ }
22
+
23
+
24
+ DEFAULT_HDF5_SETTINGS: dict[str, ...] = default_hdf5_settings()
25
+ """Global dictionary storing the default HDF5 settings for writing data to disk.
26
+
27
+ Modify this global variable before writing data to disk with this package.
28
+
29
+ Examples
30
+ --------
31
+ >>> from lgdo import lh5
32
+ >>> lh5.DEFAULT_HDF5_SETTINGS["compression"] = "lzf"
33
+ >>> lh5.write(data, "data", "file.lh5") # compressed with LZF
34
+ """
@@ -9,7 +9,6 @@ import pytest
9
9
 
10
10
  import lgdo
11
11
  from lgdo import lh5, types
12
- from lgdo.lh5 import DEFAULT_HDF5_SETTINGS
13
12
 
14
13
 
15
14
  def test_init():
@@ -97,7 +96,7 @@ def test_read_array(lh5_file):
97
96
  with h5py.File(lh5_file) as h5f:
98
97
  assert (
99
98
  h5f["/data/struct/array"].compression
100
- is DEFAULT_HDF5_SETTINGS["compression"]
99
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
101
100
  )
102
101
 
103
102
  lh5_obj, n_rows = store.read("/data/struct_full/array2d", lh5_file)
@@ -168,11 +167,11 @@ def test_read_vov(lh5_file):
168
167
  with h5py.File(lh5_file) as h5f:
169
168
  assert (
170
169
  h5f["/data/struct/vov/cumulative_length"].compression
171
- is DEFAULT_HDF5_SETTINGS["compression"]
170
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
172
171
  )
173
172
  assert (
174
173
  h5f["/data/struct/vov/flattened_data"].compression
175
- is DEFAULT_HDF5_SETTINGS["compression"]
174
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
176
175
  )
177
176
 
178
177
  lh5_obj, n_rows = store.read("/data/struct/vov3d", lh5_file)
@@ -229,11 +228,11 @@ def test_read_voev(lh5_file):
229
228
  assert h5f["/data/struct/voev/encoded_data/flattened_data"].compression is None
230
229
  assert (
231
230
  h5f["/data/struct/voev/encoded_data/cumulative_length"].compression
232
- is DEFAULT_HDF5_SETTINGS["compression"]
231
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
233
232
  )
234
233
  assert (
235
234
  h5f["/data/struct/voev/decoded_size"].compression
236
- is DEFAULT_HDF5_SETTINGS["compression"]
235
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
237
236
  )
238
237
 
239
238
 
@@ -312,7 +311,7 @@ def test_read_hdf5_compressed_data(lh5_file):
312
311
  with h5py.File(lh5_file) as h5f:
313
312
  assert (
314
313
  h5f["/data/struct/table/a"].compression
315
- is DEFAULT_HDF5_SETTINGS["compression"]
314
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
316
315
  )
317
316
  assert h5f["/data/struct/table/b"].compression == "gzip"
318
317
  assert h5f["/data/struct/table/c"].compression == "gzip"
@@ -333,15 +332,15 @@ def test_read_wftable(lh5_file):
333
332
  with h5py.File(lh5_file) as h5f:
334
333
  assert (
335
334
  h5f["/data/struct/wftable/values"].compression
336
- is DEFAULT_HDF5_SETTINGS["compression"]
335
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
337
336
  )
338
337
  assert (
339
338
  h5f["/data/struct/wftable/t0"].compression
340
- is DEFAULT_HDF5_SETTINGS["compression"]
339
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
341
340
  )
342
341
  assert (
343
342
  h5f["/data/struct/wftable/dt"].compression
344
- is DEFAULT_HDF5_SETTINGS["compression"]
343
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
345
344
  )
346
345
 
347
346
 
@@ -387,11 +386,11 @@ def test_read_wftable_encoded(lh5_file):
387
386
  assert h5f["/data/struct/wftable_enc/values/decoded_size"].compression is None
388
387
  assert (
389
388
  h5f["/data/struct/wftable_enc/t0"].compression
390
- is DEFAULT_HDF5_SETTINGS["compression"]
389
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
391
390
  )
392
391
  assert (
393
392
  h5f["/data/struct/wftable_enc/dt"].compression
394
- is DEFAULT_HDF5_SETTINGS["compression"]
393
+ is lh5.settings.DEFAULT_HDF5_SETTINGS["compression"]
395
394
  )
396
395
 
397
396
 
@@ -15,6 +15,30 @@ def test_write_compressed_lgnd_waveform_table(enc_lgnd_file):
15
15
  pass
16
16
 
17
17
 
18
+ def test_write_with_hdf5_compression_global(tmptestdir):
19
+ data = types.Table(
20
+ size=1000,
21
+ col_dict={
22
+ "col1": types.Array(np.arange(0, 100, 0.1)),
23
+ "col2": types.Array(np.random.default_rng().random(1000)),
24
+ },
25
+ )
26
+ outfile = f"{tmptestdir}/write_hdf5_data_global_var.lh5"
27
+
28
+ lh5.settings.DEFAULT_HDF5_SETTINGS["shuffle"] = False
29
+ lh5.settings.DEFAULT_HDF5_SETTINGS["compression"] = "lzf"
30
+
31
+ lh5.write(data, "data", outfile, wo_mode="of")
32
+
33
+ with h5py.File(outfile) as h5f:
34
+ assert h5f["/data/col1"].shuffle is False
35
+ assert h5f["/data/col1"].compression == "lzf"
36
+
37
+ lh5.settings.DEFAULT_HDF5_SETTINGS = lh5.settings.default_hdf5_settings()
38
+ assert lh5.settings.DEFAULT_HDF5_SETTINGS["shuffle"] is True
39
+ assert lh5.settings.DEFAULT_HDF5_SETTINGS["compression"] == "gzip"
40
+
41
+
18
42
  def test_write_with_hdf5_compression(lgnd_file, tmptestdir):
19
43
  store = lh5.LH5Store()
20
44
  wft, n_rows = store.read("/geds/raw/waveform", lgnd_file)