tariochbctools 1.0.1__tar.gz → 1.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/PKG-INFO +2 -2
  2. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/bitst/importer.py +3 -0
  3. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/blockchain/importer.py +3 -0
  4. tariochbctools-1.1.1/src/tariochbctools/importers/general/deduplication.py +14 -0
  5. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/general/mt940importer.py +4 -0
  6. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/nordigen/importer.py +4 -0
  7. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/transferwise/importer.py +4 -0
  8. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/zak/importer.py +4 -0
  9. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/plugins/generate_base_ccy_prices.py +5 -1
  10. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools.egg-info/PKG-INFO +2 -2
  11. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools.egg-info/SOURCES.txt +3 -0
  12. tariochbctools-1.1.1/tests/tariochbctools/plugins/data/generate_base_ccy_prices/issue122_expected.beancount +3 -0
  13. tariochbctools-1.1.1/tests/tariochbctools/plugins/data/generate_base_ccy_prices/issue122_input.beancount +4 -0
  14. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/plugins/test_generate_base_ccy_prices.py +3 -1
  15. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/.coveragerc +0 -0
  16. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/.isort.cfg +0 -0
  17. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/.pre-commit-config.yaml +0 -0
  18. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/.readthedocs.yml +0 -0
  19. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/LICENSE.txt +0 -0
  20. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/MANIFEST.in +0 -0
  21. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/README.rst +0 -0
  22. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/_static/.gitignore +0 -0
  23. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/conf.py +0 -0
  24. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/importers.rst +0 -0
  25. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/index.rst +0 -0
  26. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/installation.rst +0 -0
  27. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/license.rst +0 -0
  28. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/plugins.rst +0 -0
  29. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/price_fetchers.rst +0 -0
  30. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/docs/requirements.txt +0 -0
  31. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/pyproject.toml +0 -0
  32. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/setup.cfg +0 -0
  33. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/setup.py +0 -0
  34. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/__init__.py +0 -0
  35. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/__init__.py +0 -0
  36. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/bcge/__init__.py +0 -0
  37. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/bcge/importer.py +0 -0
  38. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/bitst/__init__.py +0 -0
  39. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/blockchain/__init__.py +0 -0
  40. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/cembrastatement/__init__.py +0 -0
  41. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/cembrastatement/importer.py +0 -0
  42. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/general/__init__.py +0 -0
  43. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/general/mailAdapterImporter.py +0 -0
  44. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/general/priceLookup.py +0 -0
  45. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/ibkr/__init__.py +0 -0
  46. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/ibkr/importer.py +0 -0
  47. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/neon/__init__.py +0 -0
  48. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/neon/importer.py +0 -0
  49. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/netbenefits/__init__.py +0 -0
  50. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/netbenefits/importer.py +0 -0
  51. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/nordigen/__init__.py +0 -0
  52. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/nordigen/nordigen_config.py +0 -0
  53. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/postfinance/__init__.py +0 -0
  54. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/postfinance/importer.py +0 -0
  55. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/quickfile/__init__.py +0 -0
  56. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/quickfile/importer.py +0 -0
  57. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/raiffeisench/importer.py +0 -0
  58. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/revolut/__init__.py +0 -0
  59. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/revolut/importer.py +0 -0
  60. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/schedule/__init__.py +0 -0
  61. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/schedule/importer.py +0 -0
  62. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/swisscard/__init__.py +0 -0
  63. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/swisscard/importer.py +0 -0
  64. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/transferwise/__init__.py +0 -0
  65. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/truelayer/__init__.py +0 -0
  66. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/truelayer/importer.py +0 -0
  67. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/viseca/__init__.py +0 -0
  68. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/viseca/importer.py +0 -0
  69. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/zak/__init__.py +0 -0
  70. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/zkb/__init__.py +0 -0
  71. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/importers/zkb/importer.py +0 -0
  72. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/plugins/__init__.py +0 -0
  73. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/plugins/check_portfolio_sum.py +0 -0
  74. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/plugins/prices/__init__.py +0 -0
  75. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools/plugins/prices/ibkr.py +0 -0
  76. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools.egg-info/dependency_links.txt +0 -0
  77. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools.egg-info/entry_points.txt +0 -0
  78. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools.egg-info/not-zip-safe +0 -0
  79. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools.egg-info/requires.txt +0 -0
  80. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/src/tariochbctools.egg-info/top_level.txt +0 -0
  81. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/__init__.py +0 -0
  82. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/conftest.py +0 -0
  83. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/__init__.py +0 -0
  84. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/importers/__init__.py +0 -0
  85. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/importers/test_quickfile.py +0 -0
  86. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/importers/test_truelayer.py +0 -0
  87. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/plugins/__init__.py +0 -0
  88. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/plugins/data/generate_base_ccy_prices/entry_already_exists_expected.beancount +0 -0
  89. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/plugins/data/generate_base_ccy_prices/entry_already_exists_input.beancount +0 -0
  90. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/plugins/data/generate_base_ccy_prices/missing_fx_expected.beancount +0 -0
  91. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/plugins/data/generate_base_ccy_prices/missing_fx_input.beancount +0 -0
  92. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/plugins/data/generate_base_ccy_prices/normal_expected.beancount +0 -0
  93. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tests/tariochbctools/plugins/data/generate_base_ccy_prices/normal_input.beancount +0 -0
  94. {tariochbctools-1.0.1 → tariochbctools-1.1.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: tariochbctools
3
- Version: 1.0.1
3
+ Version: 1.1.1
4
4
  Summary: Importers, plugins and price fetchers for Beancount
5
5
  Home-page: https://github.com/tarioch/beancounttools/
6
6
  Author: Patrick Ruckstuhl
@@ -10,6 +10,7 @@ from beancount.core.number import MISSING, D
10
10
  from dateutil.parser import parse
11
11
  from dateutil.relativedelta import relativedelta
12
12
 
13
+ from tariochbctools.importers.general.deduplication import ReferenceDuplicatesComparator
13
14
  from tariochbctools.importers.general.priceLookup import PriceLookup
14
15
 
15
16
 
@@ -166,3 +167,5 @@ class Importer(beangulp.Importer):
166
167
  return data.Transaction(
167
168
  meta, date, "*", "", narration, data.EMPTY_SET, data.EMPTY_SET, postings
168
169
  )
170
+
171
+ cmp = ReferenceDuplicatesComparator()
@@ -6,6 +6,7 @@ import yaml
6
6
  from beancount.core import amount, data
7
7
  from beancount.core.number import D
8
8
 
9
+ from tariochbctools.importers.general.deduplication import ReferenceDuplicatesComparator
9
10
  from tariochbctools.importers.general.priceLookup import PriceLookup
10
11
 
11
12
 
@@ -66,3 +67,5 @@ class Importer(beangulp.Importer):
66
67
  entries.append(entry)
67
68
 
68
69
  return entries
70
+
71
+ cmp = ReferenceDuplicatesComparator()
@@ -0,0 +1,14 @@
1
+ class ReferenceDuplicatesComparator:
2
+ def __init__(self, refs=["ref"]):
3
+ self.refs = refs
4
+
5
+ def __call__(self, entry1, entry2):
6
+ entry1Refs = set()
7
+ entry2Refs = set()
8
+ for ref in self.refs:
9
+ if ref in entry1.meta:
10
+ entry1Refs.add(entry1.meta[ref])
11
+ if ref in entry2.meta:
12
+ entry2Refs.add(entry2.meta[ref])
13
+
14
+ return entry1Refs & entry2Refs
@@ -6,6 +6,8 @@ import mt940
6
6
  from beancount.core import amount, data
7
7
  from beancount.core.number import D
8
8
 
9
+ from tariochbctools.importers.general.deduplication import ReferenceDuplicatesComparator
10
+
9
11
 
10
12
  class Importer(beangulp.Importer):
11
13
  """An importer for MT940 files."""
@@ -60,6 +62,8 @@ class Importer(beangulp.Importer):
60
62
 
61
63
  return entries
62
64
 
65
+ cmp = ReferenceDuplicatesComparator()
66
+
63
67
  def prepare_payee(self, trxdata: dict[str, Any]) -> str:
64
68
  return ""
65
69
 
@@ -7,6 +7,8 @@ import yaml
7
7
  from beancount.core import amount, data
8
8
  from beancount.core.number import D
9
9
 
10
+ from tariochbctools.importers.general.deduplication import ReferenceDuplicatesComparator
11
+
10
12
 
11
13
  class HttpServiceException(Exception):
12
14
  pass
@@ -105,3 +107,5 @@ class Importer(beangulp.Importer):
105
107
  entries.append(entry)
106
108
 
107
109
  return entries
110
+
111
+ cmp = ReferenceDuplicatesComparator(["nordref"])
@@ -15,6 +15,8 @@ from beancount.core import amount, data
15
15
  from beancount.core.number import D
16
16
  from dateutil.relativedelta import relativedelta
17
17
 
18
+ from tariochbctools.importers.general.deduplication import ReferenceDuplicatesComparator
19
+
18
20
  http = urllib3.PoolManager()
19
21
 
20
22
 
@@ -183,3 +185,5 @@ class Importer(beangulp.Importer):
183
185
  entries.append(entry)
184
186
 
185
187
  return entries
188
+
189
+ cmp = ReferenceDuplicatesComparator()
@@ -8,6 +8,8 @@ from beancount.core import amount, data
8
8
  from beancount.core.number import D
9
9
  from dateutil.parser import parse
10
10
 
11
+ from tariochbctools.importers.general.deduplication import ReferenceDuplicatesComparator
12
+
11
13
 
12
14
  class Importer(beangulp.Importer):
13
15
  """An importer for Bank Cler ZAK PDF files files."""
@@ -127,3 +129,5 @@ class Importer(beangulp.Importer):
127
129
  entries.append(self.createBalanceEntry(filepath, date, saldo))
128
130
 
129
131
  return entries
132
+
133
+ cmp = ReferenceDuplicatesComparator(["zakref"])
@@ -13,7 +13,11 @@ def generate(entries, options_map, baseCcy):
13
13
 
14
14
  additionalEntries = []
15
15
  for entry in entries:
16
- if isinstance(entry, data.Price) and entry.amount.currency != baseCcy:
16
+ if (
17
+ isinstance(entry, data.Price)
18
+ and entry.amount.currency != baseCcy
19
+ and entry.currency != baseCcy
20
+ ):
17
21
  fxTuple = tuple([entry.amount.currency, baseCcy])
18
22
  fxRate = prices.get_price(priceMap, fxTuple, entry.date)
19
23
  if fxRate[1] and not _alreadyExistingPrice(
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: tariochbctools
3
- Version: 1.0.1
3
+ Version: 1.1.1
4
4
  Summary: Importers, plugins and price fetchers for Beancount
5
5
  Home-page: https://github.com/tarioch/beancounttools/
6
6
  Author: Patrick Ruckstuhl
@@ -36,6 +36,7 @@ src/tariochbctools/importers/blockchain/importer.py
36
36
  src/tariochbctools/importers/cembrastatement/__init__.py
37
37
  src/tariochbctools/importers/cembrastatement/importer.py
38
38
  src/tariochbctools/importers/general/__init__.py
39
+ src/tariochbctools/importers/general/deduplication.py
39
40
  src/tariochbctools/importers/general/mailAdapterImporter.py
40
41
  src/tariochbctools/importers/general/mt940importer.py
41
42
  src/tariochbctools/importers/general/priceLookup.py
@@ -84,6 +85,8 @@ tests/tariochbctools/plugins/__init__.py
84
85
  tests/tariochbctools/plugins/test_generate_base_ccy_prices.py
85
86
  tests/tariochbctools/plugins/data/generate_base_ccy_prices/entry_already_exists_expected.beancount
86
87
  tests/tariochbctools/plugins/data/generate_base_ccy_prices/entry_already_exists_input.beancount
88
+ tests/tariochbctools/plugins/data/generate_base_ccy_prices/issue122_expected.beancount
89
+ tests/tariochbctools/plugins/data/generate_base_ccy_prices/issue122_input.beancount
87
90
  tests/tariochbctools/plugins/data/generate_base_ccy_prices/missing_fx_expected.beancount
88
91
  tests/tariochbctools/plugins/data/generate_base_ccy_prices/missing_fx_input.beancount
89
92
  tests/tariochbctools/plugins/data/generate_base_ccy_prices/normal_expected.beancount
@@ -0,0 +1,3 @@
1
+ 2020-01-01 price USD 10 TUG
2
+ 2020-01-01 price USD 0.10 EUR
3
+ 2020-01-01 price EUR 100 TUG
@@ -0,0 +1,4 @@
1
+ plugin "tariochbctools.plugins.generate_base_ccy_prices" "EUR"
2
+
3
+ 2020-01-01 price USD 10 TUG
4
+ 2020-01-01 price EUR 100 TUG
@@ -6,7 +6,9 @@ from beancount import loader
6
6
  from beancount.parser import printer
7
7
 
8
8
 
9
- @pytest.mark.parametrize("testCase", ["normal", "missing_fx", "entry_already_exists"])
9
+ @pytest.mark.parametrize(
10
+ "testCase", ["normal", "missing_fx", "entry_already_exists", "issue122"]
11
+ )
10
12
  def test_data(testCase):
11
13
  dataDir = os.path.join(
12
14
  os.path.dirname(__file__), "data", "generate_base_ccy_prices"
File without changes
File without changes
File without changes