libera_utils.io.filenaming.L0Filename#

class libera_utils.io.filenaming.L0Filename(*args, **kwargs)#

Bases: AbstractValidFilename

Filename validation class for L0 files from EDOS.

Attributes:
archive_prefix

Property that contains the generated prefix for L0 archiving

filename_parts

Property that contains a namespace of filename parts

path

Property containing the file path

Methods

from_filename_parts([basepath, id_char, ...])

Create instance from filename parts.

generate_prefixed_path(parent_path)

Generates an absolute path of the form {parent_path}/{prefix_structure}/{file_basename} The parent_path can be an S3 bucket or an absolute local filepath (must start with /)

regex_match(path)

Parse and validate a given path against class-attribute defined regex

__init__(*args, **kwargs)#

Methods

from_filename_parts([basepath, id_char, ...])

Create instance from filename parts.

generate_prefixed_path(parent_path)

Generates an absolute path of the form {parent_path}/{prefix_structure}/{file_basename} The parent_path can be an S3 bucket or an absolute local filepath (must start with /)

regex_match(path)

Parse and validate a given path against class-attribute defined regex

Attributes

archive_prefix

Property that contains the generated prefix for L0 archiving

filename_parts

Property that contains a namespace of filename parts

path

Property containing the file path

static _calculate_applicable_time(start: datetime, end: datetime)#

Based on the start time and end time of a file, returns the applicable time (date)

Parameters:
Returns:

The date of the mean time between start and end

Return type:

datetime.date

classmethod _check_required_parts(local_vars: dict)#

Checks for the presence of required filename parts

Parameters:

local_vars (dict) – Dictionary of variables passed, created by a call to locals()

classmethod _format_filename_parts(id_char: str, scid: int, first_apid: int, fill: str, created_time: datetime, numeric_id: int, file_number: int, extension: str, signal: str = None)#

Construct a path from filename parts

Parameters:
  • id_char (str) – Either P (for PDS files, Construction Records) or X (for Delivery Records)

  • scid (int) – Spacecraft ID

  • first_apid (int) – First APID in the file

  • fill (str) – Custom string up to 14 characters long

  • created_time (datetime.datetime) – Creation time of the file

  • numeric_id (int) – Data set ID, 0-9, one digit

  • file_number (str) – File number within the data set. Construction records are always file number zero.

  • extension (str) – File name extension. Either PDR or PDS

  • signal (str or None, Optional) – Optional signal suffix. Always ‘.XFR’

Returns:

Formatted filename

Return type:

str

classmethod _from_filename_parts(basepath: str = None, **parts)#

Create instance from filename parts.

The part arg names are named according to the regex for the file type.

Parameters:
  • basepath (str or pathlib.Path, Optional) – Allows prepending a basepath or prefix.

  • parts (dict) – Passed directly to _format_filename_parts

Return type:

AbstractValidFilename

_parse_filename_parts()#

Parse the filename parts into objects from regex matched strings

Returns:

namespace object containing filename parts as parsed objects

Return type:

types.SimpleNamespace

property archive_prefix#

Property that contains the generated prefix for L0 archiving

property filename_parts#

Property that contains a namespace of filename parts

classmethod from_filename_parts(basepath: str = None, id_char: str = None, scid: int = None, first_apid: int = None, fill: str = None, created_time: datetime = None, numeric_id: int = None, file_number: int = None, extension: str = None, signal: str = None)#

Create instance from filename parts. All keyword arguments other than basepath are required!

The part names are named according to the regex for the file type.

Parameters:
  • basepath (str or pathlib.Path, Optional) – Allows prepending a basepath or prefix.

  • id_char (str) – Either P (for PDS files, Construction Records) or X (for Delivery Records)

  • scid (int) – Spacecraft ID

  • first_apid (int) – First APID in the file

  • fill (str) – Custom string up to 14 characters long

  • created_time (datetime.datetime) – Creation time of the file

  • numeric_id (int) – Data set ID, 0-9, one digit

  • file_number (str) – File number within the data set. Construction records are always file number zero.

  • extension (str) – File name extension. Either PDR or PDS

  • signal (str or None, Optional) – Optional signal suffix. Always ‘.XFR’

Return type:

L0Filename

generate_prefixed_path(parent_path: str | Path | S3Path) Path | S3Path#

Generates an absolute path of the form {parent_path}/{prefix_structure}/{file_basename} The parent_path can be an S3 bucket or an absolute local filepath (must start with /)

Parameters:

parent_path (str or pathlib.Path or cloudpathlib.s3.s3path.S3Path) – Absolute path to the parent directory or S3 bucket prefix. The generated path prefix is appended to the parent path and followed by the file basename.

Return type:

pathlib.Path or cloudpathlib.s3.s3path.S3Path

property path#

Property containing the file path

regex_match(path: str)#

Parse and validate a given path against class-attribute defined regex

Returns:

Match group dict of filename parts

Return type:

dict