Source code for dran.utils.config

# =========================================================================== #
# File: utils/config.py                                                       #
# Author: Pfesesani V. van Zyl                                                #
# Email: pfesi24@gmail.com                                                    #
# =|========================================================================= #


# Library imports
# --------------------------------------------------------------------------- #
from dataclasses import dataclass
import logging
import sys
from pathlib import Path
from typing import Optional
# =|========================================================================= #


[docs] @dataclass(frozen=True) class ObservationPathParts: root_data_dir: Path category: str source: str frequency: int filename: str full_path: Path # Optional metadata. Leave if you do not need it. wavelength_cm: Optional[float] = None beam: Optional[str] = None band_folder: Optional[str] = None
[docs] @dataclass(frozen=True) class ObservationPathPartsFolder: root_data_dir: Path category: str source: str frequency: int foldername: str full_path: Path # Optional metadata. Leave if you do not need it. wavelength_cm: Optional[float] = None beam: Optional[str] = None band_folder: Optional[str] = None
[docs] @dataclass(frozen=True) class ProjectPaths: workdir: Path db_path: Path log_path: Path invalid_files_path: Path symlinks_path: Path diagnostics_dir: Path plots_dir: Path
# class ObservationPathError(ValueError): # pass
[docs] class ObservationPathError(Exception): """Raised when an observation path cannot be parsed.""" pass