Skip to content

Commit 1b0b4c7

Browse files
authored
V1.6.0_release_prep_fixes (#440)
* fix aspect missing class vars * more logging * remove parse tree from packet via keyword to save memory (just needed for JSON export) * parse tree removal as option * added documentation string for param * fix: Applying a mark to a fixture function pytest deprecation * fix: Applying a mark to a fixture function pytest deprecation
1 parent ee7a179 commit 1b0b4c7

13 files changed

Lines changed: 107 additions & 68 deletions

File tree

‎stixcore/idb/tests/test_idb.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818

1919
@pytest.fixture
20-
@pytest.mark.remote_data
2120
def idb():
2221
return IDBManager(test_data.idb.DIR).get_idb(VERSION)
2322

@@ -35,7 +34,7 @@ def test_idb_setup(idb):
3534

3635
def test_idb_setup_fails():
3736
with pytest.raises(sqlite3.Error) as e:
38-
_idb = IDB(Path(os.path.abspath(__file__)).parent / "data")
37+
_ = IDB(Path(os.path.abspath(__file__)).parent / "data")
3938

4039
assert len(str(e.value)) > 0
4140

‎stixcore/idb/tests/test_manager.py‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111

1212
@pytest.fixture
13-
@pytest.mark.remote_data
1413
def idb_manager():
1514
return IDBManager(test_data.idb.DIR)
1615

‎stixcore/io/product_processors/fits/processors.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ def write_fits(self, product, path=None, *, version=0):
641641
hdul = fits.HDUList(hdul)
642642

643643
filetowrite = path / filename
644-
logger.debug(f"Writing fits file to {filetowrite}")
644+
logger.info(f"Writing fits file to {filetowrite}")
645645
hdul.writeto(filetowrite, overwrite=True, checksum=True)
646646
created_files.append(filetowrite)
647647
return created_files

‎stixcore/processing/LBtoL0.py‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,15 @@ def process_tm_type(files, tm_type, processor, spice_kernel_path, config, idbm):
8181
IDBManager.instance = idbm
8282
CONFIG = config
8383

84+
logger.info(f"Start Processing TM type: {tm_type} with {len(files)} files")
85+
8486
RidLutManager.instance = RidLutManager(Path(CONFIG.get("Publish", "rid_lut_file")), update=False)
8587

8688
# Stand alone packet data
8789
if (tm_type[0] == 21 and tm_type[-2] not in {20, 21, 22, 23, 24, 42}) or tm_type[0] != 21:
8890
for file in files:
89-
levelb = Product(file)
9091
logger.info(f"processing file: {file}")
92+
levelb = Product(file)
9193
tmp = Product._check_registered_widget(
9294
level="L0",
9395
service_type=levelb.service_type,
@@ -97,7 +99,7 @@ def process_tm_type(files, tm_type, processor, spice_kernel_path, config, idbm):
9799
control=None,
98100
)
99101
try:
100-
level0 = tmp.from_levelb(levelb, parent=file.name)
102+
level0 = tmp.from_levelb(levelb, parent=file.name, keep_parse_tree=False)
101103
if level0:
102104
fits_files = processor.write_fits(level0)
103105
all_files.extend(fits_files)
@@ -113,6 +115,7 @@ def process_tm_type(files, tm_type, processor, spice_kernel_path, config, idbm):
113115
else:
114116
# for each file
115117
for file in files:
118+
logger.info(f"processing file: {file}")
116119
levelb = Product(file)
117120
complete, _ = levelb.extract_sequences()
118121

@@ -129,7 +132,7 @@ def process_tm_type(files, tm_type, processor, spice_kernel_path, config, idbm):
129132
data=None,
130133
control=None,
131134
)
132-
level0 = tmp.from_levelb(comp, parent=file.name)
135+
level0 = tmp.from_levelb(comp, parent=file.name, keep_parse_tree=False)
133136
fits_files = processor.write_fits(level0)
134137
all_files.extend(fits_files)
135138
except NotCombineException as nc:
@@ -146,6 +149,7 @@ def process_tm_type(files, tm_type, processor, spice_kernel_path, config, idbm):
146149
logger.error("%s", e)
147150
if CONFIG.getboolean("Logging", "stop_on_error", fallback=False):
148151
raise e
152+
logger.info(f"Finished Processing TM type: {tm_type} created {len(all_files)} files")
149153
return all_files
150154

151155

‎stixcore/processing/pipeline.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,9 +246,9 @@ def __init__(self, tm_handler):
246246
self.current_tm = (None, datetime.now())
247247
self.tm_handler = tm_handler
248248

249-
self.status_server_thread = threading.Thread(target=self.status_server)
250-
self.status_server_thread.daemon = True
251-
self.status_server_thread.start()
249+
# self.status_server_thread = threading.Thread(target=self.status_server)
250+
# self.status_server_thread.daemon = True
251+
# self.status_server_thread.start()
252252

253253
@staticmethod
254254
def get_config():

‎stixcore/processing/pipeline_cron.py‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import smtplib
99
import warnings
1010
import importlib
11-
import threading
1211
import subprocess
1312
from pprint import pformat
1413
from pathlib import Path
@@ -169,9 +168,9 @@ def __init__(self, tm_list):
169168
self.current_tm = (None, datetime.now())
170169
self.tm_list = tm_list
171170

172-
self.status_server_thread = threading.Thread(target=self.status_server)
173-
self.status_server_thread.daemon = True
174-
self.status_server_thread.start()
171+
# self.status_server_thread = threading.Thread(target=self.status_server)
172+
# self.status_server_thread.daemon = True
173+
# self.status_server_thread.start()
175174

176175
@staticmethod
177176
def get_config():

‎stixcore/products/ANC/aspect.py‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,9 @@ class Ephemeris(GenericProduct, L2Mixin):
239239
"""
240240

241241
PRODUCT_PROCESSING_VERSION = 2
242+
NAME = "ephemeris"
243+
LEVEL = "ANC"
244+
TYPE = "asp"
242245

243246
def __init__(
244247
self,
@@ -260,9 +263,9 @@ def __init__(
260263
idb_versions=idb_versions,
261264
**kwargs,
262265
)
263-
self.name = "ephemeris"
264-
self.level = "ANC"
265-
self.type = "asp"
266+
self.name = Ephemeris.NAME
267+
self.level = Ephemeris.LEVEL
268+
self.type = Ephemeris.TYPE
266269
self.ssid = 1
267270
self.service_subtype = 0
268271
self.service_type = 0
@@ -285,4 +288,4 @@ def fits_daily_file(self):
285288

286289
@classmethod
287290
def is_datasource_for(cls, *, service_type, service_subtype, ssid, **kwargs):
288-
return kwargs["level"] == "ANC" and service_type == 0 and service_subtype == 0 and ssid == 1
291+
return kwargs["level"] == Ephemeris.LEVEL and service_type == 0 and service_subtype == 0 and ssid == 1

‎stixcore/products/level0/housekeepingL0.py‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def fits_daily_file(self):
5454
return True
5555

5656
@classmethod
57-
def from_levelb(cls, levelb, *, parent=""):
57+
def from_levelb(cls, levelb, *, parent="", keep_parse_tree=True):
5858
"""Converts level binary HK packets to a L1 product.
5959
6060
Parameters
@@ -65,6 +65,8 @@ def from_levelb(cls, levelb, *, parent=""):
6565
The parent data file name the binary packed comes from, by default ''
6666
NIX00405_offset : int, optional
6767
[description], by default 0
68+
keep_parse_tree : bool, optional
69+
Whether to keep the parse tree in each packet for debugging and printing, by default True
6870
6971
Returns
7072
-------
@@ -73,7 +75,7 @@ def from_levelb(cls, levelb, *, parent=""):
7375
all used IDB versions and time periods
7476
initialized control table
7577
"""
76-
packets, idb_versions = GenericProduct.getLeveL0Packets(levelb)
78+
packets, idb_versions = GenericProduct.getLeveL0Packets(levelb, keep_parse_tree=keep_parse_tree)
7779

7880
control = Control()
7981
control["scet_coarse"] = packets.get("scet_coarse")
@@ -110,8 +112,8 @@ def __init__(
110112
self.name = "mini"
111113

112114
@classmethod
113-
def from_levelb(cls, levelb, parent=""):
114-
packets, idb_versions, control = super().from_levelb(levelb, parent=parent)
115+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
116+
packets, idb_versions, control = super().from_levelb(levelb, parent=parent, keep_parse_tree=keep_parse_tree)
115117

116118
# Create array of times as dt from date_obs
117119
times = SCETime(control["scet_coarse"], control["scet_fine"])
@@ -168,8 +170,8 @@ def __init__(
168170
self.name = "maxi"
169171

170172
@classmethod
171-
def from_levelb(cls, levelb, parent=""):
172-
packets, idb_versions, control = super().from_levelb(levelb, parent=parent)
173+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
174+
packets, idb_versions, control = super().from_levelb(levelb, parent=parent, keep_parse_tree=keep_parse_tree)
173175

174176
# Create array of times as dt from date_obs
175177
times = SCETime(control["scet_coarse"], control["scet_fine"])

‎stixcore/products/level0/quicklookL0.py‎

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def fits_daily_file(self):
7878
return True
7979

8080
@classmethod
81-
def from_levelb(cls, levelb, *, parent="", NIX00405_offset=0):
81+
def from_levelb(cls, levelb, *, parent="", NIX00405_offset=0, keep_parse_tree=True):
8282
"""Converts level binary packets to a L1 product.
8383
8484
Parameters
@@ -89,6 +89,8 @@ def from_levelb(cls, levelb, *, parent="", NIX00405_offset=0):
8989
The parent data file name the binary packed comes from, by default ''
9090
NIX00405_offset : int, optional
9191
[description], by default 0
92+
keep_parse_tree : bool, optional
93+
Whether to keep the parse tree in each packet for debugging and printing, by default True
9294
9395
Returns
9496
-------
@@ -97,7 +99,7 @@ def from_levelb(cls, levelb, *, parent="", NIX00405_offset=0):
9799
all used IDB versions and time periods
98100
initialized control table
99101
"""
100-
packets, idb_versions = GenericProduct.getLeveL0Packets(levelb)
102+
packets, idb_versions = GenericProduct.getLeveL0Packets(levelb, keep_parse_tree=keep_parse_tree)
101103

102104
control = Control.from_packets(packets, NIX00405_offset=NIX00405_offset)
103105

@@ -138,8 +140,10 @@ def __init__(
138140
self.level = "L0"
139141

140142
@classmethod
141-
def from_levelb(cls, levelb, parent=""):
142-
packets, idb_versions, control = QLProduct.from_levelb(levelb, parent=parent, NIX00405_offset=QLNIX00405_off)
143+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
144+
packets, idb_versions, control = QLProduct.from_levelb(
145+
levelb, parent=parent, NIX00405_offset=QLNIX00405_off, keep_parse_tree=keep_parse_tree
146+
)
143147

144148
control.add_data("detector_mask", _get_detector_mask(packets))
145149
control.add_data("pixel_mask", _get_pixel_mask(packets))
@@ -245,8 +249,10 @@ def __init__(
245249
self.level = "L0"
246250

247251
@classmethod
248-
def from_levelb(cls, levelb, parent=""):
249-
packets, idb_versions, control = QLProduct.from_levelb(levelb, parent=parent, NIX00405_offset=QLNIX00405_off)
252+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
253+
packets, idb_versions, control = QLProduct.from_levelb(
254+
levelb, parent=parent, NIX00405_offset=QLNIX00405_off, keep_parse_tree=keep_parse_tree
255+
)
250256

251257
control.add_data("energy_bin_edge_mask", _get_energy_bins(packets, "NIX00266", "NIXD0111"))
252258
control.add_basic(name="num_energies", nix="NIX00270", packets=packets)
@@ -358,8 +364,10 @@ def __init__(
358364
self.level = "L0"
359365

360366
@classmethod
361-
def from_levelb(cls, levelb, parent=""):
362-
packets, idb_versions, control = QLProduct.from_levelb(levelb, parent=parent, NIX00405_offset=QLNIX00405_off)
367+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
368+
packets, idb_versions, control = QLProduct.from_levelb(
369+
levelb, parent=parent, NIX00405_offset=QLNIX00405_off, keep_parse_tree=keep_parse_tree
370+
)
363371

364372
control.add_data("pixel_mask", _get_pixel_mask(packets))
365373
control.add_data("compression_scheme_spectra_skm", _get_compression_scheme(packets, "NIX00452"))
@@ -510,8 +518,10 @@ def __init__(
510518
self.level = "L0"
511519

512520
@classmethod
513-
def from_levelb(cls, levelb, parent=""):
514-
packets, idb_versions, control = QLProduct.from_levelb(levelb, parent=parent, NIX00405_offset=QLNIX00405_off)
521+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
522+
packets, idb_versions, control = QLProduct.from_levelb(
523+
levelb, parent=parent, NIX00405_offset=QLNIX00405_off, keep_parse_tree=keep_parse_tree
524+
)
515525

516526
# Control
517527
control["samples_per_variance"] = np.array(packets.get_value("NIX00279"), np.ubyte)
@@ -600,8 +610,10 @@ def __init__(
600610
self.level = "L0"
601611

602612
@classmethod
603-
def from_levelb(cls, levelb, parent=""):
604-
packets, idb_versions, control = QLProduct.from_levelb(levelb, parent=parent, NIX00405_offset=QLNIX00405_off)
613+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
614+
packets, idb_versions, control = QLProduct.from_levelb(
615+
levelb, parent=parent, NIX00405_offset=QLNIX00405_off, keep_parse_tree=keep_parse_tree
616+
)
605617

606618
control.add_basic(name="num_samples", nix="NIX00089", packets=packets)
607619

@@ -683,8 +695,8 @@ def __init__(
683695
self.type = "cal"
684696

685697
@classmethod
686-
def from_levelb(cls, levelb, parent=""):
687-
packets, idb_versions, control = QLProduct.from_levelb(levelb, parent=parent)
698+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
699+
packets, idb_versions, control = QLProduct.from_levelb(levelb, parent=parent, keep_parse_tree=keep_parse_tree)
688700

689701
# Control
690702
control.add_basic(name="integration_time", nix="NIX00122", packets=packets, dtype=np.uint32, attr="value")
@@ -831,8 +843,8 @@ def __init__(
831843
self.level = "L0"
832844

833845
@classmethod
834-
def from_levelb(cls, levelb, parent=""):
835-
packets, idb_versions = GenericProduct.getLeveL0Packets(levelb)
846+
def from_levelb(cls, levelb, parent="", keep_parse_tree=True):
847+
packets, idb_versions = GenericProduct.getLeveL0Packets(levelb, keep_parse_tree=keep_parse_tree)
836848

837849
control = Control()
838850
control["scet_coarse"] = packets.get("scet_coarse")

0 commit comments

Comments
 (0)