legend-pydataobj 1.14.1__tar.gz → 1.14.2__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.14.1 → legend_pydataobj-1.14.2}/PKG-INFO +1 -1
  2. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/legend_pydataobj.egg-info/PKG-INFO +1 -1
  3. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/_version.py +2 -2
  4. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/write/composite.py +1 -1
  5. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/core.py +1 -1
  6. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/store.py +5 -1
  7. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/tools.py +5 -1
  8. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/utils.py +8 -2
  9. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_exceptions.py +13 -0
  10. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/LICENSE +0 -0
  11. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/README.md +0 -0
  12. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/pyproject.toml +0 -0
  13. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/setup.cfg +0 -0
  14. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/legend_pydataobj.egg-info/SOURCES.txt +0 -0
  15. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/legend_pydataobj.egg-info/dependency_links.txt +0 -0
  16. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/legend_pydataobj.egg-info/entry_points.txt +0 -0
  17. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/legend_pydataobj.egg-info/not-zip-safe +0 -0
  18. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/legend_pydataobj.egg-info/requires.txt +0 -0
  19. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/legend_pydataobj.egg-info/top_level.txt +0 -0
  20. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/__init__.py +0 -0
  21. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/cli.py +0 -0
  22. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/compression/__init__.py +0 -0
  23. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/compression/base.py +0 -0
  24. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/compression/generic.py +0 -0
  25. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/compression/radware.py +0 -0
  26. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/compression/utils.py +0 -0
  27. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/compression/varlen.py +0 -0
  28. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lgdo_utils.py +0 -0
  29. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/__init__.py +0 -0
  30. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/__init__.py +0 -0
  31. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/read/__init__.py +0 -0
  32. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/read/array.py +0 -0
  33. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/read/composite.py +0 -0
  34. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/read/encoded.py +0 -0
  35. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/read/ndarray.py +0 -0
  36. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/read/scalar.py +0 -0
  37. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/read/utils.py +0 -0
  38. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/read/vector_of_vectors.py +0 -0
  39. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/write/__init__.py +0 -0
  40. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/write/array.py +0 -0
  41. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/write/scalar.py +0 -0
  42. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/_serializers/write/vector_of_vectors.py +0 -0
  43. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/concat.py +0 -0
  44. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/datatype.py +0 -0
  45. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/exceptions.py +0 -0
  46. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/iterator.py +0 -0
  47. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/lh5/settings.py +0 -0
  48. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/logging.py +0 -0
  49. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/__init__.py +0 -0
  50. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/array.py +0 -0
  51. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/arrayofequalsizedarrays.py +0 -0
  52. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/encoded.py +0 -0
  53. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/fixedsizearray.py +0 -0
  54. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/histogram.py +0 -0
  55. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/lgdo.py +0 -0
  56. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/scalar.py +0 -0
  57. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/struct.py +0 -0
  58. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/table.py +0 -0
  59. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/vectorofvectors.py +0 -0
  60. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/vovutils.py +0 -0
  61. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/types/waveformtable.py +0 -0
  62. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/units.py +0 -0
  63. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/src/lgdo/utils.py +0 -0
  64. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/compression/conftest.py +0 -0
  65. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/compression/sigcompress/LDQTA_r117_20200110T105115Z_cal_geds_raw-0.dat +0 -0
  66. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/compression/sigcompress/special-wf-clipped.dat +0 -0
  67. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/compression/test_compression.py +0 -0
  68. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/compression/test_radware_sigcompress.py +0 -0
  69. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/compression/test_str2wfcodec.py +0 -0
  70. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/compression/test_uleb128_zigzag_diff.py +0 -0
  71. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/conftest.py +0 -0
  72. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/conftest.py +0 -0
  73. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_concat.py +0 -0
  74. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_core.py +0 -0
  75. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_lh5_datatype.py +0 -0
  76. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_lh5_iterator.py +0 -0
  77. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_lh5_store.py +0 -0
  78. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_lh5_tools.py +0 -0
  79. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_lh5_utils.py +0 -0
  80. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_lh5_write.py +0 -0
  81. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/lh5/test_pathlib.py +0 -0
  82. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/test_cli.py +0 -0
  83. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/test_lgdo_utils.py +0 -0
  84. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_array.py +0 -0
  85. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_arrayofequalsizedarrays.py +0 -0
  86. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_encoded.py +0 -0
  87. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_fixedsizearray.py +0 -0
  88. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_histogram.py +0 -0
  89. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_representations.py +0 -0
  90. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_scalar.py +0 -0
  91. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_struct.py +0 -0
  92. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_table.py +0 -0
  93. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_table_eval.py +0 -0
  94. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_vectorofvectors.py +0 -0
  95. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/tests/types/test_vovutils.py +0 -0
  96. {legend_pydataobj-1.14.1 → legend_pydataobj-1.14.2}/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.14.1
3
+ Version: 1.14.2
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.14.1
3
+ Version: 1.14.2
4
4
  Summary: LEGEND Python Data Objects
5
5
  Author: The LEGEND Collaboration
6
6
  Maintainer: The LEGEND Collaboration
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.14.1'
21
- __version_tuple__ = version_tuple = (1, 14, 1)
20
+ __version__ = version = '1.14.2'
21
+ __version_tuple__ = version_tuple = (1, 14, 2)
@@ -59,7 +59,7 @@ def _h5_write_lgdo(
59
59
  try:
60
60
  fh = h5py.File(lh5_file, mode=mode, **file_kwargs)
61
61
  except OSError as oe:
62
- raise LH5EncodeError(str(oe), lh5_file, None) from oe
62
+ raise LH5EncodeError(oe, lh5_file) from oe
63
63
 
64
64
  opened_here = True
65
65
  else:
@@ -118,7 +118,7 @@ def read(
118
118
  try:
119
119
  lh5_file = h5py.File(str(Path(lh5_file)), mode="r", locking=locking)
120
120
  except (OSError, FileExistsError) as oe:
121
- raise LH5DecodeError(str(oe), lh5_file, None) from oe
121
+ raise LH5DecodeError(oe, lh5_file) from oe
122
122
 
123
123
  close_after = True
124
124
  try:
@@ -19,6 +19,7 @@ from numpy.typing import ArrayLike
19
19
  from .. import types
20
20
  from . import _serializers, utils
21
21
  from .core import read
22
+ from .exceptions import LH5DecodeError
22
23
 
23
24
  log = logging.getLogger(__name__)
24
25
 
@@ -125,7 +126,10 @@ class LH5Store:
125
126
  "fs_page_size": page_buffer,
126
127
  }
127
128
  )
128
- h5f = h5py.File(full_path, mode, **file_kwargs)
129
+ try:
130
+ h5f = h5py.File(full_path, mode, **file_kwargs)
131
+ except (OSError, FileExistsError) as oe:
132
+ raise LH5DecodeError(oe, full_path) from oe
129
133
 
130
134
  if self.keep_open:
131
135
  if isinstance(self.keep_open, int) and len(self.files) >= self.keep_open:
@@ -8,6 +8,7 @@ from pathlib import Path
8
8
  import h5py
9
9
 
10
10
  from . import utils
11
+ from .exceptions import LH5DecodeError
11
12
  from .store import LH5Store
12
13
 
13
14
  log = logging.getLogger(__name__)
@@ -123,7 +124,10 @@ def show(
123
124
 
124
125
  # open file
125
126
  if isinstance(lh5_file, (str, Path)):
126
- lh5_file = h5py.File(utils.expand_path(Path(lh5_file)), "r", locking=False)
127
+ try:
128
+ lh5_file = h5py.File(utils.expand_path(Path(lh5_file)), "r", locking=False)
129
+ except (OSError, FileExistsError) as oe:
130
+ raise LH5DecodeError(oe, lh5_file) from oe
127
131
 
128
132
  # go to group
129
133
  if lh5_group != "/":
@@ -45,7 +45,10 @@ def read_n_rows(name: str, h5f: str | Path | h5py.File) -> int | None:
45
45
  Return ``None`` if `name` is a :class:`.Scalar` or a :class:`.Struct`.
46
46
  """
47
47
  if not isinstance(h5f, h5py.File):
48
- h5f = h5py.File(h5f, "r", locking=False)
48
+ try:
49
+ h5f = h5py.File(h5f, "r", locking=False)
50
+ except (OSError, FileExistsError) as oe:
51
+ raise LH5DecodeError(oe, h5f, None) from oe
49
52
 
50
53
  try:
51
54
  h5o = h5f[name].id
@@ -61,7 +64,10 @@ def read_size_in_bytes(name: str, h5f: str | Path | h5py.File) -> int | None:
61
64
  recursively through members of a Struct or Table
62
65
  """
63
66
  if not isinstance(h5f, h5py.File):
64
- h5f = h5py.File(h5f, "r", locking=False)
67
+ try:
68
+ h5f = h5py.File(h5f, "r", locking=False)
69
+ except (OSError, FileExistsError) as oe:
70
+ raise LH5DecodeError(oe, h5f) from oe
65
71
 
66
72
  try:
67
73
  h5o = h5f[name].id
@@ -12,6 +12,19 @@ from lgdo import lh5, types
12
12
  from lgdo.lh5.exceptions import LH5DecodeError, LH5EncodeError
13
13
 
14
14
 
15
+ def test_tools(tmptestdir):
16
+ thefile = tmptestdir / "already-open-file-tools.lh5"
17
+ lh5.write(types.Struct({}), "/empty", thefile)
18
+
19
+ for mode in ("r", "r+", "w", "a"):
20
+ f = h5py.File(thefile, mode)
21
+ with pytest.raises(LH5DecodeError):
22
+ lh5.ls(thefile)
23
+ with pytest.raises(LH5DecodeError):
24
+ lh5.show(thefile)
25
+ f.close()
26
+
27
+
15
28
  def test_interact_with_already_open_files(tmptestdir):
16
29
  thefile = tmptestdir / "already-open-file.lh5"
17
30
  lh5.write(types.Struct({}), "/empty", thefile)