legend-daq2lh5 1.4.3__py3-none-any.whl → 1.6.1__py3-none-any.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.
@@ -15,6 +15,12 @@ from .orca_digitizers import ( # noqa: F401
15
15
  ORSIS3302DecoderForEnergy,
16
16
  ORSIS3316WaveformDecoder,
17
17
  )
18
+ from .orca_fcio import ( # noqa: F401;
19
+ ORFCIOConfigDecoder,
20
+ ORFCIOEventDecoder,
21
+ ORFCIOEventHeaderDecoder,
22
+ ORFCIOStatusDecoder,
23
+ )
18
24
  from .orca_flashcam import ( # noqa: F401;
19
25
  ORFlashCamADCWaveformDecoder,
20
26
  ORFlashCamListenerConfigDecoder,
@@ -41,18 +47,28 @@ class OrcaStreamer(DataStreamer):
41
47
  self.rbl_id_dict = {} # dict of RawBufferLists for each data_id
42
48
  self.missing_decoders = []
43
49
 
44
- def load_packet_header(self) -> np.uint32 | None:
50
+ def load_packet_header(self) -> np.ndarray | None:
45
51
  """Loads the packet header at the current read location into the buffer
46
52
 
47
53
  and updates internal variables.
48
54
  """
49
- pkt_hdr = self.buffer[:1]
55
+ pkt_hdr = self.buffer[:2]
50
56
  n_bytes_read = self.in_stream.readinto(pkt_hdr) # buffer is at least 4 kB long
51
57
  self.n_bytes_read += n_bytes_read
52
58
  if n_bytes_read == 0: # EOF
53
59
  return None
54
- if n_bytes_read != 4:
55
- raise RuntimeError(f"only got {n_bytes_read} bytes for packet header")
60
+ if (n_bytes_read % 4) != 0:
61
+ raise RuntimeError(
62
+ f"got {n_bytes_read} bytes for packet header, expect 4 or 8."
63
+ )
64
+ if orca_packet.is_extended(pkt_hdr) and n_bytes_read < 8:
65
+ raise RuntimeError(
66
+ f"got {n_bytes_read} bytes for packet header, but require 8 for the extended header format."
67
+ )
68
+ if orca_packet.is_short(pkt_hdr) and n_bytes_read > 4:
69
+ # if more than 4 bytes were read but the packet is short, we reset the file stream
70
+ # so we can read the next uint32_t again. would not be necessary with a circular buffer
71
+ self.in_stream.seek(n_bytes_read - 4, 1)
56
72
 
57
73
  # packet is valid. Can set the packet_id and log its location
58
74
  self.packet_id += 1
@@ -90,7 +106,9 @@ class OrcaStreamer(DataStreamer):
90
106
  pkt_hdr = self.load_packet_header()
91
107
  if pkt_hdr is None:
92
108
  return False
93
- self.in_stream.seek((orca_packet.get_n_words(pkt_hdr) - 1) * 4, 1)
109
+ self.in_stream.seek(
110
+ (orca_packet.get_n_words(pkt_hdr) - len(pkt_hdr)) * 4, 1
111
+ )
94
112
  n -= 1
95
113
  return True
96
114
 
@@ -106,14 +124,14 @@ class OrcaStreamer(DataStreamer):
106
124
  self.in_stream.seek(loc)
107
125
  self.packet_id = pid
108
126
 
109
- def count_packets(self, saveloc=True) -> None:
127
+ def count_packets(self, saveloc=True) -> int:
110
128
  self.build_packet_locs(saveloc=saveloc)
111
129
  return len(self.packet_locs)
112
130
 
113
131
  # TODO: need to correct for endianness?
114
132
  def load_packet(
115
133
  self, index: int = None, whence: int = 0, skip_unknown_ids: bool = False
116
- ) -> np.uint32 | None:
134
+ ) -> np.ndarray | None:
117
135
  """Loads the next packet into the internal buffer.
118
136
 
119
137
  Returns packet as a :class:`numpy.uint32` view of the buffer (a slice),
@@ -177,15 +195,15 @@ class OrcaStreamer(DataStreamer):
177
195
  and orca_packet.get_data_id(pkt_hdr, shift=False)
178
196
  not in self.decoder_id_dict
179
197
  ):
180
- self.in_stream.seek((n_words - 1) * 4, 1)
198
+ self.in_stream.seek((n_words - len(pkt_hdr)) * 4, 1)
181
199
  return pkt_hdr
182
200
 
183
201
  # load into buffer, resizing as necessary
184
202
  if len(self.buffer) < n_words:
185
203
  self.buffer.resize(n_words, refcheck=False)
186
- n_bytes_read = self.in_stream.readinto(self.buffer[1:n_words])
204
+ n_bytes_read = self.in_stream.readinto(self.buffer[len(pkt_hdr) : n_words])
187
205
  self.n_bytes_read += n_bytes_read
188
- if n_bytes_read != (n_words - 1) * 4:
206
+ if n_bytes_read != (n_words - len(pkt_hdr)) * 4:
189
207
  log.error(
190
208
  f"only got {n_bytes_read} bytes for packet read when {(n_words-1)*4} were expected. Flushing all buffers and quitting..."
191
209
  )
@@ -0,0 +1,54 @@
1
+ import argparse
2
+ from pathlib import Path
3
+
4
+ from .orca_streamer import OrcaStreamer
5
+
6
+
7
+ def skim_orca_file() -> None:
8
+ parser = argparse.ArgumentParser(
9
+ prog="skim_orca_file",
10
+ description="Convert data into LEGEND HDF5 (LH5) raw format",
11
+ )
12
+ parser.add_argument("in_file", type=str, help="filename of orca file to skim")
13
+ parser.add_argument("n_packets", type=int, help="number of packets to skim")
14
+ parser.add_argument(
15
+ "--out-file", type=str, required=False, help="filename to write skimmed file to"
16
+ )
17
+ args = parser.parse_args()
18
+
19
+ if not Path(args.in_file).is_file():
20
+ print("file not found: {args.in_file}") # noqa: T201
21
+ print( # noqa: T201
22
+ "Usage: skim_orca_file [orca_file] [n_packets] (out_filename)"
23
+ )
24
+
25
+ elif args.n_packets == 0:
26
+ print("n_packets must be a positive integer") # noqa: T201
27
+ print( # noqa: T201
28
+ "Usage: skim_orca_file [orca_file] [n_packets] (out_filename)"
29
+ )
30
+ else:
31
+ if args.out_file:
32
+ out_filename = Path(args.out_file)
33
+ else:
34
+ out_filename = Path(f"{args.in_file}_first{args.n_packets}")
35
+ out_filename.parent.mkdir(parents=True, exist_ok=True)
36
+
37
+ or_streamer = OrcaStreamer()
38
+ or_streamer.open_stream(args.in_file)
39
+ header_packet = or_streamer.load_packet(0)
40
+
41
+ if out_filename.is_file():
42
+ out_filename.unlink()
43
+
44
+ with out_filename.open("ab") as out_file:
45
+ # always write header and first packet (run start)
46
+ header_packet.tofile(out_file)
47
+ packet = or_streamer.load_packet()
48
+ packet.tofile(out_file)
49
+ for _ in range(args.n_packets):
50
+ packet = or_streamer.load_packet()
51
+ packet.tofile(out_file)
52
+ # always write last packet (run end)
53
+ packet = or_streamer.load_packet(1, 2)
54
+ packet.tofile(out_file)
daq2lh5/raw_buffer.py CHANGED
@@ -66,6 +66,7 @@ keys.
66
66
 
67
67
  from __future__ import annotations
68
68
 
69
+ import logging
69
70
  import os
70
71
 
71
72
  import lgdo
@@ -74,6 +75,8 @@ from lgdo.lh5 import LH5Store
74
75
 
75
76
  from .buffer_processor.buffer_processor import buffer_processor
76
77
 
78
+ log = logging.getLogger(__name__)
79
+
77
80
 
78
81
  class RawBuffer:
79
82
  r"""Base class to represent a buffer of raw data.
@@ -183,6 +186,8 @@ class RawBufferList(list):
183
186
  self.keyed_dict = {}
184
187
  for rb in self:
185
188
  for key in rb.key_list:
189
+ if key in self.keyed_dict:
190
+ log.warning(f"Key {key} is duplicate.")
186
191
  self.keyed_dict[key] = rb
187
192
  return self.keyed_dict
188
193
 
@@ -418,7 +423,7 @@ def expand_rblist_dict(config: dict, kw_dict: dict[str, str]) -> None:
418
423
 
419
424
 
420
425
  def write_to_lh5_and_clear(
421
- raw_buffers: list[RawBuffer], lh5_store: LH5Store = None, **kwargs
426
+ raw_buffers: list[RawBuffer], lh5_store: LH5Store = None, db_dict=None, **kwargs
422
427
  ) -> None:
423
428
  r"""Write a list of :class:`.RawBuffer`\ s to LH5 files and then clears them.
424
429
 
@@ -456,10 +461,18 @@ def write_to_lh5_and_clear(
456
461
  if len(group) == 0:
457
462
  group = "/" # in case out_stream ends with :
458
463
 
464
+ if db_dict is None:
465
+ database = None
466
+ elif rb.out_name in db_dict:
467
+ database = db_dict[rb.out_name]
468
+ elif group in db_dict:
469
+ database = db_dict[group]
470
+ else:
471
+ database = None
459
472
  # If a proc_spec if present for this RawBuffer, process that data and then write to the file!
460
473
  if rb.proc_spec is not None:
461
474
  # Perform the processing as requested in the `proc_spec` from `out_spec` in build_raw
462
- lgdo_to_write = buffer_processor(rb)
475
+ lgdo_to_write = buffer_processor(rb, db_dict=database)
463
476
  else:
464
477
  lgdo_to_write = rb.lgdo
465
478
 
@@ -1,15 +1,15 @@
1
- Metadata-Version: 2.2
2
- Name: legend_daq2lh5
3
- Version: 1.4.3
1
+ Metadata-Version: 2.4
2
+ Name: legend-daq2lh5
3
+ Version: 1.6.1
4
4
  Summary: Convert digitizer data to LH5
5
- Home-page: https://github.com/legend-exp/legend-daq2lh5
6
- Author: Jason Detwiler
7
- Author-email: jasondet@uw.edu
8
- Maintainer: The LEGEND Collaboration
9
- License: GPL-3.0
5
+ Author-email: Jason Detwiler <jasondet@uw.edu>
6
+ Maintainer: The LEGEND collaboration
7
+ Project-URL: Homepage, https://github.com/legend-exp/legend-daq2lh5
8
+ Project-URL: Bug Tracker, https://github.com/legend-exp/legend-daq2lh5/issues
9
+ Project-URL: Discussions, https://github.com/legend-exp/legend-daq2lh5/discussions
10
+ Project-URL: Changelog, https://github.com/legend-exp/legend-daq2lh5/releases
10
11
  Classifier: Development Status :: 4 - Beta
11
12
  Classifier: Intended Audience :: Developers
12
- Classifier: Intended Audience :: Information Technology
13
13
  Classifier: Intended Audience :: Science/Research
14
14
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
15
15
  Classifier: Operating System :: MacOS
@@ -19,19 +19,15 @@ Classifier: Programming Language :: Python
19
19
  Classifier: Programming Language :: Python :: 3
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
21
  Classifier: Topic :: Scientific/Engineering
22
- Classifier: Topic :: Scientific/Engineering :: Information Analysis
23
- Classifier: Topic :: Scientific/Engineering :: Mathematics
24
- Classifier: Topic :: Scientific/Engineering :: Physics
25
- Classifier: Topic :: Software Development
26
22
  Requires-Python: >=3.9
27
23
  Description-Content-Type: text/markdown
28
24
  License-File: LICENSE
29
- Requires-Dist: dspeed>=1.3.0a4
25
+ Requires-Dist: dspeed>=1.3
26
+ Requires-Dist: fcio>=0.7.8
30
27
  Requires-Dist: h5py>=3.2.0
31
28
  Requires-Dist: hdf5plugin
32
29
  Requires-Dist: legend-pydataobj>=1.6
33
30
  Requires-Dist: numpy>=1.21
34
- Requires-Dist: pyfcutils
35
31
  Requires-Dist: pyyaml
36
32
  Requires-Dist: tqdm>=4.27
37
33
  Requires-Dist: xmltodict
@@ -39,7 +35,9 @@ Provides-Extra: all
39
35
  Requires-Dist: legend-daq2lh5[docs,test]; extra == "all"
40
36
  Provides-Extra: docs
41
37
  Requires-Dist: furo; extra == "docs"
38
+ Requires-Dist: jupyter; extra == "docs"
42
39
  Requires-Dist: myst-parser; extra == "docs"
40
+ Requires-Dist: nbsphinx; extra == "docs"
43
41
  Requires-Dist: sphinx; extra == "docs"
44
42
  Requires-Dist: sphinx-copybutton; extra == "docs"
45
43
  Requires-Dist: sphinx-inline-tabs; extra == "docs"
@@ -48,6 +46,7 @@ Requires-Dist: pre-commit; extra == "test"
48
46
  Requires-Dist: pylegendtestdata; extra == "test"
49
47
  Requires-Dist: pytest>=6.0; extra == "test"
50
48
  Requires-Dist: pytest-cov; extra == "test"
49
+ Dynamic: license-file
51
50
 
52
51
  # legend-daq2lh5
53
52
 
@@ -0,0 +1,46 @@
1
+ daq2lh5/__init__.py,sha256=VPmwKuZSA0icpce05ojhnsKWhR4_QUgD0oVXUoN9wks,975
2
+ daq2lh5/_version.py,sha256=vFpyllSQPpQuwzP7Cf743S6HuWgZRMOD31pPfh-WoZM,511
3
+ daq2lh5/build_raw.py,sha256=wehR1jADL_ponguOMfAsMTxsebE-qdztFw4Txm76fpw,10716
4
+ daq2lh5/cli.py,sha256=7bPfH1XbyAS48wZn_0unj4Y5MD5kF7V34Q5srn4jKVM,2913
5
+ daq2lh5/data_decoder.py,sha256=45ckhpfqKh6_FfPUn_iETZLjRFd4VtvQhet4l2KvldA,10606
6
+ daq2lh5/data_streamer.py,sha256=-uns1Y9iReVSJTXGCXD05QQLfqjbQn-VodEmDj7uSJo,16016
7
+ daq2lh5/logging.py,sha256=rYNeToaZBTCaIiC42a4CUroAo1PCOreTXbpEZyMO8Fo,987
8
+ daq2lh5/raw_buffer.py,sha256=I4qt6UGOrlOAgtcM198w655TkouSRfLYMne00QeUJQA,17844
9
+ daq2lh5/utils.py,sha256=Pc8Oh0ZVBqwwVehyhSJttHnX5tWbOyEZPk-rVg8mb0c,839
10
+ daq2lh5/buffer_processor/__init__.py,sha256=7k6v_KPximtv7805QnX4-xp_S3vqvqwDfdV3q95oZJo,84
11
+ daq2lh5/buffer_processor/buffer_processor.py,sha256=mG4kJXt8V9Jji_UTBfllRffIVqLPf2BPKJQ1S2m9NWU,14668
12
+ daq2lh5/buffer_processor/lh5_buffer_processor.py,sha256=dKND-18TTPDZH8VxdEaQNZPK7w_G-dC4fsBns1NIjMY,8409
13
+ daq2lh5/compass/__init__.py,sha256=mOXHWp7kRDgNTPQty3E8k2KPSy_vAzjneKfAcCVaPyE,132
14
+ daq2lh5/compass/compass_config_parser.py,sha256=zeAsOo1dOJPGLL8-zkAcdYRkqt8BodtOPi96n7fWsl4,12300
15
+ daq2lh5/compass/compass_event_decoder.py,sha256=kiPOaEu8SgLD2wbSPbBahcbTBBRAIw35wtVLBcwPcXY,7386
16
+ daq2lh5/compass/compass_header_decoder.py,sha256=AA-Md2FIT3nD4mXX9CrWvbbfmKiA436-BTmzcU3_XOY,2823
17
+ daq2lh5/compass/compass_streamer.py,sha256=zSl7IqO0ID0wcixkLE9QVEG3bF9hfGVITVPomCeOFTM,8841
18
+ daq2lh5/fc/__init__.py,sha256=bB1j6r-bDmylNi0iutQeAJGjsDSjLSoXMqFfXWwfb8I,141
19
+ daq2lh5/fc/fc_config_decoder.py,sha256=Mlll1SI4HPmTo6EGubkyP-QcmEfmO-kWaiZCKDc4cxg,4448
20
+ daq2lh5/fc/fc_event_decoder.py,sha256=c2CQSiNxlOEGOZNSgqM3eM-26EUW6MIfK48Am9CHfro,7887
21
+ daq2lh5/fc/fc_eventheader_decoder.py,sha256=jAUxgWqgQmzNhAzMLubgFLMiGpxjqVIut6uhVS6JfyA,12313
22
+ daq2lh5/fc/fc_fsp_decoder.py,sha256=-qQjDkXF7xjF3lYIp2085TY2hRrLwxzyXwQYAn1OAJw,34972
23
+ daq2lh5/fc/fc_status_decoder.py,sha256=ChMxALx36caY7zfCOKozNgXYhLGX9HzBnkyOvQfiABk,8809
24
+ daq2lh5/fc/fc_streamer.py,sha256=U1EPKr-xSlxTCqcgQL6SFlO11WDFT9kcna7gocDKLXo,9162
25
+ daq2lh5/llama/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ daq2lh5/llama/llama_base.py,sha256=B-NCBjE_FQE1WxijWi4Z1XBy4rqLHm2XhkC40s7Sdms,290
27
+ daq2lh5/llama/llama_event_decoder.py,sha256=DVULTX7JzlRe23HZYXn79VkoU2_z03o7nxWc33bGK8U,14981
28
+ daq2lh5/llama/llama_header_decoder.py,sha256=cTsFsKmrm7tuWZjk3Vi22fUDywVRHSre_TnlBOwFtus,7716
29
+ daq2lh5/llama/llama_streamer.py,sha256=lrK73JIXjpogPrkP_tpFQQGSyWxFhivSpU1YEfRMHhQ,5329
30
+ daq2lh5/orca/__init__.py,sha256=Xf6uOIOzk_QkKH_7VizGlCo3iuiAgLtUE3A07x_HXC0,175
31
+ daq2lh5/orca/orca_base.py,sha256=-XIolXsHj-1EdewaGxyvJTZvRGZsDyZe-5PzVOd-LFY,1333
32
+ daq2lh5/orca/orca_digitizers.py,sha256=Vu05xQO3XYqybjLhzk-XJG41wyeVFSIoXOjvdltDoUw,20865
33
+ daq2lh5/orca/orca_fcio.py,sha256=v2kZWUmutd1HcWJW0h50zsVdAZorP8TG39PP9tf_GCg,15107
34
+ daq2lh5/orca/orca_flashcam.py,sha256=klGWxME2QS3eOBgb5mD3IrPHXXzb1Zz4B7YDvZvaGD8,33291
35
+ daq2lh5/orca/orca_header.py,sha256=2WlB8rFXwzD89lX51JXYiOlop0-C4pWEEsIWKq2ouDM,4403
36
+ daq2lh5/orca/orca_header_decoder.py,sha256=ORIIyfx22ybyKc-uyWy5ER49-dl3BGpHdfV8OCDmjIw,1632
37
+ daq2lh5/orca/orca_packet.py,sha256=LtKEAcH2VGzY8AQEqAokZTHonShACsKisGdQR0AMDAM,2835
38
+ daq2lh5/orca/orca_run_decoder.py,sha256=61gghgjqD1ovH3KoHFJuKJp0GLJn4X0MIuoYrsIzMfQ,2059
39
+ daq2lh5/orca/orca_streamer.py,sha256=sLM5PPLOxJ_aJckJOl9UCjyOaPmNxUKDnrLw22fSNbE,16622
40
+ daq2lh5/orca/skim_orca_file.py,sha256=ESWfbv9yDRGaPf3Ptlw6Dxnc4uwhJoagb_aYlWNyrq0,1954
41
+ legend_daq2lh5-1.6.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
42
+ legend_daq2lh5-1.6.1.dist-info/METADATA,sha256=UbfgLNJWCAl6CquW11JoohphH6-rre7kC4UjGcH-5Hs,4005
43
+ legend_daq2lh5-1.6.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
44
+ legend_daq2lh5-1.6.1.dist-info/entry_points.txt,sha256=RPm2GPw2YADil9tWgvZsIysmJz9KuktBWH_1P38PWoc,119
45
+ legend_daq2lh5-1.6.1.dist-info/top_level.txt,sha256=MJQVLyLqMgMKBdVfNXFaCKCjHKakAs19VLbC9ctXZ7A,8
46
+ legend_daq2lh5-1.6.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ legend-daq2lh5 = daq2lh5.cli:daq2lh5_cli
3
+ skim-orca-file = daq2lh5.orca.skim_orca_file:skim_orca_file
@@ -1,42 +0,0 @@
1
- daq2lh5/__init__.py,sha256=VPmwKuZSA0icpce05ojhnsKWhR4_QUgD0oVXUoN9wks,975
2
- daq2lh5/_version.py,sha256=uWjnlZlgd9LaZgshHJh7ATRsNToqJlu-hyova-D62E0,511
3
- daq2lh5/build_raw.py,sha256=SDpdOU8qpfzMtx8gtFu-RZYqxutQo1smJSkv-LrH9YE,10672
4
- daq2lh5/cli.py,sha256=7bPfH1XbyAS48wZn_0unj4Y5MD5kF7V34Q5srn4jKVM,2913
5
- daq2lh5/data_decoder.py,sha256=Cn40fodfKs7pKa2odzG1j806iw9IyQVfbbWObNGmof8,10677
6
- daq2lh5/data_streamer.py,sha256=WuyqneVg8Kf7V072aUWYT5q3vmPZoobjAZ7oSw0sC9k,14187
7
- daq2lh5/logging.py,sha256=rYNeToaZBTCaIiC42a4CUroAo1PCOreTXbpEZyMO8Fo,987
8
- daq2lh5/raw_buffer.py,sha256=LfkVAOZa4cWz227Ef22rKi57Shk7GbENoxUEkxC6IgU,17403
9
- daq2lh5/utils.py,sha256=Pc8Oh0ZVBqwwVehyhSJttHnX5tWbOyEZPk-rVg8mb0c,839
10
- daq2lh5/buffer_processor/__init__.py,sha256=7k6v_KPximtv7805QnX4-xp_S3vqvqwDfdV3q95oZJo,84
11
- daq2lh5/buffer_processor/buffer_processor.py,sha256=GUxpNDbqGLuUEZmXjeratipbzmki12RFNYZkxgMtesg,14483
12
- daq2lh5/buffer_processor/lh5_buffer_processor.py,sha256=einRDLI6EVR-U_TT2GdCZPctFnosJ774eMiUj-ahn6c,8316
13
- daq2lh5/compass/__init__.py,sha256=mOXHWp7kRDgNTPQty3E8k2KPSy_vAzjneKfAcCVaPyE,132
14
- daq2lh5/compass/compass_config_parser.py,sha256=zeAsOo1dOJPGLL8-zkAcdYRkqt8BodtOPi96n7fWsl4,12300
15
- daq2lh5/compass/compass_event_decoder.py,sha256=kiPOaEu8SgLD2wbSPbBahcbTBBRAIw35wtVLBcwPcXY,7386
16
- daq2lh5/compass/compass_header_decoder.py,sha256=AA-Md2FIT3nD4mXX9CrWvbbfmKiA436-BTmzcU3_XOY,2823
17
- daq2lh5/compass/compass_streamer.py,sha256=zSl7IqO0ID0wcixkLE9QVEG3bF9hfGVITVPomCeOFTM,8841
18
- daq2lh5/fc/__init__.py,sha256=bB1j6r-bDmylNi0iutQeAJGjsDSjLSoXMqFfXWwfb8I,141
19
- daq2lh5/fc/fc_config_decoder.py,sha256=RLRfUOZN0vYbAprqTymP7TGg641IiP9rgCGIOwWVKzU,1996
20
- daq2lh5/fc/fc_event_decoder.py,sha256=JIRsySnxeuY3wmxjJOrTXo6wpelVup8WIvxU-fkPL-A,8131
21
- daq2lh5/fc/fc_status_decoder.py,sha256=o_3vTAgYXelZxIsreCYioVYid2mY-wqloYKlxoCqX5Q,3390
22
- daq2lh5/fc/fc_streamer.py,sha256=S0imXdVsiyolPvxI1uiBngpC58DporSNZPqx1HeVi5o,5737
23
- daq2lh5/llama/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- daq2lh5/llama/llama_base.py,sha256=B-NCBjE_FQE1WxijWi4Z1XBy4rqLHm2XhkC40s7Sdms,290
25
- daq2lh5/llama/llama_event_decoder.py,sha256=D7MRPmE-ucNCjeLJzY3RepmijjkvGHzu3vNV0zkcLho,14489
26
- daq2lh5/llama/llama_header_decoder.py,sha256=xi_BMw4HLQc-PQ5wIZWSHSsBZvrCpS9_G03X7Mr6tGA,6175
27
- daq2lh5/llama/llama_streamer.py,sha256=Bmcj5Bs28KSV4y08TeJcntzUAkqz6HqlSNm7Kffgloc,5203
28
- daq2lh5/orca/__init__.py,sha256=Xf6uOIOzk_QkKH_7VizGlCo3iuiAgLtUE3A07x_HXC0,175
29
- daq2lh5/orca/orca_base.py,sha256=-XIolXsHj-1EdewaGxyvJTZvRGZsDyZe-5PzVOd-LFY,1333
30
- daq2lh5/orca/orca_digitizers.py,sha256=BsAA3OgQ13YIirDM8pd_xDY3F5FqEY4YjSHviflmov8,20867
31
- daq2lh5/orca/orca_flashcam.py,sha256=IntAxrPZEL64LnulnoKkMO7URLOB78DpzjD1_u6PlaE,33096
32
- daq2lh5/orca/orca_header.py,sha256=1tDRG8l9Gqu4c0K4BjXBSC5eiLTzY_HaCsgNBiv5EgI,4283
33
- daq2lh5/orca/orca_header_decoder.py,sha256=ORIIyfx22ybyKc-uyWy5ER49-dl3BGpHdfV8OCDmjIw,1632
34
- daq2lh5/orca/orca_packet.py,sha256=nOHuBXsTI1SzTjHZtff0txSQYvkwo4XGx3fpk7XfYj8,2489
35
- daq2lh5/orca/orca_run_decoder.py,sha256=3atKXC6mDi8_PK6ICUBBJ-LyaTM8OU31kKWIpmttRr4,2065
36
- daq2lh5/orca/orca_streamer.py,sha256=-NxH0oR9ZSd9ljbR-z_GiPx0Bv7aiLdef6nX2vBYJ3k,15820
37
- legend_daq2lh5-1.4.3.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
38
- legend_daq2lh5-1.4.3.dist-info/METADATA,sha256=DJwwXaiByHsPArVUGvEaQLSLsmgQWVTMcswOwk3kQqE,3956
39
- legend_daq2lh5-1.4.3.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
40
- legend_daq2lh5-1.4.3.dist-info/entry_points.txt,sha256=R08R4NrHi0ab5MJN_qKqzePVzrLSsw5WpmbiwwduYjw,59
41
- legend_daq2lh5-1.4.3.dist-info/top_level.txt,sha256=MJQVLyLqMgMKBdVfNXFaCKCjHKakAs19VLbC9ctXZ7A,8
42
- legend_daq2lh5-1.4.3.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- legend-daq2lh5 = daq2lh5.cli:daq2lh5_cli