lstosa 0.10.16__py3-none-any.whl → 0.10.18__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lstosa
3
- Version: 0.10.16
3
+ Version: 0.10.18
4
4
  Summary: Onsite analysis pipeline for the CTA LST-1
5
5
  Author: María Láinez, José Enrique Ruiz, Lab Saha, Andrés Baquero, José Luis Contreras, Maximilian Linhoff
6
6
  Author-email: Daniel Morcuende <dmorcuen@ucm.es>
@@ -13,14 +13,13 @@ Classifier: Intended Audience :: Science/Research
13
13
  Classifier: Topic :: Scientific/Engineering :: Astronomy
14
14
  Classifier: Topic :: Scientific/Engineering :: Physics
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.9
17
16
  Classifier: Programming Language :: Python :: 3.10
18
17
  Classifier: Programming Language :: Python :: 3.11
19
- Requires-Python: >=3.9
18
+ Requires-Python: >=3.10
20
19
  Description-Content-Type: text/markdown
21
20
  License-File: LICENSE
22
21
  Requires-Dist: astropy ~=5.0
23
- Requires-Dist: lstchain >=0.10.7
22
+ Requires-Dist: lstchain >=0.10.13
24
23
  Requires-Dist: matplotlib
25
24
  Requires-Dist: numpy
26
25
  Requires-Dist: pandas
@@ -34,6 +33,7 @@ Requires-Dist: toml
34
33
  Requires-Dist: pymongo
35
34
  Requires-Dist: gammapy ~=1.1
36
35
  Requires-Dist: tenacity
36
+ Requires-Dist: lstcam-calib
37
37
  Provides-Extra: all
38
38
  Requires-Dist: lstosa[dev,doc,test] ; extra == 'all'
39
39
  Provides-Extra: dev
@@ -1,5 +1,5 @@
1
1
  osa/__init__.py,sha256=crotf1NMTfNdZuCua_5T_jk3kvZrAAwVw4FPrfxv994,193
2
- osa/_version.py,sha256=jlReyDm3HgVzBkBFrRBfnuXhBDsRR9eOkGFTbzk1GvU,415
2
+ osa/_version.py,sha256=r5yBgfwT0EvNlv2b1QqGkGLNXEuv3_hqkiyAYxo-zcI,415
3
3
  osa/conftest.py,sha256=NBeGqTUBRqCPirDSDPny4bf1e_OJXbiePazHwaoQPY4,20072
4
4
  osa/job.py,sha256=vl7kBRM8Oe5YK2onUWGtGmHWX0AEktS2sbOuS5fsbgU,27074
5
5
  osa/osadb.py,sha256=pkCuYbEG-moHG0uQHxwB7giQAv2XTld4HJ5gdn1F1hA,2422
@@ -12,7 +12,7 @@ osa/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  osa/configs/config.py,sha256=cX0Vr4sorBVQ2KRqPIRSEGENKH_uC5lrgVHx1hp6YTk,1148
13
13
  osa/configs/datamodel.py,sha256=L_WRM91PBlMrtuE30akh7YR-56P0g9D994qzKSfhNJc,1950
14
14
  osa/configs/options.py,sha256=CyL7WnHiC_pvB3mnjRF7Wg43uPzQgmwlbvIqkRzlDLA,524
15
- osa/configs/sequencer.cfg,sha256=ZHgY1GvIHkdQIg0GtR5iSNXb1C0giDObxL1SH77G1Io,4991
15
+ osa/configs/sequencer.cfg,sha256=-iq_Eoy58JvxEuKoQ_PVr4BVS_fKY5Rmcdmluh4dJak,5118
16
16
  osa/high_level/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  osa/high_level/selection_cuts.toml,sha256=ReSmcKtOPZY5JsZ9ExnxYdz7OrJEB8gghCbzHmeOyFg,128
18
18
  osa/high_level/significance.py,sha256=Y1jokkHCo-D_qSqxKiQzc6KJSmivznaJRS2xY-txNIo,9039
@@ -35,11 +35,11 @@ osa/provenance/config/environment.yaml,sha256=kPM6ucPyLZLDFzkwFWoY0C6vmAArG98U-P
35
35
  osa/provenance/config/logger.yaml,sha256=hy_lH3DfbRFh2VM_iawI-c-3wE0cjTRHy465C2eFfnQ,510
36
36
  osa/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  osa/scripts/autocloser.py,sha256=Z4x4yfDA2Xkr-6ld57L4VjWcVse-sLqkGuE6ZFgSXps,14716
38
- osa/scripts/calibration_pipeline.py,sha256=g9o1chqCRRSo7GNuQZRABjGnJYjZyfhkPgRLPmuV994,5703
39
- osa/scripts/closer.py,sha256=p11tq2YJLwsRK_CBWXU1465ArzLJ0qWlUCnubGqLPUo,18277
38
+ osa/scripts/calibration_pipeline.py,sha256=aSTwxbDi-is3BSo9AVYJcV6sI4K641R1OzgdW0-ffdQ,5714
39
+ osa/scripts/closer.py,sha256=C_80hfkkUnWMGx2YUbK1grFKUSMahpVPN8NIuSOloF0,18821
40
40
  osa/scripts/copy_datacheck.py,sha256=tfDs6oTdPbii4BOXp6bTHuED0xNJeqaPFrv6Ed7ZnWc,3104
41
41
  osa/scripts/datasequence.py,sha256=gXAp8arbLPEK-sca9VnME6-2XfUzBFIoEFchlUZYrXI,9260
42
- osa/scripts/gain_selection.py,sha256=TT0grDTMB6Z-GMQJeuseS0qnWYZnumI2227ksv-d0-Y,23146
42
+ osa/scripts/gain_selection.py,sha256=h6ylGc8o1iDtKUpidrRJlD2lrL-59auCyBNHX1ytwUg,23236
43
43
  osa/scripts/gainsel_webmaker.py,sha256=40_DX7RUmImX-31iqRTFPEUvdVXXPSKp0xMEJWuAu80,5006
44
44
  osa/scripts/provprocess.py,sha256=mufkZe6_qwH3DGqTFxINIc01hciF5RMpw3n_Mp7vwXU,18629
45
45
  osa/scripts/reprocess_longterm.py,sha256=wMfc3UVwickkGFiviIhOlB9ebMIqQPWoUrgg8hQ78Lg,2138
@@ -50,9 +50,9 @@ osa/scripts/show_run_summary.py,sha256=SoDLVKdQHOJkfenFguBOfXf10Gyv7heXSQAFnDVZq
50
50
  osa/scripts/simulate_processing.py,sha256=NiRVYiwZENt_mnKncytgJT23_-tJMb1B5PswM12nnX4,6941
51
51
  osa/scripts/update_source_catalog.py,sha256=GHwWFc-y6S4KkUJxUVM5drdAnVDD0-n3D-Tv3CCmh4E,7218
52
52
  osa/scripts/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- osa/scripts/tests/test_osa_scripts.py,sha256=8rOHbujP-eutTM4QOdDvKbQEPon3gSzteua1PAgKO1E,13790
53
+ osa/scripts/tests/test_osa_scripts.py,sha256=4R5MmTkpxmkxsG_dc1KULDvDwT7bLlF1LK2u6n0w2Qk,13919
54
54
  osa/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- osa/tests/test_jobs.py,sha256=tdgZE21jisCvtlB6oAqXbV4sM1KPMG5tD-Rmcaf5OWo,15488
55
+ osa/tests/test_jobs.py,sha256=Q5PTR2WbEElTYMnBS6kOsvD1XtuumdQGuzrTAza6TvE,15499
56
56
  osa/tests/test_osa.py,sha256=QCOsjUgPuNMHoef3Ym2sDXVjun2LaBrfKyroAIH-os8,415
57
57
  osa/tests/test_osadb.py,sha256=pJHV1dxxblGH2sjS-JPDPTkMn-ew1MzbioCFyg7wbB8,1599
58
58
  osa/tests/test_paths.py,sha256=sFCxG5uPGLcto76E7X1I26-kRx5faxgHGh9z8LvHz2M,3173
@@ -75,9 +75,9 @@ osa/workflow/dl3.py,sha256=kz7L5jcKHFJ--UdQ8HQKLzWO6nxc2LLOTz42ExcqzTk,9921
75
75
  osa/workflow/stages.py,sha256=4UkUajy4Qk-l-1la3LBDpYugK2HQEPmyUnDTBIVW0jE,7082
76
76
  osa/workflow/tests/test_dl3.py,sha256=aY5bb-8OcZGAXG3JPCZihChzkA_GsWjRIa31BHZn3Dg,299
77
77
  osa/workflow/tests/test_stages.py,sha256=TmC00XFACWZp740TQeFaokWi3C50ovj_XGiySWrrdZk,3944
78
- lstosa-0.10.16.dist-info/LICENSE,sha256=h6iWot11EtMvaDaS_AvCHKLTNByO5wEbMyNj1c90y1c,1519
79
- lstosa-0.10.16.dist-info/METADATA,sha256=tsVLRnqOkJPfzs_aFbuunB0jZsTYWKlSCmXBslM55vI,7349
80
- lstosa-0.10.16.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
81
- lstosa-0.10.16.dist-info/entry_points.txt,sha256=qfARj13Vqt3I-E0tXuJwyC79cv84bjCwEj5uK67vWts,981
82
- lstosa-0.10.16.dist-info/top_level.txt,sha256=_Tj8zVHdrOoWZuuWTHbDpNofxW0imUmKdlXhnxsXJek,4
83
- lstosa-0.10.16.dist-info/RECORD,,
78
+ lstosa-0.10.18.dist-info/LICENSE,sha256=h6iWot11EtMvaDaS_AvCHKLTNByO5wEbMyNj1c90y1c,1519
79
+ lstosa-0.10.18.dist-info/METADATA,sha256=l_EnECTEDP4kNeRJGYmZ376hWbzx_pyUHK4_zQf0SRA,7329
80
+ lstosa-0.10.18.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
81
+ lstosa-0.10.18.dist-info/entry_points.txt,sha256=qfARj13Vqt3I-E0tXuJwyC79cv84bjCwEj5uK67vWts,981
82
+ lstosa-0.10.18.dist-info/top_level.txt,sha256=_Tj8zVHdrOoWZuuWTHbDpNofxW0imUmKdlXhnxsXJek,4
83
+ lstosa-0.10.18.dist-info/RECORD,,
osa/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.10.16'
16
- __version_tuple__ = version_tuple = (0, 10, 16)
15
+ __version__ = version = '0.10.18'
16
+ __version_tuple__ = version_tuple = (0, 10, 18)
osa/configs/sequencer.cfg CHANGED
@@ -41,8 +41,10 @@ DL2_PROD_ID: model2
41
41
 
42
42
  [lstchain]
43
43
  # Calibration steps in calibration pipeline script
44
- drs4_baseline: onsite_create_drs4_pedestal_file
45
- charge_calibration: onsite_create_calibration_file
44
+ #drs4_baseline: onsite_create_drs4_pedestal_file
45
+ #charge_calibration: onsite_create_calibration_file
46
+ drs4_baseline: lstcam_calib_onsite_create_drs4_pedestal_file
47
+ charge_calibration: lstcam_calib_onsite_create_calibration_file
46
48
  use_ff_heuristic_id: False
47
49
 
48
50
  # Data processing steps in datasequence script
@@ -44,22 +44,23 @@ def is_calibration_produced(drs4_pedestal_run_id: int, pedcal_run_id: int) -> bo
44
44
  def drs4_pedestal_command(drs4_pedestal_run_id: int) -> list:
45
45
  """Build the create_drs4_pedestal command."""
46
46
  base_dir = Path(cfg.get("LST1", "BASE")).resolve()
47
+ command = cfg.get("lstchain", "drs4_baseline")
47
48
  return [
48
- "onsite_create_drs4_pedestal_file",
49
- f"--run_number={drs4_pedestal_run_id}",
50
- f"--base_dir={base_dir}",
49
+ command,
50
+ "-r", str(drs4_pedestal_run_id),
51
+ "-b", base_dir,
51
52
  "--no-progress",
52
53
  ]
53
54
 
54
-
55
55
  def calibration_file_command(drs4_pedestal_run_id: int, pedcal_run_id: int) -> list:
56
56
  """Build the create_calibration_file command."""
57
57
  base_dir = Path(cfg.get("LST1", "BASE")).resolve()
58
+ command = cfg.get("lstchain", "charge_calibration")
58
59
  cmd = [
59
- "onsite_create_calibration_file",
60
- f"--pedestal_run={drs4_pedestal_run_id}",
61
- f"--run_number={pedcal_run_id}",
62
- f"--base_dir={base_dir}",
60
+ command,
61
+ "-p", str(drs4_pedestal_run_id),
62
+ "-r", str(pedcal_run_id),
63
+ "-b", base_dir,
63
64
  ]
64
65
  # In case of problems with trigger tagging:
65
66
  if cfg.getboolean("lstchain", "use_ff_heuristic_id"):
osa/scripts/closer.py CHANGED
@@ -336,6 +336,7 @@ def merge_dl1_datacheck(seq_list) -> List[str]:
336
336
 
337
337
  muons_dir = destination_dir("MUON", create_dir=False)
338
338
  datacheck_dir = destination_dir("DATACHECK", create_dir=False)
339
+ slurm_account = cfg.get("SLURM", "ACCOUNT")
339
340
 
340
341
  list_job_id = []
341
342
 
@@ -344,6 +345,7 @@ def merge_dl1_datacheck(seq_list) -> List[str]:
344
345
  cmd = [
345
346
  "sbatch",
346
347
  "--parsable",
348
+ f"--account={slurm_account}",
347
349
  "-D",
348
350
  options.directory,
349
351
  "-o",
@@ -386,6 +388,7 @@ def extract_provenance(seq_list):
386
388
  log.info("Extract provenance run wise")
387
389
 
388
390
  nightdir = date_to_dir(options.date)
391
+ slurm_account = cfg.get("SLURM", "ACCOUNT")
389
392
 
390
393
  for sequence in seq_list:
391
394
  if sequence.type == "DATA":
@@ -393,6 +396,7 @@ def extract_provenance(seq_list):
393
396
  pedcal_run_id = str(sequence.pedcal_run)
394
397
  cmd = [
395
398
  "sbatch",
399
+ f"--account={slurm_account}",
396
400
  "-D",
397
401
  options.directory,
398
402
  "-o",
@@ -433,6 +437,7 @@ def merge_files(sequence_list, data_level="DL2"):
433
437
 
434
438
  data_dir = destination_dir(data_level, create_dir=False)
435
439
  pattern, prefix = get_pattern(data_level)
440
+ slurm_account = cfg.get("SLURM", "ACCOUNT")
436
441
 
437
442
  for sequence in sequence_list:
438
443
  if sequence.type == "DATA":
@@ -440,6 +445,7 @@ def merge_files(sequence_list, data_level="DL2"):
440
445
 
441
446
  cmd = [
442
447
  "sbatch",
448
+ f"--account={slurm_account}",
443
449
  "-D",
444
450
  options.directory,
445
451
  "-o",
@@ -467,12 +473,14 @@ def merge_muon_files(sequence_list):
467
473
 
468
474
  data_dir = destination_dir("MUON", create_dir=False)
469
475
  pattern, prefix = get_pattern("MUON")
476
+ slurm_account = cfg.get("SLURM", "ACCOUNT")
470
477
 
471
478
  for sequence in sequence_list:
472
479
  merged_file = Path(data_dir) / f"muons_LST-1.Run{sequence.run:05d}.fits"
473
480
 
474
481
  cmd = [
475
482
  "sbatch",
483
+ f"--account={slurm_account}",
476
484
  "-D",
477
485
  options.directory,
478
486
  "-o",
@@ -499,10 +507,12 @@ def daily_longterm_cmd(parent_job_ids: List[str]) -> List[str]:
499
507
  muons_dir = destination_dir("MUON", create_dir=False)
500
508
  longterm_dir = Path(cfg.get("LST1", "LONGTERM_DIR")) / options.prod_id / nightdir
501
509
  longterm_output_file = longterm_dir / f"DL1_datacheck_{nightdir}.h5"
510
+ slurm_account = cfg.get("SLURM", "ACCOUNT")
502
511
 
503
512
  return [
504
513
  "sbatch",
505
514
  "--parsable",
515
+ f"--account={slurm_account}",
506
516
  "-D",
507
517
  options.directory,
508
518
  "-o",
@@ -541,10 +551,12 @@ def cherenkov_transparency_cmd(longterm_job_id: str) -> List[str]:
541
551
  datacheck_dir = destination_dir("DATACHECK", create_dir=False)
542
552
  longterm_dir = Path(cfg.get("LST1", "LONGTERM_DIR")) / options.prod_id / nightdir
543
553
  longterm_datacheck_file = longterm_dir / f"DL1_datacheck_{nightdir}.h5"
554
+ slurm_account = cfg.get("SLURM", "ACCOUNT")
544
555
 
545
556
  return [
546
557
  "sbatch",
547
558
  "--parsable",
559
+ f"--account={slurm_account}",
548
560
  "-D",
549
561
  options.directory,
550
562
  "-o",
@@ -114,6 +114,7 @@ def get_sbatch_script(
114
114
  ):
115
115
  """Build the sbatch job pilot script for running the gain selection."""
116
116
  mem_per_job = cfg.get("SLURM", "MEMSIZE_GAINSEL")
117
+ slurm_account = cfg.get("SLURM", "ACCOUNT")
117
118
  sbatch_script = dedent(
118
119
  f"""\
119
120
  #!/bin/bash
@@ -123,6 +124,7 @@ def get_sbatch_script(
123
124
  #SBATCH --job-name "gain_selection_{run_id:05d}"
124
125
  #SBATCH --partition=short,long
125
126
  #SBATCH --mem={mem_per_job}
127
+ #SBATCH --account={slurm_account}
126
128
  """
127
129
  )
128
130
 
@@ -8,6 +8,7 @@ import pytest
8
8
  import yaml
9
9
 
10
10
  from osa.configs import options
11
+ from osa.configs.config import cfg
11
12
  from osa.scripts.closer import is_sequencer_successful, is_finished_check
12
13
 
13
14
  ALL_SCRIPTS = [
@@ -300,9 +301,11 @@ def test_drs4_pedestal_cmd(base_test_dir):
300
301
 
301
302
  cmd = drs4_pedestal_command(drs4_pedestal_run_id="01804")
302
303
  expected_command = [
303
- "onsite_create_drs4_pedestal_file",
304
- "--run_number=01804",
305
- f"--base_dir={base_test_dir}",
304
+ cfg.get("lstchain", "drs4_baseline"),
305
+ "-r",
306
+ "01804",
307
+ "-b",
308
+ base_test_dir,
306
309
  "--no-progress",
307
310
  ]
308
311
  assert cmd == expected_command
@@ -313,10 +316,13 @@ def test_calibration_file_cmd(base_test_dir):
313
316
 
314
317
  cmd = calibration_file_command(drs4_pedestal_run_id="01804", pedcal_run_id="01809")
315
318
  expected_command = [
316
- "onsite_create_calibration_file",
317
- "--pedestal_run=01804",
318
- "--run_number=01809",
319
- f"--base_dir={base_test_dir}",
319
+ cfg.get("lstchain", "charge_calibration"),
320
+ "-p",
321
+ "01804",
322
+ "-r",
323
+ "01809",
324
+ "-b",
325
+ base_test_dir,
320
326
  ]
321
327
  assert cmd == expected_command
322
328
 
@@ -326,10 +332,12 @@ def test_daily_longterm_cmd():
326
332
 
327
333
  job_ids = ["12345", "54321"]
328
334
  cmd = daily_longterm_cmd(parent_job_ids=job_ids)
335
+ slurm_account = cfg.get("SLURM", "ACCOUNT")
329
336
 
330
337
  expected_cmd = [
331
338
  "sbatch",
332
339
  "--parsable",
340
+ f"--account={slurm_account}",
333
341
  "-D",
334
342
  options.directory,
335
343
  "-o",
osa/tests/test_jobs.py CHANGED
@@ -395,7 +395,7 @@ def test_set_cache_dirs():
395
395
  def test_calibration_history_level():
396
396
  from osa.job import check_history_level
397
397
 
398
- levels = {"onsite_create_drs4_pedestal_file": 1, "onsite_create_calibration_file": 0}
398
+ levels = {cfg.get("lstchain", "drs4_baseline"): 1, cfg.get("lstchain", "charge_calibration"): 0}
399
399
  level, exit_status = check_history_level(calibration_history_file, levels)
400
400
  assert level == 0
401
401
  assert exit_status == 0