Skip to content
Snippets Groups Projects
Commit 60cbdbfe authored by Wernle, Alexandra Nicole's avatar Wernle, Alexandra Nicole
Browse files

Imported Enum to define a CLI parameter with a predefined set of values to...

Imported Enum to define a CLI parameter with a predefined set of values to choose from. Created a spreadsheets_dir option and factory option.
parent 3a9f8ced
No related branches found
No related tags found
1 merge request!192Add spreadsheet factory functionality to copy_absolutes.py
...@@ -10,14 +10,20 @@ from datetime import date, datetime, time, timedelta ...@@ -10,14 +10,20 @@ from datetime import date, datetime, time, timedelta
from typing import List from typing import List
import typer import typer
from enum import Enum
from obspy import UTCDateTime from obspy import UTCDateTime
from ..metadata import Metadata, MetadataCategory, MetadataFactory from ..metadata import Metadata, MetadataFactory, MetadataCategory
from ..residual import Reading, WebAbsolutesFactory from ..residual import Reading, WebAbsolutesFactory, SpreadsheetAbsolutesFactory
TODAY = datetime.combine(date.today(), time(0, 0, 0)) TODAY = datetime.combine(date.today(), time(0, 0, 0))
class factories(str, Enum):
web_absolutes_factory = "web_absolutes_factory"
spreadsheet_factory = "spreadsheet_factory"
def copy_absolutes( def copy_absolutes(
observatory: str = typer.Option(..., help="Observatory code"), observatory: str = typer.Option(..., help="Observatory code"),
starttime: datetime = typer.Option( starttime: datetime = typer.Option(
...@@ -40,12 +46,22 @@ def copy_absolutes( ...@@ -40,12 +46,22 @@ def copy_absolutes(
help="URL to web absolutes service", help="URL to web absolutes service",
metavar="URL", metavar="URL",
), ),
spreadsheets_dir: str = typer.Option(
default="---", help="Directory to residual spreadsheets", metavar="DIR"
),
# I am not sure what to specify as the default directory, I was using a local directory as a test
factory: factories = factories.web_absolutes_factory,
): ):
"""Copy absolutes from the web absolutes service into the metadata service.""" """Copy absolutes from the web absolutes service OR residual spreadsheets into the metadata service."""
# read readings from web absolutes print(f"Using factory: {factory.value}")
web_absolutes_factory = WebAbsolutesFactory(url=web_absolutes_url)
if factory.value == factories.web_absolutes_factory:
factory = WebAbsolutesFactory(url=web_absolutes_url)
else:
factory = SpreadsheetAbsolutesFactory(base_directory=spreadsheets_dir)
readings = get_readings( readings = get_readings(
factory=web_absolutes_factory, factory=factory,
observatory=observatory, observatory=observatory,
starttime=UTCDateTime(starttime), starttime=UTCDateTime(starttime),
endtime=UTCDateTime(endtime), endtime=UTCDateTime(endtime),
...@@ -88,17 +104,14 @@ def create_reading_metadata(reading: Reading) -> Metadata: ...@@ -88,17 +104,14 @@ def create_reading_metadata(reading: Reading) -> Metadata:
def get_readings( def get_readings(
factory: WebAbsolutesFactory, factory: factories, observatory: str, starttime: UTCDateTime, endtime: UTCDateTime
observatory: str,
starttime: UTCDateTime,
endtime: UTCDateTime,
) -> List[Reading]: ) -> List[Reading]:
"""Get readings from web absolutes. """Get readings from web absolutes or residual spreadsheets.
Parameters Parameters
---------- ----------
factory factory
configured WebAbsolutesFactory configured WebAbsolutesFactory or SpreadsheetAbsolutesFactory
observatory observatory
search observatory search observatory
starttime starttime
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment