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 functools import partial
from pathlib import Path from pathlib import Path
from typing import Annotated
import typer
from .. import collection from .. import collection
from .. import config as config_mod
from ..collection import file, ingest from ..collection import file, ingest
csi_producer: collection.CSIProducer = collection.noop csi_producer: collection.CSIProducer = collection.noop
is_live = True is_live = True
def main(from_file: Path | None = None) -> None: def main(
global csi_producer, is_live 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: if from_file:
csi_producer = partial(file.start_processing, file_path=from_file) csi_producer = partial(file.start_processing, file_path=from_file)
is_live = False is_live = False
else: else:
csi_producer = ingest.start_processing csi_producer = ingest.start_processing
is_live = True is_live = True
config_mod.load(config)

View File

@ -1,5 +1,6 @@
import logging import logging
import sys import sys
from pathlib import Path
import pydantic import pydantic
import yaml import yaml
@ -8,17 +9,22 @@ from . import models
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
try: config: models.Config | None = None
config = yaml.safe_load(open("config.yaml"))
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) def load(path: Path) -> None:
except pydantic.ValidationError as e: global config
logger.error(f"Invalid config.yaml file: {e}") try:
sys.exit(1) 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_yaml)
except pydantic.ValidationError as e:
logger.error(f"Invalid config.yaml file: {e}")
sys.exit(1)