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.