break stuff by adding new param
This commit is contained in:
parent
013f2cdadb
commit
78e3d71b05
4 changed files with 34 additions and 3 deletions
|
|
@ -8,7 +8,7 @@ import click
|
|||
import pyfiglet
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from xexe.constants import PATHS
|
||||
from xexe.constants import PATHS, RATES_SOURCES
|
||||
from xexe.inputs_handling import handle_get_rates_inputs
|
||||
from xexe.processes import run_get_rates, run_xe_healthcheck
|
||||
|
||||
|
|
@ -66,6 +66,7 @@ def xe_healthcheck():
|
|||
"--currencies", default=",".join([]), show_default=True, type=click.STRING
|
||||
)
|
||||
@click.option("--dry-run", is_flag=True)
|
||||
@click.option("--rates-source", type=click.Choice(RATES_SOURCES.keys()), default="mock")
|
||||
@click.option("--ignore-warnings", is_flag=True)
|
||||
@click.option("--output", type=click.STRING, required=True)
|
||||
def get_rates(
|
||||
|
|
@ -73,6 +74,7 @@ def get_rates(
|
|||
end_date: Union[str, datetime.datetime, datetime.date],
|
||||
currencies: Union[None, str],
|
||||
dry_run: bool,
|
||||
rates_sources: str,
|
||||
ignore_warnings: bool,
|
||||
output: pathlib.Path,
|
||||
):
|
||||
|
|
@ -81,6 +83,7 @@ def get_rates(
|
|||
end_date=end_date,
|
||||
currencies=currencies,
|
||||
dry_run=dry_run,
|
||||
rates_sources=rates_sources,
|
||||
ignore_warnings=ignore_warnings,
|
||||
output=output,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -3,8 +3,12 @@ from dataclasses import dataclass
|
|||
|
||||
from money.currency import Currency
|
||||
|
||||
from xexe.rate_fetching import MockRateFetcher, XERateFetcher
|
||||
|
||||
DEFAULT_CURRENCIES = {Currency("EUR"), Currency("GBP"), Currency("USD")}
|
||||
|
||||
RATES_SOURCES = {"mock": MockRateFetcher, "xe": XERateFetcher}
|
||||
|
||||
|
||||
@dataclass
|
||||
class PATHS:
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from typing import Union
|
|||
|
||||
from money.currency import Currency
|
||||
|
||||
from xexe.constants import DEFAULT_CURRENCIES
|
||||
from xexe.constants import DEFAULT_CURRENCIES, RATES_SOURCES
|
||||
from xexe.utils import DateRange
|
||||
|
||||
logger = logging.getLogger()
|
||||
|
|
@ -16,6 +16,7 @@ def handle_get_rates_inputs(
|
|||
end_date: Union[datetime.datetime, datetime.date],
|
||||
currencies: Union[None, str],
|
||||
dry_run: bool,
|
||||
rates_source: str,
|
||||
ignore_warnings: bool,
|
||||
output: Union[str, pathlib.Path],
|
||||
):
|
||||
|
|
@ -36,6 +37,9 @@ def handle_get_rates_inputs(
|
|||
logger.info("No currency list passed. Running for default currencies.")
|
||||
currencies = DEFAULT_CURRENCIES
|
||||
|
||||
if rates_source not in RATES_SOURCES:
|
||||
raise ValueError(f"--rates-source must be one of {RATES_SOURCES.keys()}.")
|
||||
|
||||
# The Path constructor is idempotent, so this works equally fine if output
|
||||
# is a string or an actual Path object.
|
||||
output = pathlib.Path(output)
|
||||
|
|
@ -46,6 +50,7 @@ def handle_get_rates_inputs(
|
|||
"date_range": date_range,
|
||||
"currencies": currencies,
|
||||
"dry_run": dry_run,
|
||||
"rates_source": rates_source,
|
||||
"ignore_warnings": ignore_warnings,
|
||||
"output": output,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue