diff options
Diffstat (limited to 'beancount_extras_kris7t/plugins')
-rw-r--r-- | beancount_extras_kris7t/plugins/selective_implicit_prices.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/beancount_extras_kris7t/plugins/selective_implicit_prices.py b/beancount_extras_kris7t/plugins/selective_implicit_prices.py index 07dc893..8f5186d 100644 --- a/beancount_extras_kris7t/plugins/selective_implicit_prices.py +++ b/beancount_extras_kris7t/plugins/selective_implicit_prices.py | |||
@@ -9,7 +9,9 @@ __copyright__ = "Copyright (C) 2015-2017 Martin Blais, " + \ | |||
9 | __license__ = "GNU GPLv2" | 9 | __license__ = "GNU GPLv2" |
10 | 10 | ||
11 | import collections | 11 | import collections |
12 | from typing import List, Tuple, Set | 12 | import datetime as dt |
13 | from decimal import Decimal | ||
14 | from typing import Dict, List, Optional, Set, Tuple | ||
13 | 15 | ||
14 | from beancount.core.data import Commodity, Entries, Transaction | 16 | from beancount.core.data import Commodity, Entries, Transaction |
15 | from beancount.core import data | 17 | from beancount.core import data |
@@ -22,6 +24,8 @@ __plugins__ = ('add_implicit_prices',) | |||
22 | 24 | ||
23 | ImplicitPriceError = collections.namedtuple('ImplicitPriceError', 'source message entry') | 25 | ImplicitPriceError = collections.namedtuple('ImplicitPriceError', 'source message entry') |
24 | 26 | ||
27 | EntryId = Tuple[dt.date, data.Currency, Optional[Decimal], data.Currency] | ||
28 | |||
25 | 29 | ||
26 | METADATA_FIELD = "__implicit_prices__" | 30 | METADATA_FIELD = "__implicit_prices__" |
27 | IMPLICIT_PRICES_META = "implicit-prices" | 31 | IMPLICIT_PRICES_META = "implicit-prices" |
@@ -65,9 +69,10 @@ def add_implicit_prices(entries: Entries, | |||
65 | errors.extend(fetch_errors) | 69 | errors.extend(fetch_errors) |
66 | 70 | ||
67 | # A dict of (date, currency, cost-currency) to price entry. | 71 | # A dict of (date, currency, cost-currency) to price entry. |
68 | new_price_entry_map = {} | 72 | new_price_entry_map: Dict[EntryId, data.Price] = {} |
69 | 73 | ||
70 | balances = collections.defaultdict(inventory.Inventory) | 74 | balances: Dict[data.Account, inventory.Inventory] = collections.defaultdict( |
75 | inventory.Inventory) | ||
71 | for entry in entries: | 76 | for entry in entries: |
72 | # Always replicate the existing entries. | 77 | # Always replicate the existing entries. |
73 | new_entries.append(entry) | 78 | new_entries.append(entry) |