legend-pydataobj 1.11.3__tar.gz → 1.11.5__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 (93) hide show
  1. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/PKG-INFO +1 -1
  2. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/legend_pydataobj.egg-info/PKG-INFO +1 -1
  3. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/_version.py +2 -2
  4. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/write/array.py +5 -0
  5. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/vectorofvectors.py +15 -8
  6. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/test_lh5_write.py +13 -0
  7. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/LICENSE +0 -0
  8. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/README.md +0 -0
  9. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/pyproject.toml +0 -0
  10. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/setup.cfg +0 -0
  11. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/legend_pydataobj.egg-info/SOURCES.txt +0 -0
  12. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/legend_pydataobj.egg-info/dependency_links.txt +0 -0
  13. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/legend_pydataobj.egg-info/entry_points.txt +0 -0
  14. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/legend_pydataobj.egg-info/not-zip-safe +0 -0
  15. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/legend_pydataobj.egg-info/requires.txt +0 -0
  16. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/legend_pydataobj.egg-info/top_level.txt +0 -0
  17. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/__init__.py +0 -0
  18. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/cli.py +0 -0
  19. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/compression/__init__.py +0 -0
  20. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/compression/base.py +0 -0
  21. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/compression/generic.py +0 -0
  22. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/compression/radware.py +0 -0
  23. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/compression/utils.py +0 -0
  24. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/compression/varlen.py +0 -0
  25. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lgdo_utils.py +0 -0
  26. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/__init__.py +0 -0
  27. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/__init__.py +0 -0
  28. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/read/__init__.py +0 -0
  29. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/read/array.py +0 -0
  30. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/read/composite.py +0 -0
  31. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/read/encoded.py +0 -0
  32. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/read/ndarray.py +0 -0
  33. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/read/scalar.py +0 -0
  34. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/read/utils.py +0 -0
  35. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/read/vector_of_vectors.py +0 -0
  36. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/write/__init__.py +0 -0
  37. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/write/composite.py +0 -0
  38. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/write/scalar.py +0 -0
  39. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/_serializers/write/vector_of_vectors.py +0 -0
  40. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/core.py +0 -0
  41. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/datatype.py +0 -0
  42. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/exceptions.py +0 -0
  43. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/iterator.py +0 -0
  44. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/store.py +0 -0
  45. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/tools.py +0 -0
  46. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5/utils.py +0 -0
  47. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/lh5_store.py +0 -0
  48. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/logging.py +0 -0
  49. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/__init__.py +0 -0
  50. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/array.py +0 -0
  51. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/arrayofequalsizedarrays.py +0 -0
  52. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/encoded.py +0 -0
  53. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/fixedsizearray.py +0 -0
  54. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/histogram.py +0 -0
  55. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/lgdo.py +0 -0
  56. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/scalar.py +0 -0
  57. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/struct.py +0 -0
  58. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/table.py +0 -0
  59. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/vovutils.py +0 -0
  60. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/types/waveformtable.py +0 -0
  61. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/units.py +0 -0
  62. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/src/lgdo/utils.py +0 -0
  63. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/compression/conftest.py +0 -0
  64. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/compression/sigcompress/LDQTA_r117_20200110T105115Z_cal_geds_raw-0.dat +0 -0
  65. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/compression/sigcompress/special-wf-clipped.dat +0 -0
  66. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/compression/test_compression.py +0 -0
  67. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/compression/test_radware_sigcompress.py +0 -0
  68. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/compression/test_str2wfcodec.py +0 -0
  69. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/compression/test_uleb128_zigzag_diff.py +0 -0
  70. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/conftest.py +0 -0
  71. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/conftest.py +0 -0
  72. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/test_core.py +0 -0
  73. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/test_exceptions.py +0 -0
  74. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/test_lh5_datatype.py +0 -0
  75. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/test_lh5_iterator.py +0 -0
  76. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/test_lh5_store.py +0 -0
  77. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/test_lh5_tools.py +0 -0
  78. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/lh5/test_lh5_utils.py +0 -0
  79. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/test_cli.py +0 -0
  80. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/test_lgdo_utils.py +0 -0
  81. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_array.py +0 -0
  82. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_arrayofequalsizedarrays.py +0 -0
  83. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_encoded.py +0 -0
  84. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_fixedsizearray.py +0 -0
  85. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_histogram.py +0 -0
  86. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_representations.py +0 -0
  87. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_scalar.py +0 -0
  88. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_struct.py +0 -0
  89. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_table.py +0 -0
  90. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_table_eval.py +0 -0
  91. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_vectorofvectors.py +0 -0
  92. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_vovutils.py +0 -0
  93. {legend_pydataobj-1.11.3 → legend_pydataobj-1.11.5}/tests/types/test_waveformtable.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: legend_pydataobj
3
- Version: 1.11.3
3
+ Version: 1.11.5
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.2
2
2
  Name: legend_pydataobj
3
- Version: 1.11.3
3
+ Version: 1.11.5
4
4
  Summary: LEGEND Python Data Objects
5
5
  Author: The LEGEND Collaboration
6
6
  Maintainer: The LEGEND Collaboration
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.11.3'
16
- __version_tuple__ = version_tuple = (1, 11, 3)
15
+ __version__ = version = '1.11.5'
16
+ __version_tuple__ = version_tuple = (1, 11, 5)
@@ -64,6 +64,11 @@ def _h5_write_array(
64
64
  if "hdf5_settings" in obj.attrs:
65
65
  h5py_kwargs |= obj.attrs["hdf5_settings"]
66
66
 
67
+ # HACK: a tuple is strictly requested for the "chunks" setting, but
68
+ # we'd like to pass a list too in some situations
69
+ if "chunks" in h5py_kwargs and isinstance(h5py_kwargs["chunks"], list):
70
+ h5py_kwargs["chunks"] = tuple(h5py_kwargs["chunks"])
71
+
67
72
  # create HDF5 dataset
68
73
  ds = group.create_dataset(name, data=nda, **h5py_kwargs)
69
74
 
@@ -13,6 +13,7 @@ import awkward as ak
13
13
  import awkward_pandas as akpd
14
14
  import numpy as np
15
15
  import pandas as pd
16
+ from numba import jit
16
17
  from numpy.typing import ArrayLike, DTypeLike, NDArray
17
18
 
18
19
  from .. import utils
@@ -560,18 +561,16 @@ class VectorOfVectors(LGDO):
560
561
  compatible one.
561
562
  """
562
563
  if self.ndim == 2:
563
- ak_arr = self.view_as("ak")
564
-
565
564
  if max_len is None:
566
- max_len = int(ak.max(ak.count(ak_arr, axis=-1)))
567
-
568
- nda = ak.fill_none(
569
- ak.pad_none(ak_arr, max_len, clip=True), fill_val
570
- ).to_numpy(allow_missing=False)
571
-
565
+ lens = np.copy(self.cumulative_length)
566
+ lens[1:] = lens[1:] - lens[:-1]
567
+ max_len = int(np.max(lens))
568
+ nda = np.full((len(self), max_len), fill_val)
572
569
  if preserve_dtype:
573
570
  nda = nda.astype(self.flattened_data.dtype, copy=False)
574
571
 
572
+ _to_aoesa(self.flattened_data.nda, self.cumulative_length.nda, nda)
573
+
575
574
  return aoesa.ArrayOfEqualSizedArrays(nda=nda, attrs=self.getattrs())
576
575
 
577
576
  raise NotImplementedError
@@ -664,3 +663,11 @@ class VectorOfVectors(LGDO):
664
663
 
665
664
  msg = f"{library} is not a supported third-party format."
666
665
  raise ValueError(msg)
666
+
667
+
668
+ @jit
669
+ def _to_aoesa(flattened_array, cumulative_length, nda):
670
+ prev_cl = 0
671
+ for i, cl in enumerate(cumulative_length):
672
+ nda[i, : (cl - prev_cl)] = flattened_array[prev_cl:cl]
673
+ prev_cl = cl
@@ -44,6 +44,19 @@ def test_write_with_hdf5_compression(lgnd_file, tmptestdir):
44
44
  assert h5f["/geds/raw/waveform/values"].compression is None
45
45
  assert h5f["/geds/raw/waveform/values"].shuffle is False
46
46
 
47
+ store.write(
48
+ wft.values,
49
+ "/geds/raw/waveform/values",
50
+ f"{tmptestdir}/tmp-pygama-hdf5-compressed-wfs.lh5",
51
+ wo_mode="overwrite_file",
52
+ chunks=[1, 10],
53
+ compression=None,
54
+ shuffle=False,
55
+ )
56
+ with h5py.File(f"{tmptestdir}/tmp-pygama-hdf5-compressed-wfs.lh5") as h5f:
57
+ assert h5f["/geds/raw/waveform/values"].compression is None
58
+ assert h5f["/geds/raw/waveform/values"].shuffle is False
59
+
47
60
 
48
61
  def test_write_empty_vov(tmptestdir):
49
62
  vov = types.VectorOfVectors(flattened_data=[], cumulative_length=[])