Compare commits

...

1 Commits

Author SHA1 Message Date
Christos Falas
381dcaa0bc
[BROKEN] Add CLI option for option
This is still slightly broken, as new processes are not able to access
the configuration.
2025-01-27 16:16:40 +00:00
2 changed files with 35 additions and 15 deletions

View File

@ -1,18 +1,32 @@
from functools import partial
from pathlib import Path
from typing import Annotated
import typer
from .. import collection
from .. import config as config_mod
from ..collection import file, ingest
csi_producer: collection.CSIProducer = collection.noop
is_live = True
def main(from_file: Path | None = None) -> None:
global csi_producer, is_live
def main(
from_file: Annotated[
Path | None,
typer.Option(help="Read CSI data from file. Uses live data if not specified"),
] = None,
config: Annotated[
Path, typer.Option(help="Specify path to config file", exists=True)
] = Path("config.yaml"),
) -> None:
global csi_producer, is_live, config_path
if from_file:
csi_producer = partial(file.start_processing, file_path=from_file)
is_live = False
else:
csi_producer = ingest.start_processing
is_live = True
config_mod.load(config)

View File

@ -1,5 +1,6 @@
import logging
import sys
from pathlib import Path
import pydantic
import yaml
@ -8,17 +9,22 @@ from . import models
logger = logging.getLogger(__name__)
try:
config = yaml.safe_load(open("config.yaml"))
except FileNotFoundError:
config: models.Config | None = None
def load(path: Path) -> None:
global config
try:
config_yaml = yaml.safe_load(open(path))
except FileNotFoundError:
logger.error(
"No config.yaml file found. Make sure to copy the "
"config.example.yaml file to config.yaml"
)
sys.exit(1)
try:
config = models.Config(**config)
except pydantic.ValidationError as e:
try:
config = models.Config(**config_yaml)
except pydantic.ValidationError as e:
logger.error(f"Invalid config.yaml file: {e}")
sys.exit(1)