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"