From 59a17a98965589e420c01c70ad63cf6534a2d21b Mon Sep 17 00:00:00 2001 From: Chris Berkhout Date: Thu, 27 May 2021 19:11:46 +0200 Subject: [PATCH] Extract Format#format_date from outputs. --- src/pricehist/format.py | 3 +++ src/pricehist/outputs/beancount.py | 2 +- src/pricehist/outputs/csv.py | 2 +- src/pricehist/outputs/gnucashsql.py | 2 +- src/pricehist/outputs/ledger.py | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/pricehist/format.py b/src/pricehist/format.py index c16857f..36bb023 100644 --- a/src/pricehist/format.py +++ b/src/pricehist/format.py @@ -9,6 +9,9 @@ class Format: symbol: str = "rightspace" datesep: str = "-" + def format_date(self, date): + return str(date).replace("-", self.datesep) + def format_quote_amount(self, quote, amount): formatted_amount = self.format_num(amount) diff --git a/src/pricehist/outputs/beancount.py b/src/pricehist/outputs/beancount.py index ebe33ec..958b62b 100644 --- a/src/pricehist/outputs/beancount.py +++ b/src/pricehist/outputs/beancount.py @@ -11,7 +11,7 @@ class Beancount(BaseOutput): # TODO warn if fmt settings make an invalid number (not . for decimal) # TODO warn if fmt settings make an invalid quote (not right/rightspace) - date = str(price.date).replace("-", fmt.datesep) + date = fmt.format_date(price.date) lines.append(f"{date} price {series.base} {quote_amount}") return "\n".join(lines) + "\n" diff --git a/src/pricehist/outputs/csv.py b/src/pricehist/outputs/csv.py index b34aacb..7921a8b 100644 --- a/src/pricehist/outputs/csv.py +++ b/src/pricehist/outputs/csv.py @@ -7,7 +7,7 @@ class CSV(BaseOutput): def format(self, series, source=None, fmt=Format()): lines = ["date,base,quote,amount,source,type"] for price in series.prices: - date = str(price.date).replace("-", fmt.datesep) + date = fmt.format_date(price.date) amount = fmt.format_num(price.amount) line = ",".join( [date, series.base, series.quote, amount, source.id(), series.type] diff --git a/src/pricehist/outputs/gnucashsql.py b/src/pricehist/outputs/gnucashsql.py index bd29b17..efca147 100644 --- a/src/pricehist/outputs/gnucashsql.py +++ b/src/pricehist/outputs/gnucashsql.py @@ -14,7 +14,7 @@ class GnuCashSQL(BaseOutput): values_parts = [] for price in series.prices: - date = f"{price.date} {fmt.time}" + date = f"{fmt.format_date(price.date)} {fmt.time}" m = hashlib.sha256() m.update( "".join( diff --git a/src/pricehist/outputs/ledger.py b/src/pricehist/outputs/ledger.py index b514e71..f69fbcc 100644 --- a/src/pricehist/outputs/ledger.py +++ b/src/pricehist/outputs/ledger.py @@ -7,7 +7,7 @@ class Ledger(BaseOutput): def format(self, series, source=None, fmt=Format()): lines = [] for price in series.prices: - date = str(price.date).replace("-", fmt.datesep) + date = fmt.format_date(price.date) quote_amount = fmt.format_quote_amount(series.quote, price.amount) lines.append(f"P {date} {fmt.time} {series.base} {quote_amount}") return "\n".join(lines) + "\n"