historical: Beancount can handle commas in amounts.

And having it looks nicer, is more consistent with our historical
books, is less code for me, and is no more trouble for the user.
This commit is contained in:
Brett Smith 2020-05-19 15:22:00 -04:00
parent e158eae7d9
commit c3fd55ec15
2 changed files with 3 additions and 4 deletions

View file

@ -176,13 +176,13 @@ class BeancountFormatter(LedgerFormatter):
COST_FMT = '{{{}}}'
def __init__(self, cost_rates, price_rates=None,
signed_currencies=(), base_fmt='###0.###',
signed_currencies=(), base_fmt='#,##0.###',
rate_precision=5, denomination=None):
super().__init__(
cost_rates,
price_rates,
(),
base_fmt.replace(',', ''),
base_fmt,
rate_precision,
denomination,
)

View file

@ -95,7 +95,6 @@ def check_fx_amount(config, lines, amount, cost, fx_code, fx_sign=None, price=No
cost_re = '{{={}}}'.format(rate_fmt.format(cost))
price_re = ' @ {}'.format(rate_fmt.format(price))
else:
amount = amount.replace(',', '')
cost_re = '{{{}}}'.format(rate_fmt.format(cost))
if config.args.from_date is None:
price_re = ''
@ -115,7 +114,7 @@ def check_nonfx_amount(config, lines, amount, code=None, sign=None):
else:
expected = f'{amount} {code}\n'
else:
expected = f'{amount.replace(",", "")} {code or "USD"}\n'
expected = f'{amount} {code or "USD"}\n'
assert next(lines, "<EOF>") == expected
def test_rate_list(single_responder, output, any_date):