Utilities#

Functions to deal with command lines argument and options, dates, production IDs, directories and moving files.

Command line arguments and options#

Input arguments and options for LSTOSA scripts are set in osa.utils.cliopts.

Reference/API#

Command line argument parser for lstosa scripts.

osa.utils.cliopts.autocloser_cli_parser()#

Define the command line parser for the autocloser.

osa.utils.cliopts.calibration_pipeline_argparser()#

Command line parser for the calibration pipeline.

osa.utils.cliopts.calibration_pipeline_cliparsing()#

Set the global variables and parse the command line arguments for the calibration pipeline

osa.utils.cliopts.closer_argparser()#
osa.utils.cliopts.closercliparsing()#
osa.utils.cliopts.copy_datacheck_parsing()#
osa.utils.cliopts.data_sequence_argparser()#
osa.utils.cliopts.data_sequence_cli_parsing()#
osa.utils.cliopts.get_dl1_prod_id()#

Get the prod ID for the dl1 products provided it is defined in the configuration file.

Returns:
dl1_prod_id: string
osa.utils.cliopts.get_dl2_prod_id()#
Returns:
osa.utils.cliopts.get_prod_id()#

Get production ID from the configuration file if it is defined. Otherwise, it takes the lstchain version used.

Returns:
prod_id: string
osa.utils.cliopts.provprocessparsing()#
osa.utils.cliopts.sequencer_argparser()#

Argument parser for sequencer script.

osa.utils.cliopts.sequencer_cli_parsing()#
osa.utils.cliopts.sequencer_webmaker_argparser()#
osa.utils.cliopts.set_default_date_if_needed()#

Check if the date is set, if not set it to yesterday.

osa.utils.cliopts.simprocparsing()#
osa.utils.cliopts.valid_date(string)#

Check if the string is a valid date and return a datetime object.

Moving files and DB register#

Move analysis products (calibration, DL1, data-checks, muons and DL2 files) to their final destinations and register them in the data base (the latter actions is not implemented yet).

Reference/API#

Identify files to be moved to their final destination directories

osa.utils.register.register_files(run_str, analysis_dir, prefix, suffix, output_dir) None#

Copy files into final data directory destination and register them into the DB (to be implemented).

Parameters:
run_str: str

Run number

analysis_dir: pathlib.Path

analysis directory

suffix: str

suffix of the data file

output_dir: pathlib.Path

final data directory

prefix: str

prefix of the data file

osa.utils.register.register_found_pattern(file_path: Path, seq_list: list, concept: str, destination_path: Path)#
Parameters:
file_path: pathlib.Path
seq_list: list
concept: str
destination_path: pathlib.Path
osa.utils.register.register_non_existing_file(file_path, concept, seq_list)#
Parameters:
file_path: pathlib.Path
concept: str
seq_list: list
osa.utils.register.register_run_concept_files(run_string, concept)#

Prepare files to be moved to final destination directories from the running_analysis original directory.

Parameters:
run_string: str
concept: str

Utility functions#

Handling of dates, directories and production IDs.

Reference/API#

Functions to deal with dates and prod IDs.

osa.utils.utils.create_lock(lockfile) bool#

Create a lock file to prevent multiple instances of the same analysis.

Parameters:
lockfile: pathlib.Path
Returns:
bool
osa.utils.utils.cron_lock(tel) Path#

Create a lock file for the cron jobs.

osa.utils.utils.date_to_dir(date: datetime) str#

Function to change from YYYY-MM-DD to YYYYMMDD format (used for directories).

osa.utils.utils.date_to_iso(date: datetime) str#

Function to change from YYYY-MM-DD to YYYY-MM-DD.

osa.utils.utils.example_seq()#

Example sequence table output for testing.

osa.utils.utils.get_dl1_prod_id()#

Get the prod ID for the dl1 products provided it is defined in the configuration file.

Returns:
dl1_prod_id: string
osa.utils.utils.get_dl2_prod_id()#
Returns:
osa.utils.utils.get_lstchain_version()#

Get the lstchain version.

Returns:
lstchain_version: string
osa.utils.utils.get_prod_id()#

Get production ID from the configuration file if it is defined. Otherwise, it takes the lstchain version used.

Returns:
prod_id: string
osa.utils.utils.gettag()#

Get the name of the script currently being used.

osa.utils.utils.is_day_closed() bool#

Get the name and Check for the existence of the Closer flag file.

osa.utils.utils.is_defined(variable)#

Check if a variable is already defined.

osa.utils.utils.is_night_time(hour)#

Check if it is nighttime.

osa.utils.utils.night_finished_flag() Path#

Create night-is-finished lock file.

Returns:
lockfile: pathlib.Path

Path of the lock file

osa.utils.utils.set_prod_ids()#

Set the product IDs.

osa.utils.utils.stringify(args)#

Join a list of arguments in a string.

osa.utils.utils.time_to_seconds(timestring)#

Transform (D-)HH:MM:SS time format to seconds.

Parameters:
timestring: str or None

Time in format (D-)HH:MM:SS

Returns:
Seconds that correspond to (D-)HH:MM:SS
osa.utils.utils.wait_for_daytime(start=8, end=18)#

Check every hour if it is still nighttime to not running jobs while it is still night.

I/O#

Reading and writing files.

Reference/API#

Handle the writing, reading and appending strings to files.

osa.utils.iofile.append_to_file(file: Path, content: str) None#

Check if the file already exists and write the content in it.

Parameters:
file: pathlib.Path

The file to write in.

content: str

The content to write in the file.

osa.utils.iofile.write_to_file(file: Path, content: str)#

Check if the file already exists and write the content in it.