rustfava 0.1.0__py3-none-any.whl

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 (187) hide show
  1. rustfava/__init__.py +30 -0
  2. rustfava/_ctx_globals_class.py +55 -0
  3. rustfava/api_models.py +36 -0
  4. rustfava/application.py +534 -0
  5. rustfava/beans/__init__.py +6 -0
  6. rustfava/beans/abc.py +327 -0
  7. rustfava/beans/account.py +79 -0
  8. rustfava/beans/create.py +377 -0
  9. rustfava/beans/flags.py +20 -0
  10. rustfava/beans/funcs.py +38 -0
  11. rustfava/beans/helpers.py +52 -0
  12. rustfava/beans/ingest.py +75 -0
  13. rustfava/beans/load.py +31 -0
  14. rustfava/beans/prices.py +151 -0
  15. rustfava/beans/protocols.py +82 -0
  16. rustfava/beans/str.py +454 -0
  17. rustfava/beans/types.py +63 -0
  18. rustfava/cli.py +187 -0
  19. rustfava/context.py +13 -0
  20. rustfava/core/__init__.py +729 -0
  21. rustfava/core/accounts.py +161 -0
  22. rustfava/core/attributes.py +145 -0
  23. rustfava/core/budgets.py +207 -0
  24. rustfava/core/charts.py +301 -0
  25. rustfava/core/commodities.py +37 -0
  26. rustfava/core/conversion.py +229 -0
  27. rustfava/core/documents.py +87 -0
  28. rustfava/core/extensions.py +132 -0
  29. rustfava/core/fava_options.py +255 -0
  30. rustfava/core/file.py +542 -0
  31. rustfava/core/filters.py +484 -0
  32. rustfava/core/group_entries.py +97 -0
  33. rustfava/core/ingest.py +509 -0
  34. rustfava/core/inventory.py +167 -0
  35. rustfava/core/misc.py +105 -0
  36. rustfava/core/module_base.py +18 -0
  37. rustfava/core/number.py +106 -0
  38. rustfava/core/query.py +180 -0
  39. rustfava/core/query_shell.py +301 -0
  40. rustfava/core/tree.py +265 -0
  41. rustfava/core/watcher.py +219 -0
  42. rustfava/ext/__init__.py +232 -0
  43. rustfava/ext/auto_commit.py +61 -0
  44. rustfava/ext/portfolio_list/PortfolioList.js +34 -0
  45. rustfava/ext/portfolio_list/__init__.py +29 -0
  46. rustfava/ext/portfolio_list/templates/PortfolioList.html +15 -0
  47. rustfava/ext/rustfava_ext_test/RustfavaExtTest.js +42 -0
  48. rustfava/ext/rustfava_ext_test/__init__.py +207 -0
  49. rustfava/ext/rustfava_ext_test/templates/RustfavaExtTest.html +45 -0
  50. rustfava/ext/rustfava_ext_test/templates/RustfavaExtTestInclude.html +1 -0
  51. rustfava/help/__init__.py +15 -0
  52. rustfava/help/_index.md +29 -0
  53. rustfava/help/beancount_syntax.md +156 -0
  54. rustfava/help/budgets.md +31 -0
  55. rustfava/help/conversion.md +29 -0
  56. rustfava/help/extensions.md +111 -0
  57. rustfava/help/features.md +179 -0
  58. rustfava/help/filters.md +103 -0
  59. rustfava/help/import.md +27 -0
  60. rustfava/help/options.md +289 -0
  61. rustfava/helpers.py +30 -0
  62. rustfava/internal_api.py +221 -0
  63. rustfava/json_api.py +952 -0
  64. rustfava/plugins/__init__.py +3 -0
  65. rustfava/plugins/link_documents.py +107 -0
  66. rustfava/plugins/tag_discovered_documents.py +44 -0
  67. rustfava/py.typed +0 -0
  68. rustfava/rustledger/__init__.py +31 -0
  69. rustfava/rustledger/constants.py +76 -0
  70. rustfava/rustledger/engine.py +485 -0
  71. rustfava/rustledger/loader.py +273 -0
  72. rustfava/rustledger/options.py +202 -0
  73. rustfava/rustledger/query.py +331 -0
  74. rustfava/rustledger/types.py +830 -0
  75. rustfava/serialisation.py +220 -0
  76. rustfava/static/app.css +2988 -0
  77. rustfava/static/app.css.map +7 -0
  78. rustfava/static/app.js +12854 -0
  79. rustfava/static/app.js.map +7 -0
  80. rustfava/static/beancount-JFV44ZVZ.css +5 -0
  81. rustfava/static/beancount-JFV44ZVZ.css.map +7 -0
  82. rustfava/static/beancount-VTTKRGSK.js +4642 -0
  83. rustfava/static/beancount-VTTKRGSK.js.map +7 -0
  84. rustfava/static/bql-MGFRUMBP.js +333 -0
  85. rustfava/static/bql-MGFRUMBP.js.map +7 -0
  86. rustfava/static/chunk-E7ZF4ASL.js +23061 -0
  87. rustfava/static/chunk-E7ZF4ASL.js.map +7 -0
  88. rustfava/static/chunk-V24TLQHT.js +12673 -0
  89. rustfava/static/chunk-V24TLQHT.js.map +7 -0
  90. rustfava/static/favicon.ico +0 -0
  91. rustfava/static/fira-mono-cyrillic-400-normal-BLAGXRCE.woff2 +0 -0
  92. rustfava/static/fira-mono-cyrillic-500-normal-EN7JUAAW.woff2 +0 -0
  93. rustfava/static/fira-mono-cyrillic-ext-400-normal-EX7VARTS.woff2 +0 -0
  94. rustfava/static/fira-mono-cyrillic-ext-500-normal-ZDPTUPRR.woff2 +0 -0
  95. rustfava/static/fira-mono-greek-400-normal-COGHKMOA.woff2 +0 -0
  96. rustfava/static/fira-mono-greek-500-normal-4EN2PKZT.woff2 +0 -0
  97. rustfava/static/fira-mono-greek-ext-400-normal-DYEQIJH7.woff2 +0 -0
  98. rustfava/static/fira-mono-greek-ext-500-normal-SG73CVKQ.woff2 +0 -0
  99. rustfava/static/fira-mono-latin-400-normal-NA3VLV7E.woff2 +0 -0
  100. rustfava/static/fira-mono-latin-500-normal-YC77GFWD.woff2 +0 -0
  101. rustfava/static/fira-mono-latin-ext-400-normal-DIKTZ5PW.woff2 +0 -0
  102. rustfava/static/fira-mono-latin-ext-500-normal-ZWY4UO4V.woff2 +0 -0
  103. rustfava/static/fira-mono-symbols2-400-normal-UITXT77Q.woff2 +0 -0
  104. rustfava/static/fira-mono-symbols2-500-normal-VWPC2EFN.woff2 +0 -0
  105. rustfava/static/fira-sans-cyrillic-400-normal-KLQMBCA6.woff2 +0 -0
  106. rustfava/static/fira-sans-cyrillic-500-normal-NFG7UD6J.woff2 +0 -0
  107. rustfava/static/fira-sans-cyrillic-ext-400-normal-GWO44OPC.woff2 +0 -0
  108. rustfava/static/fira-sans-cyrillic-ext-500-normal-SP47E5SC.woff2 +0 -0
  109. rustfava/static/fira-sans-greek-400-normal-UMQBTLC3.woff2 +0 -0
  110. rustfava/static/fira-sans-greek-500-normal-4ZKHN4FQ.woff2 +0 -0
  111. rustfava/static/fira-sans-greek-ext-400-normal-O2DVJAJZ.woff2 +0 -0
  112. rustfava/static/fira-sans-greek-ext-500-normal-SK6GNWGO.woff2 +0 -0
  113. rustfava/static/fira-sans-latin-400-normal-OYYTPMAV.woff2 +0 -0
  114. rustfava/static/fira-sans-latin-500-normal-SMQPZW5A.woff2 +0 -0
  115. rustfava/static/fira-sans-latin-ext-400-normal-OAUP3WK5.woff2 +0 -0
  116. rustfava/static/fira-sans-latin-ext-500-normal-LY3YDR5Y.woff2 +0 -0
  117. rustfava/static/fira-sans-vietnamese-400-normal-OBMQ72MR.woff2 +0 -0
  118. rustfava/static/fira-sans-vietnamese-500-normal-Y4NZR5EU.woff2 +0 -0
  119. rustfava/static/source-code-pro-cyrillic-400-normal-TO22V6M3.woff2 +0 -0
  120. rustfava/static/source-code-pro-cyrillic-500-normal-OGBWWWYW.woff2 +0 -0
  121. rustfava/static/source-code-pro-cyrillic-ext-400-normal-XH44UCIA.woff2 +0 -0
  122. rustfava/static/source-code-pro-cyrillic-ext-500-normal-3Z6MMVM6.woff2 +0 -0
  123. rustfava/static/source-code-pro-greek-400-normal-OUXXUQWK.woff2 +0 -0
  124. rustfava/static/source-code-pro-greek-500-normal-JA2Z5UXO.woff2 +0 -0
  125. rustfava/static/source-code-pro-greek-ext-400-normal-WCDKMX7U.woff2 +0 -0
  126. rustfava/static/source-code-pro-greek-ext-500-normal-ZHVI4VKW.woff2 +0 -0
  127. rustfava/static/source-code-pro-latin-400-normal-QOGTXED5.woff2 +0 -0
  128. rustfava/static/source-code-pro-latin-500-normal-X57QEOLQ.woff2 +0 -0
  129. rustfava/static/source-code-pro-latin-ext-400-normal-QXC74NBF.woff2 +0 -0
  130. rustfava/static/source-code-pro-latin-ext-500-normal-QGOY7MTT.woff2 +0 -0
  131. rustfava/static/source-code-pro-vietnamese-400-normal-NPDCDTBA.woff2 +0 -0
  132. rustfava/static/source-code-pro-vietnamese-500-normal-M6PJKTR5.woff2 +0 -0
  133. rustfava/static/tree-sitter-beancount-MLXFQBZ5.wasm +0 -0
  134. rustfava/static/web-tree-sitter-RNOQ6E74.wasm +0 -0
  135. rustfava/template_filters.py +64 -0
  136. rustfava/templates/_journal_table.html +156 -0
  137. rustfava/templates/_layout.html +26 -0
  138. rustfava/templates/_query_table.html +88 -0
  139. rustfava/templates/beancount_file +18 -0
  140. rustfava/templates/help.html +23 -0
  141. rustfava/templates/macros/_account_macros.html +5 -0
  142. rustfava/templates/macros/_commodity_macros.html +13 -0
  143. rustfava/translations/bg/LC_MESSAGES/messages.mo +0 -0
  144. rustfava/translations/bg/LC_MESSAGES/messages.po +618 -0
  145. rustfava/translations/ca/LC_MESSAGES/messages.mo +0 -0
  146. rustfava/translations/ca/LC_MESSAGES/messages.po +618 -0
  147. rustfava/translations/de/LC_MESSAGES/messages.mo +0 -0
  148. rustfava/translations/de/LC_MESSAGES/messages.po +618 -0
  149. rustfava/translations/es/LC_MESSAGES/messages.mo +0 -0
  150. rustfava/translations/es/LC_MESSAGES/messages.po +619 -0
  151. rustfava/translations/fa/LC_MESSAGES/messages.mo +0 -0
  152. rustfava/translations/fa/LC_MESSAGES/messages.po +618 -0
  153. rustfava/translations/fr/LC_MESSAGES/messages.mo +0 -0
  154. rustfava/translations/fr/LC_MESSAGES/messages.po +618 -0
  155. rustfava/translations/ja/LC_MESSAGES/messages.mo +0 -0
  156. rustfava/translations/ja/LC_MESSAGES/messages.po +618 -0
  157. rustfava/translations/nl/LC_MESSAGES/messages.mo +0 -0
  158. rustfava/translations/nl/LC_MESSAGES/messages.po +617 -0
  159. rustfava/translations/pt/LC_MESSAGES/messages.mo +0 -0
  160. rustfava/translations/pt/LC_MESSAGES/messages.po +617 -0
  161. rustfava/translations/pt_BR/LC_MESSAGES/messages.mo +0 -0
  162. rustfava/translations/pt_BR/LC_MESSAGES/messages.po +618 -0
  163. rustfava/translations/ru/LC_MESSAGES/messages.mo +0 -0
  164. rustfava/translations/ru/LC_MESSAGES/messages.po +617 -0
  165. rustfava/translations/sk/LC_MESSAGES/messages.mo +0 -0
  166. rustfava/translations/sk/LC_MESSAGES/messages.po +623 -0
  167. rustfava/translations/sv/LC_MESSAGES/messages.mo +0 -0
  168. rustfava/translations/sv/LC_MESSAGES/messages.po +618 -0
  169. rustfava/translations/uk/LC_MESSAGES/messages.mo +0 -0
  170. rustfava/translations/uk/LC_MESSAGES/messages.po +618 -0
  171. rustfava/translations/zh/LC_MESSAGES/messages.mo +0 -0
  172. rustfava/translations/zh/LC_MESSAGES/messages.po +618 -0
  173. rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.mo +0 -0
  174. rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.po +618 -0
  175. rustfava/util/__init__.py +157 -0
  176. rustfava/util/date.py +576 -0
  177. rustfava/util/excel.py +118 -0
  178. rustfava/util/ranking.py +79 -0
  179. rustfava/util/sets.py +18 -0
  180. rustfava/util/unreachable.py +20 -0
  181. rustfava-0.1.0.dist-info/METADATA +102 -0
  182. rustfava-0.1.0.dist-info/RECORD +187 -0
  183. rustfava-0.1.0.dist-info/WHEEL +5 -0
  184. rustfava-0.1.0.dist-info/entry_points.txt +2 -0
  185. rustfava-0.1.0.dist-info/licenses/AUTHORS +11 -0
  186. rustfava-0.1.0.dist-info/licenses/LICENSE +21 -0
  187. rustfava-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,79 @@
1
+ """Ranking utilities."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import math
6
+ from typing import TYPE_CHECKING
7
+
8
+ if TYPE_CHECKING: # pragma: no cover
9
+ import datetime
10
+ from collections.abc import Sequence
11
+
12
+ ZERO = 0.0
13
+ DEFAULT_RATE = math.log(2) * 1 / 365
14
+
15
+
16
+ class ExponentialDecayRanker:
17
+ """Rank a list by exponential decay.
18
+
19
+ Maintains scores for the items in a list. We can think of this as the sum
20
+ of all 'likes', where the value of a 'like' starts at 1 and decays
21
+ exponentially. So the current score would be given by (where `t` is the
22
+ current time and `l` is the time of the 'like')
23
+
24
+ s = Σ exp(-RATE * (t - l))
25
+
26
+ As only the relative order on the items is relevant, we can multiply all
27
+ scores by exp(RATE * t) and so we need to compute the following
28
+ score:
29
+
30
+ s = Σ exp(RATE * l)
31
+
32
+ To avoid huge numbers, we actually compute and store the logarithm of that
33
+ sum.
34
+
35
+ Args:
36
+ list_: If given, this list is ranked is by ``.sort()`` otherwise all
37
+ items with at least one 'like' will be ranked.
38
+ rate: This sets the rate of decay. ``1/rate`` will be the time (in
39
+ days) that it takes for the value of a 'like' to decrease by
40
+ ``1/e``. The default rate is set to ``math.log(2) * 1/365`` so
41
+ that a 'like' from a year ago will count half as much as one from
42
+ today.
43
+ """
44
+
45
+ __slots__ = ("list", "rate", "scores")
46
+
47
+ def __init__(
48
+ self,
49
+ list_: Sequence[str] | None = None,
50
+ rate: float = DEFAULT_RATE,
51
+ ) -> None:
52
+ self.list = list_
53
+ self.rate = rate
54
+ # We don't need to start with float('-inf') here as only the relative
55
+ # scores matter.
56
+ self.scores: dict[str, float] = {}
57
+
58
+ def update(self, item: str, date: datetime.date) -> None:
59
+ """Add 'like' for item.
60
+
61
+ Args:
62
+ item: An item in the list that is being ranked.
63
+ date: The date on which the item has been liked.
64
+ """
65
+ score = self.get(item)
66
+ time = date.toordinal()
67
+ higher = max(score, time * self.rate)
68
+ lower = min(score, time * self.rate)
69
+ self.scores[item] = higher + math.log1p(math.exp(lower - higher))
70
+
71
+ def get(self, item: str) -> float:
72
+ """Get the current score for an item, or zero."""
73
+ return self.scores.get(item, ZERO)
74
+
75
+ def sort(self) -> list[str]:
76
+ """Return items sorted by rank."""
77
+ if self.list is None:
78
+ return sorted(self.scores.keys(), key=self.get, reverse=True)
79
+ return sorted(self.list, key=self.get, reverse=True)
rustfava/util/sets.py ADDED
@@ -0,0 +1,18 @@
1
+ """Utils for Python sets."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ if TYPE_CHECKING: # pragma: no cover
8
+ from collections.abc import Set as AbstractSet
9
+
10
+
11
+ def add_to_set(set_: AbstractSet[str] | None, new: str) -> set[str]:
12
+ """Add an entry to a set (or create it if doesn't exist).
13
+
14
+ Args:
15
+ set_: The (optional) set to add an element to.
16
+ new: The string to add to the set.
17
+ """
18
+ return set(set_).union([new]) if set_ is not None else {new}
@@ -0,0 +1,20 @@
1
+ """Type checking helper for unreachable code."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ if TYPE_CHECKING: # pragma: no cover
8
+ from typing import Never
9
+
10
+
11
+ class UnreachableCodeAssertionError(AssertionError):
12
+ """Expected code to be unreachable."""
13
+
14
+ def __init__(self) -> None: # pragma: no cover
15
+ super().__init__("Expected code to be unreachable")
16
+
17
+
18
+ def assert_never(_: Never) -> Never: # pragma: no cover
19
+ """Assert that this code is unreachable."""
20
+ raise UnreachableCodeAssertionError
@@ -0,0 +1,102 @@
1
+ Metadata-Version: 2.4
2
+ Name: rustfava
3
+ Version: 0.1.0
4
+ Summary: Web interface for the accounting tool rustledger.
5
+ Author-email: Dominik Aumayr <dominik@aumayr.name>
6
+ Maintainer-email: Jakob Schnitzer <mail@jakobschnitzer.de>
7
+ License-Expression: MIT
8
+ Project-URL: Repository, https://github.com/rustledger/rustfava
9
+ Project-URL: Documentation, https://rustledger.github.io/rustfava
10
+ Project-URL: Issues, https://github.com/rustledger/rustfava/issues
11
+ Project-URL: Changelog, https://github.com/rustledger/rustfava/releases
12
+ Keywords: rustfava,fava,beancount,accounting,rustledger
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Environment :: Web Environment
15
+ Classifier: Framework :: Flask
16
+ Classifier: Intended Audience :: Education
17
+ Classifier: Intended Audience :: End Users/Desktop
18
+ Classifier: Intended Audience :: Financial and Insurance Industry
19
+ Classifier: Intended Audience :: Information Technology
20
+ Classifier: Natural Language :: English
21
+ Classifier: Programming Language :: JavaScript
22
+ Classifier: Programming Language :: Python :: 3 :: Only
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
25
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
26
+ Classifier: Topic :: Office/Business :: Financial :: Accounting
27
+ Classifier: Topic :: Office/Business :: Financial :: Investment
28
+ Requires-Python: >=3.13
29
+ Description-Content-Type: text/markdown
30
+ License-File: LICENSE
31
+ License-File: AUTHORS
32
+ Requires-Dist: Babel<3,>=2.11
33
+ Requires-Dist: Flask-Babel<5,>=3
34
+ Requires-Dist: Flask<4,>=2.2
35
+ Requires-Dist: Jinja2<4,>=3
36
+ Requires-Dist: Werkzeug<4,>=2.2
37
+ Requires-Dist: beangulp>=0.1
38
+ Requires-Dist: cheroot<12,>=8
39
+ Requires-Dist: click<9,>=7
40
+ Requires-Dist: markdown2<3,>=2.3.0
41
+ Requires-Dist: ply>=3.11
42
+ Requires-Dist: pydantic>=2.0
43
+ Requires-Dist: watchfiles>=0.20.0
44
+ Provides-Extra: excel
45
+ Requires-Dist: pyexcel>=0.5; extra == "excel"
46
+ Requires-Dist: pyexcel-ods3>=0.5; extra == "excel"
47
+ Requires-Dist: pyexcel-xlsx>=0.5; extra == "excel"
48
+ Provides-Extra: beancount-compat
49
+ Requires-Dist: beancount<4,>=2; extra == "beancount-compat"
50
+ Dynamic: license-file
51
+
52
+ # Rustfava
53
+
54
+ Rustfava is a web interface for the double-entry bookkeeping software
55
+ [rustledger](https://github.com/rustledger/rustledger), a Rust-based
56
+ implementation of the Beancount format.
57
+
58
+ This is a fork of [Fava](https://github.com/beancount/fava) that replaces the
59
+ Python beancount parser with rustledger, compiled to WebAssembly for faster
60
+ parsing and processing.
61
+
62
+ ## Getting Started
63
+
64
+ ### Option 1: Desktop App (Recommended)
65
+
66
+ Download the desktop app from [GitHub Releases](https://github.com/rustledger/rustfava/releases):
67
+
68
+ - **macOS**: `rustfava_x.x.x_universal.dmg`
69
+ - **Windows**: `rustfava_x.x.x_x64-setup.exe`
70
+ - **Linux**: `rustfava_x.x.x_amd64.AppImage`
71
+
72
+ Double-click to launch, then open your `.beancount` file.
73
+
74
+ ### Option 2: Docker
75
+
76
+ Run the server in a container:
77
+
78
+ ```bash
79
+ docker run -p 5000:5000 -v /path/to/ledger:/data ghcr.io/rustledger/rustfava /data/main.beancount
80
+ ```
81
+
82
+ Then visit [http://localhost:5000](http://localhost:5000).
83
+
84
+ ### Option 3: uv install
85
+
86
+ For developers or advanced users. Requires Python 3.13+ and [wasmtime](https://wasmtime.dev/):
87
+
88
+ ```bash
89
+ uv tool install rustfava
90
+ rustfava ledger.beancount
91
+ ```
92
+
93
+ Then visit [http://localhost:5000](http://localhost:5000).
94
+
95
+ ## Development
96
+
97
+ See the repository for development instructions. Contributions are welcome!
98
+
99
+ ## Links
100
+
101
+ - Source: https://github.com/rustledger/rustfava
102
+ - Documentation: https://rustledger.github.io/rustfava/
@@ -0,0 +1,187 @@
1
+ rustfava/__init__.py,sha256=7XI4ubkePWCoW1tPgNvAW0joObipdFNAmiqXaUdjBrM,452
2
+ rustfava/_ctx_globals_class.py,sha256=9yAFZesTGipq9BlsjqQ-UoZGSmyVJccuwLkSqraKHaE,1705
3
+ rustfava/api_models.py,sha256=vrBOctgUM1VI1BhhqAmvrVCMKcNRW5kHQMIVzsTGTlw,1052
4
+ rustfava/application.py,sha256=-6SFXtjl0f6wdBTLxLzEvVSJNbfHJsPBbST4Jc4cWpc,18797
5
+ rustfava/cli.py,sha256=IcUAYdno990iujz3NIBZp_n3qrX7DS6xTcWmewlmFdM,5406
6
+ rustfava/context.py,sha256=K4KZ0q-kqwoJRGCHfX7Nou48a6_8WtxLse-vmlvNjTY,299
7
+ rustfava/helpers.py,sha256=8JJ6MJMY8uzntcF1x-XsyNf9aGfvgkkmMQCD8GJghCE,687
8
+ rustfava/internal_api.py,sha256=SPp2q8WWHCSTbI19jzlh7GQ6nDbAy9Dpx6U7NuU4bvg,6458
9
+ rustfava/json_api.py,sha256=9Hf70scaJX9oWRXIkJghuDPaQOBfRPzK5PeW0pRUjuI,27314
10
+ rustfava/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ rustfava/serialisation.py,sha256=K4wK0iXCWJ0iCpY-vZ_2RtoyGyZq971DSkQ_QPNGpxY,7105
12
+ rustfava/template_filters.py,sha256=OXXKdxq8re9l7XsnldMV_saz1aKMBR6rBS2MeHqtOaY,1624
13
+ rustfava/beans/__init__.py,sha256=q1REpeo3Kqd-9CXtYei-nY4GTlcmuGQeclQbRtkED0s,172
14
+ rustfava/beans/abc.py,sha256=Ahiq1OiTyBuAEH6rjcOhkxnKLzWCu9vz3wztqGGARU8,7108
15
+ rustfava/beans/account.py,sha256=ht2Q1b3VjxP6lN6uUUktBzwI49ialX5z9BkfwzVwZzc,2268
16
+ rustfava/beans/create.py,sha256=tQaiiXTtMervHhCUw26NJ0EiFOGAdQUQMzTpGvxqXUo,11459
17
+ rustfava/beans/flags.py,sha256=YXqFICdwLjXaZniVZkE_ysCzQdgf1DdN673FXFn2maU,377
18
+ rustfava/beans/funcs.py,sha256=UOD2Zl8a22pzl-OOQD_mqSkOQO6bQI7qF3qsrF16ees,1481
19
+ rustfava/beans/helpers.py,sha256=iuUxdQ_nA7x2vC_MkJDnXoGf6JBi9C2bINut2PNEEEI,1568
20
+ rustfava/beans/ingest.py,sha256=pDFplJ6BuR17uizZgiJ4hhbk72FpPUQrLoIdCyNDAwg,2116
21
+ rustfava/beans/load.py,sha256=4VTGFW_Dil_HcXcXpmojorGuWXeF7IlfO_Cc1UFS4Nc,910
22
+ rustfava/beans/prices.py,sha256=jhzI6PDdM2t6-thD9US9IudMI6OIfPW4mzZO4SczysM,4711
23
+ rustfava/beans/protocols.py,sha256=39X6MpXYk-EAkSfIBQNRN9DnrbmChbOwjfwTCPCfsqk,1789
24
+ rustfava/beans/str.py,sha256=OIxaYFyhgy5pa7DR-6sjTKcwepTAG8fCsYAeUvmI8Q0,14085
25
+ rustfava/beans/types.py,sha256=bL25CGzlwzaF0rrTM-ttySoVrTqKJfx5ZkhVMXLP4Os,1622
26
+ rustfava/core/__init__.py,sha256=5-6hAa3q6TtrIPBvN5bFhyNxoNyPU3w675aYErySUw0,24120
27
+ rustfava/core/accounts.py,sha256=T3Eo-0vhPX5oaRFfG_CgzxXAgT9ZlZNcdu0KbETJYjs,5322
28
+ rustfava/core/attributes.py,sha256=xnn-gx9hXiiHvJpiGEpYlm_0mkXneELAcMWH8zbc5B0,5068
29
+ rustfava/core/budgets.py,sha256=xXPEgPIb4yb9ZzHYjmX64I2atrAUYX4hVNJEtvWp7fc,5829
30
+ rustfava/core/charts.py,sha256=O9E2psopmOJMaMmxzqfiV0RG_siyFvRZfhPv2_JXfIo,9658
31
+ rustfava/core/commodities.py,sha256=znmPq4HrugVYgeP5j4g1bN6EGm7ytR05rETwmaAT6pY,1274
32
+ rustfava/core/conversion.py,sha256=JphwmxMJk1XpzBp1V59JW8TgOzSqRyziUNaSR_cXmnI,6723
33
+ rustfava/core/documents.py,sha256=LyeFrwLeTWfIp5aNi5NqM6ZbElMqR6RdkOjOys0va8s,2534
34
+ rustfava/core/extensions.py,sha256=4K4vdjLy9Gc9BTNRC_jJMSnIrQvj_JAhE1a3KmHo9Lo,4551
35
+ rustfava/core/fava_options.py,sha256=tltcZ2jDG-sAeRFe2_ijmPKT9lJQGFOlmm_Nu3JJNg0,8614
36
+ rustfava/core/file.py,sha256=gNyOOED7JVKQ7V2yY_0Lw8BuW5XzNgi9cUbiyQkJ2y4,17202
37
+ rustfava/core/filters.py,sha256=lfJbUHloDcubVV0BjAjFSYcC3Tr_IWPLbwQS0GcOK18,13265
38
+ rustfava/core/group_entries.py,sha256=5r3p4efCMbkApErq8F30T061tG1jLvTWHi9L_eLnRG4,2536
39
+ rustfava/core/ingest.py,sha256=Iw4NPnaEB4ix9LPPYLn56nNjP56jckqW7B9XXebcTzk,15143
40
+ rustfava/core/inventory.py,sha256=B5agnG8ugntlsQIxDKcwObXxvXO608M-tZNh_yv0y4E,5147
41
+ rustfava/core/misc.py,sha256=1sQb-FaKAZFqLBnm2m-ZkDjuhgJLU5pEbtdoCxG83DQ,2910
42
+ rustfava/core/module_base.py,sha256=rjtSVV8BjT7klpjgXHtLu4A8hE8iQbZvf5Gs_bWotZI,459
43
+ rustfava/core/number.py,sha256=_OgBF4y-n5OVk11NLHtDpTvMIxqfwChcXGixeV1ax5I,3316
44
+ rustfava/core/query.py,sha256=ygbgV6n0v2aQlJaVGJDP3h8fnKI1IaBwt11Jim4g780,4066
45
+ rustfava/core/query_shell.py,sha256=BtCZpHCLZ7aBc8kIopZyh1E_MPUUdcH_ozmSABBEqdE,10032
46
+ rustfava/core/tree.py,sha256=1Jb8ORH1PGaDhkO9jd4SPVtg9UhcEdyXQXXDjGOQYuI,8349
47
+ rustfava/core/watcher.py,sha256=qKf38Y4Yt7tbHqWyUgLHt4OssxW6xRFhT-HPidDvsv4,6982
48
+ rustfava/ext/__init__.py,sha256=Rmd7TbMOmo8Hq9Otm4uz7qySVIvR6k5gkstOMEuEw78,7011
49
+ rustfava/ext/auto_commit.py,sha256=1nB2ZcutDLIAcv42N0jAtFF0wM53aWQ53wRlzwgK29s,2043
50
+ rustfava/ext/portfolio_list/PortfolioList.js,sha256=IBDLXgXnnUDw3oYXk2zxw1EMSUMQ00GLfkIgSI_9AO0,1184
51
+ rustfava/ext/portfolio_list/__init__.py,sha256=wHAAqLDmIHywttfdqFoDw8ZTMdcB47Iny8o8ZjvmJos,826
52
+ rustfava/ext/portfolio_list/templates/PortfolioList.html,sha256=KKNp-WGHOT2qUVXRY-QnwXgS8LKb4azPTF7pD6rDBWI,600
53
+ rustfava/ext/rustfava_ext_test/RustfavaExtTest.js,sha256=e-YxrL9w2krMNUmlNCFFKpE6kTnT8lcMGCe0W0zh7sM,1476
54
+ rustfava/ext/rustfava_ext_test/__init__.py,sha256=ueP8Sr8rkmwICq9NbMC_2N3vD_CvQGMI_ZDvMbb1t4Y,6212
55
+ rustfava/ext/rustfava_ext_test/templates/RustfavaExtTest.html,sha256=qoyZfkbeGknkXS0ypkntM8LpGnzT9X31A-aAUUgZSck,1753
56
+ rustfava/ext/rustfava_ext_test/templates/RustfavaExtTestInclude.html,sha256=yCzzf9ByEh7_PtyX7s5Flqpz2mTGLqiIbCEAgbr1IZY,29
57
+ rustfava/help/__init__.py,sha256=nFSnj_6UnyyACURLTEd57kDw0X4UMYrLQBWqvXP46gg,372
58
+ rustfava/help/_index.md,sha256=34DyhTvp2HiMrkfGf8wyXdYvKdg1d65eH_e_L6-9_RM,1373
59
+ rustfava/help/beancount_syntax.md,sha256=CBHUxPWmB6N1ELU511QperkNvOSkUYCcHaxAmJym6NU,5637
60
+ rustfava/help/budgets.md,sha256=2PT-lZm8SoOQY09Uij2y61Lt5VdVffMb1LVvzxKqSrQ,1517
61
+ rustfava/help/conversion.md,sha256=E-WPJWp1i8K-w0GAiljWnas4GzDpoUQCMyS4cnBNVy8,1688
62
+ rustfava/help/extensions.md,sha256=RJ5Eg8Chv_dh174txebXym04fJCxGoqmSsYXJpluXLE,4276
63
+ rustfava/help/features.md,sha256=jutmOCoRluZ77xdI4kupfrgdCtFN6_hI9qxkMYmKX48,6927
64
+ rustfava/help/filters.md,sha256=gUTCgdvrNDoQ81QH0mIRHxCYeVLvzQXew4ygvTfm1uw,5537
65
+ rustfava/help/import.md,sha256=kxYmgxGQLNjFJ9dyobe_DNTwQb80UuIO-BSLJJ_zfLs,1447
66
+ rustfava/help/options.md,sha256=6p5ifQXuuooK1xc-S9hN65Xnud2649bMNIH5CO-iG0I,9337
67
+ rustfava/plugins/__init__.py,sha256=2A0n66vvMOc6W3hb1NqjuUsL54JJjpH1LaAV3y75d2w,66
68
+ rustfava/plugins/link_documents.py,sha256=NDlx5mptKTbQ6_KI8VYwai-K89uqrqGcsgQLpe-IutM,3611
69
+ rustfava/plugins/tag_discovered_documents.py,sha256=hAewOfF4ewFdPGz4oMEXORdLp4erD9hdXi5sRq3O1ns,1364
70
+ rustfava/rustledger/__init__.py,sha256=nqIQsU5fyEY3S4lWYc1mgFLfU89dKAPTQ-4aPUqPF8A,719
71
+ rustfava/rustledger/constants.py,sha256=jn1Ha5WTmpBgEOZIJsxa00-6QL-gBFkiURL3A27VHDk,1487
72
+ rustfava/rustledger/engine.py,sha256=-jjSj_QPCDy_fT0LVtFqlhJw8EPrr28pewgFv20FIps,15423
73
+ rustfava/rustledger/loader.py,sha256=zM7o0GW7Ibv6K9NnSaHbew_OSj2LQX4E_ceILPIJ0xU,9011
74
+ rustfava/rustledger/options.py,sha256=REWdyy8RI1xa1-XRGury6O5e47aYJJqY9YnxhWAHgjc,7081
75
+ rustfava/rustledger/query.py,sha256=dF3qhAChphFqUIrcy2XaJb1mI-iO9lY6NJpDJ8Ol0G0,10147
76
+ rustfava/rustledger/types.py,sha256=ZC_cLtaM1ETAQOOqmpgX-NGDSD6kfvxKnmyYLoOMPAU,25981
77
+ rustfava/static/app.css,sha256=if2-AQCgMTUxdsDJQejlyTHXwam9e5K6cDBcSx3HCsU,67161
78
+ rustfava/static/app.css.map,sha256=Nhet7SWnCQjDaV479AZgAZholqFQ5kWIb_e7gul8C_g,242434
79
+ rustfava/static/app.js,sha256=D3HL9iIgPb_Oy02Wfwg5B0h75lN2KVOlL2Dw3E0p3PU,422004
80
+ rustfava/static/app.js.map,sha256=sKf28tQ_cOZdWrFGKMzL4Qx1Vzr8A6Z1jnKYD4g-h8w,594509
81
+ rustfava/static/beancount-JFV44ZVZ.css,sha256=jqis7W0I9G78fjhaZ76ZxjNZJD4NQtftRalsiozMjfE,208
82
+ rustfava/static/beancount-JFV44ZVZ.css.map,sha256=0qwVcvyXzx_YUMT0A0lShm3SFbeCx5NfpX1KLLeEztU,505
83
+ rustfava/static/beancount-VTTKRGSK.js,sha256=ILREien-CnY5wiogg9ZXUN7SO3AKNO5kIca530yjS2Y,172601
84
+ rustfava/static/beancount-VTTKRGSK.js.map,sha256=BtnWm5-_szN8OmUbx9-Ks6xMpKNPQYE-_FmW7ouBh8Y,309955
85
+ rustfava/static/bql-MGFRUMBP.js,sha256=bauU-IHBi9NQv5HQ-OHyX5J5cHuBFwFH0w0qimV2r7s,6313
86
+ rustfava/static/bql-MGFRUMBP.js.map,sha256=xGPAzKzUJiuoyGrNVUi8oizUfiWQ8M2XO3nngPN4H_I,12962
87
+ rustfava/static/chunk-E7ZF4ASL.js,sha256=-vO5WvJePY98F7IzOM8QBSg1P2BoFCguuQOdRmLUsJ4,807146
88
+ rustfava/static/chunk-E7ZF4ASL.js.map,sha256=n-Zu-W7n2rPiTTg1WX5e7N3lt7WalUQuaSU1ZYcgioc,1711502
89
+ rustfava/static/chunk-V24TLQHT.js,sha256=Hp-VNjEbKvDt2AWAMqFTfhEAsDI_f9yi5DoufmLPZic,376852
90
+ rustfava/static/chunk-V24TLQHT.js.map,sha256=h093RfwBoVbd5x5h-rM2RP5_CwBa0bfnrtvqpuyogc0,947538
91
+ rustfava/static/favicon.ico,sha256=FWEuFw_v94U3aVd0i2hJKOfYNvw0QeQmYelRFmF2ZFo,2802
92
+ rustfava/static/fira-mono-cyrillic-400-normal-BLAGXRCE.woff2,sha256=YMj-PijS2W06j3WBiF-PWLzreYLdTTTTso3zbZaqtf8,9324
93
+ rustfava/static/fira-mono-cyrillic-500-normal-EN7JUAAW.woff2,sha256=s8xVRH6AnJmcZxAyU_fjzdjioLoi4jtdu5HFXy6UU_0,9332
94
+ rustfava/static/fira-mono-cyrillic-ext-400-normal-EX7VARTS.woff2,sha256=zfaaQ1uaO1xRGVx_3EF2Qus08P8O08GxLg2qsrroGCA,15784
95
+ rustfava/static/fira-mono-cyrillic-ext-500-normal-ZDPTUPRR.woff2,sha256=VwLmFQwEcaSRYH6v9xsv69O4zwIytNMHOAKfjOFLe-I,15732
96
+ rustfava/static/fira-mono-greek-400-normal-COGHKMOA.woff2,sha256=Yb56AMNFgdTCW3j3pRBquyyAP_k-Yl4tFvh4WaMyBWY,10528
97
+ rustfava/static/fira-mono-greek-500-normal-4EN2PKZT.woff2,sha256=UnUe2djJLcAZV8Tu60n5KX6mvV9CbJusgA1-DaKAf4I,10464
98
+ rustfava/static/fira-mono-greek-ext-400-normal-DYEQIJH7.woff2,sha256=XeP_oAQwlgxizbI5QUnxb57zHMLWG_NQS6QT3CqnbO4,7556
99
+ rustfava/static/fira-mono-greek-ext-500-normal-SG73CVKQ.woff2,sha256=uLk1reQ3j4-FgIJhSoGU1zMbGthKXwsMTcowSIEysaQ,7440
100
+ rustfava/static/fira-mono-latin-400-normal-NA3VLV7E.woff2,sha256=jR51NWnqeWSjvqzaEmRQ-EabcMFMFhroBiz0wSg16Uc,16640
101
+ rustfava/static/fira-mono-latin-500-normal-YC77GFWD.woff2,sha256=KR-Q4_C68fNX7Oe4JjS4vNbAgN73ZIaUiUVIrz0oryY,16480
102
+ rustfava/static/fira-mono-latin-ext-400-normal-DIKTZ5PW.woff2,sha256=IwLb-kl8VW5PsJ_VnsF08mFWAtscJ4_HKGFHnSvt8sk,11932
103
+ rustfava/static/fira-mono-latin-ext-500-normal-ZWY4UO4V.woff2,sha256=gfkmHirizK0_GRZ86Ik-2_PQyq90qQ71YKnnygxYAmM,11936
104
+ rustfava/static/fira-mono-symbols2-400-normal-UITXT77Q.woff2,sha256=jcosKSeejcBk0rJB3Gz_dXOPYYRW_iHFgp07tRAgdlw,5032
105
+ rustfava/static/fira-mono-symbols2-500-normal-VWPC2EFN.woff2,sha256=gpeRTjAHUA9_HRuekYAokryRvmPHWDGaI0aBHCUTv-M,5136
106
+ rustfava/static/fira-sans-cyrillic-400-normal-KLQMBCA6.woff2,sha256=LOn5HM1Zh5D3NEQrCiA_Sy6Tg853iXNbT06BanvcfFM,10788
107
+ rustfava/static/fira-sans-cyrillic-500-normal-NFG7UD6J.woff2,sha256=cogQPWE1IAz_flunc4PLLkLbo_XTXWBj6rmmWkSByVc,10820
108
+ rustfava/static/fira-sans-cyrillic-ext-400-normal-GWO44OPC.woff2,sha256=NNY_VMthDg-Kvl4NYtJ4QfcrLdbxjIBD2-L_cknfU8M,17692
109
+ rustfava/static/fira-sans-cyrillic-ext-500-normal-SP47E5SC.woff2,sha256=2VL2gYIlD0vnDj9Gc_o8xDyEE7TYgGbhUv0PZEqD7xw,17880
110
+ rustfava/static/fira-sans-greek-400-normal-UMQBTLC3.woff2,sha256=1IAaE144FJ_rv-uAVJbmD1c07y5i34KkjSWOTj2jO2w,12780
111
+ rustfava/static/fira-sans-greek-500-normal-4ZKHN4FQ.woff2,sha256=E2OOuuZjFjzd6MpFzFfVg5Ac_wrQy8KC-eiXgKLwA-c,12980
112
+ rustfava/static/fira-sans-greek-ext-400-normal-O2DVJAJZ.woff2,sha256=p9PpdtYE6Op4h4Bi3FUeHAxEDx3viQhlYLiRsfmkhQ8,7964
113
+ rustfava/static/fira-sans-greek-ext-500-normal-SK6GNWGO.woff2,sha256=JwHS3SOrQFFu_SU0mNoEw_RT3pBe2rvnpR99c25QOcs,8128
114
+ rustfava/static/fira-sans-latin-400-normal-OYYTPMAV.woff2,sha256=PjjYwB_pdSn78KCGv5WNcktyPKf8i-d7S6V0X2JZtso,23872
115
+ rustfava/static/fira-sans-latin-500-normal-SMQPZW5A.woff2,sha256=iNPkIK3uP6ma5QwVsSPjyaB84OwMA6Ab1r3VIygi2ig,24056
116
+ rustfava/static/fira-sans-latin-ext-400-normal-OAUP3WK5.woff2,sha256=7U0Lc42TYStEMQvz8pk9LOIg2ijwZMLN2jey_LwjZiw,46400
117
+ rustfava/static/fira-sans-latin-ext-500-normal-LY3YDR5Y.woff2,sha256=Yw0FfXJgRa6bnVBjVzhiGAZZ2c5hSl2K5UGOx5nK6hU,46996
118
+ rustfava/static/fira-sans-vietnamese-400-normal-OBMQ72MR.woff2,sha256=vOmCojMl7rBWyuHer6TX2os82nOWWHOPPNI6Z2YrIXg,8500
119
+ rustfava/static/fira-sans-vietnamese-500-normal-Y4NZR5EU.woff2,sha256=pv6CP7PEPCgLQy1_RmsMRCC_Q5eihdX1kvtgb7Bs_YA,8448
120
+ rustfava/static/source-code-pro-cyrillic-400-normal-TO22V6M3.woff2,sha256=FaqzZEDHtqkOxqgyd8exB5A_eEazNo9ArSaQ_D3z7pg,6788
121
+ rustfava/static/source-code-pro-cyrillic-500-normal-OGBWWWYW.woff2,sha256=YwqNNT5ENECR5A9AGWhdGOIQvIK-uXyb3P8_ogLBgaw,6836
122
+ rustfava/static/source-code-pro-cyrillic-ext-400-normal-XH44UCIA.woff2,sha256=cco75Og0SBQkqVvHMx9amNPn4y1ApSw7-ce1p1CD2o8,4516
123
+ rustfava/static/source-code-pro-cyrillic-ext-500-normal-3Z6MMVM6.woff2,sha256=bkQ3YCitAgFtVxR-DSRJILfp-Z_0g07A7dsQIfaUlGI,4556
124
+ rustfava/static/source-code-pro-greek-400-normal-OUXXUQWK.woff2,sha256=t8MppXhw3jT5Su1Y58TZzEa1X42tQ1RnZBzVBPzx_3s,5528
125
+ rustfava/static/source-code-pro-greek-500-normal-JA2Z5UXO.woff2,sha256=rPFHZdNSptfnc3IhBTgdyuxuM7gPq57quBedRLGDLH8,5584
126
+ rustfava/static/source-code-pro-greek-ext-400-normal-WCDKMX7U.woff2,sha256=J3ZptPnB_I0WXtI_Ley54GbtzM0siWgyVa4aJhJtcDU,1852
127
+ rustfava/static/source-code-pro-greek-ext-500-normal-ZHVI4VKW.woff2,sha256=wCPAbWUoScfQEN-EOPgPQ251v5AmHfT0xeq2orpeM1w,1856
128
+ rustfava/static/source-code-pro-latin-400-normal-QOGTXED5.woff2,sha256=daqMrP1FnVjXwJPz_wq4dFzIeN_JPF1M2gUnka6s6Hg,11656
129
+ rustfava/static/source-code-pro-latin-500-normal-X57QEOLQ.woff2,sha256=iWb6P75w9jZ1u-3tuDiQI8ByWLxGqDH9bRRssGKlgR8,11604
130
+ rustfava/static/source-code-pro-latin-ext-400-normal-QXC74NBF.woff2,sha256=HUICXV2Y8HO_C6upb9XtsCCsjJ7U2YtVDyKtgCZ-yqM,17748
131
+ rustfava/static/source-code-pro-latin-ext-500-normal-QGOY7MTT.woff2,sha256=LJkwLZ33fWaLNortreceI83bose_JI-Ir6xIgFgTZ0M,17752
132
+ rustfava/static/source-code-pro-vietnamese-400-normal-NPDCDTBA.woff2,sha256=9bdQN4lCF25Evqcff7mTRrWdTDVq7m7WztzvRN-ZWec,4752
133
+ rustfava/static/source-code-pro-vietnamese-500-normal-M6PJKTR5.woff2,sha256=yT1i8vu-zR-SLFRPhTrYwxCGXl7wGlHsaSO5gbU-Obs,4804
134
+ rustfava/static/tree-sitter-beancount-MLXFQBZ5.wasm,sha256=TdbXw7POdgyHDeAiQifq8msNK3LT74GBsxMgsDXczkU,59682
135
+ rustfava/static/web-tree-sitter-RNOQ6E74.wasm,sha256=mxabo4c8ql7K5Do0gOcb2hDlTm7xEFMXGJJp_wJT130,195953
136
+ rustfava/templates/_journal_table.html,sha256=mbLqf6_v592TAtUiGczHa2IRQ7SdeBPDhaAVt05gS_w,7523
137
+ rustfava/templates/_layout.html,sha256=H5zSOo5osUitD_lZKhiIxBUUfbKyYjsA7RGs43evj3U,1186
138
+ rustfava/templates/_query_table.html,sha256=MUlkghcSXeWBSkWE34vp4Lah_Jx1AS88gYiTdG6Tylc,2926
139
+ rustfava/templates/beancount_file,sha256=2RFGIKTFk-CwLqyjGoYNM_SCuEfMUvOPTYTEKAdHhqA,669
140
+ rustfava/templates/help.html,sha256=roEArF4YfBGPBEwv7JVh3ZsqTxJ_0Ja-jGG78IGDBIc,526
141
+ rustfava/templates/macros/_account_macros.html,sha256=geYo0gzJ2BuS4irOfBSng8OAPEd6IofLHdwVnw9_l0w,163
142
+ rustfava/templates/macros/_commodity_macros.html,sha256=M8-iYmzdvsBim4exBDDVXNQKDqG5cMFH6UsZ-7MQs0Y,559
143
+ rustfava/translations/bg/LC_MESSAGES/messages.mo,sha256=hRML-avYl70U6QDhjGmHxAzAfOloNdbK0rhpSP0yjJk,8301
144
+ rustfava/translations/bg/LC_MESSAGES/messages.po,sha256=fR-HahPWg7k8ln5hQTEYfG9Hgt2WFV0dvZ0fV61L3vY,18043
145
+ rustfava/translations/ca/LC_MESSAGES/messages.mo,sha256=S51aPf8xzigbxMZjedxmDWD5jrWDYXEMDnqKsvMJmk8,6760
146
+ rustfava/translations/ca/LC_MESSAGES/messages.po,sha256=XOBtw5znsY_p5IMHtsCtnGVB5NXFZZnCqlZnQ6lxnxQ,16467
147
+ rustfava/translations/de/LC_MESSAGES/messages.mo,sha256=DjqJw0DceAvLFj4ChQZlTaacvfJIRPVg3ghhBMSg0Cs,6932
148
+ rustfava/translations/de/LC_MESSAGES/messages.po,sha256=afBa81v_fd8y64NL7TiUHlffwH_S2MW8lCaXHbzglM8,16542
149
+ rustfava/translations/es/LC_MESSAGES/messages.mo,sha256=R4yE9sCLwk0IK4iZbcvURV_LQdOCQXhOFmh008SJglg,4618
150
+ rustfava/translations/es/LC_MESSAGES/messages.po,sha256=qJjfHQLODhfzSLkmEHs0Tpp2Lq46GsAY-2BSjLC0pIs,15573
151
+ rustfava/translations/fa/LC_MESSAGES/messages.mo,sha256=ZaP0xdeRLZVb9lgjl6bGfHBBn0yp-yfdytiuxFpULMM,6872
152
+ rustfava/translations/fa/LC_MESSAGES/messages.po,sha256=IaZ5ddX-5EcwkpcPo579fVqX_uRgsKdt2W0MYr5OXlQ,17086
153
+ rustfava/translations/fr/LC_MESSAGES/messages.mo,sha256=ZmxR2CNkvlNYLjR7qFtKqugRDoj02q9ymbztlnkp86M,6614
154
+ rustfava/translations/fr/LC_MESSAGES/messages.po,sha256=U5qt631B8RUPErs1FPI5SdcI93S9cupr70I8iJU_Puk,16357
155
+ rustfava/translations/ja/LC_MESSAGES/messages.mo,sha256=tWf6FMEdIAzTAgP3VZFJb5F3ywi2_za2d0dUfQhDrYc,7117
156
+ rustfava/translations/ja/LC_MESSAGES/messages.po,sha256=DEFaRfDW3JTS9oaQyxI-dA4dRkTTk-yV03RtWJcysss,16831
157
+ rustfava/translations/nl/LC_MESSAGES/messages.mo,sha256=irY7Lm_nAUTYzLLEqbciCV6EDg5Nff9e2NF7rtrAvjk,3610
158
+ rustfava/translations/nl/LC_MESSAGES/messages.po,sha256=yKdPBzjeI3UmydBxVqz2Tv164QKScCdii0UzE4pu_48,15195
159
+ rustfava/translations/pt/LC_MESSAGES/messages.mo,sha256=6XFxLD9WFDHHtfZUbRRNevTTylYFZv7_2YUlcLAuvIc,3290
160
+ rustfava/translations/pt/LC_MESSAGES/messages.po,sha256=JlDeJN7Pkc9lcjRHcMHl7yEKFYQ9YZL2NszDGh_wLVQ,15076
161
+ rustfava/translations/pt_BR/LC_MESSAGES/messages.mo,sha256=0dy5cbelCJ3Zzvc3rQPaQDLgQgy29delfyHbKkL_CPM,6574
162
+ rustfava/translations/pt_BR/LC_MESSAGES/messages.po,sha256=TMVfs6WMU1b__WgNWUjLvieaAajEo7OYzVRPzlL97aI,16279
163
+ rustfava/translations/ru/LC_MESSAGES/messages.mo,sha256=uBtT7WcRfEYmSpDq09yBmWI7bJRLDwFs2CfGl0n2hiE,5435
164
+ rustfava/translations/ru/LC_MESSAGES/messages.po,sha256=3pRya4Zo45uvGdfaZNT_qC84E_30jbJJ_0yjRi6T420,16455
165
+ rustfava/translations/sk/LC_MESSAGES/messages.mo,sha256=SvpBfXW2SbrdGZoHBHnf4IsiHw7S39doK54RYtNtmRY,4817
166
+ rustfava/translations/sk/LC_MESSAGES/messages.po,sha256=accAPL9hLVnIDYCnyjAkprFp2pFruOpzpTmSKXi0fEc,15805
167
+ rustfava/translations/sv/LC_MESSAGES/messages.mo,sha256=3WRAtqkicUnEQsuDXXwphMaW77GaxBeIsECoBRaEFco,5852
168
+ rustfava/translations/sv/LC_MESSAGES/messages.po,sha256=9nVwO9IC9U9o0Q8eR2HlCKXFSI7Wp8yLJZHTP0GBFKE,15975
169
+ rustfava/translations/uk/LC_MESSAGES/messages.mo,sha256=y0LdPFUFQHsn6h76CnLQrNU9eSNYingnrtO16jjK4d0,7239
170
+ rustfava/translations/uk/LC_MESSAGES/messages.po,sha256=Oc0kRES9u_gfDYXnMox8doJ6ECpncBmG6U0XoYA_VAc,17372
171
+ rustfava/translations/zh/LC_MESSAGES/messages.mo,sha256=boZpX4tAVhWRykSuBEGxE8wyyrhkbqbKXHuIAl8J2Ss,6198
172
+ rustfava/translations/zh/LC_MESSAGES/messages.po,sha256=JSzl6wOilMrxs3yIedb8bmNeNQ_2XMGUnK8xB0aN-cU,15909
173
+ rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.mo,sha256=tq4lRpl-D3ESezZm3SrtXMuaGxSS8DpAnKRCm2xMgzA,6127
174
+ rustfava/translations/zh_Hant_TW/LC_MESSAGES/messages.po,sha256=swehL4EpPKWoaKxsg0_shYF7h-UvB2I-ELJVvOjN6BE,15873
175
+ rustfava/util/__init__.py,sha256=ymstIBvY7mkTzhUCtOiG6NFvhPbLnsg-7oMd6wsvXrM,4830
176
+ rustfava/util/date.py,sha256=rK6bg9zuM1eY2Kla2VsHUBy8eZbx6vBbKV3xXmVTvsU,16437
177
+ rustfava/util/excel.py,sha256=IY4ufX_8UkzfwjO1r5cXPN2BP5IQdOg_PU0UzQzyJm4,3438
178
+ rustfava/util/ranking.py,sha256=WRKrSR1A8rIf4f6aQib82msYCGlT7bsmLWjXRrncBpM,2618
179
+ rustfava/util/sets.py,sha256=CtKozfPJc21GS8HSnm08sDe66KJwmacUSseuxEQ9UPU,504
180
+ rustfava/util/unreachable.py,sha256=lzimgiRnmUegIApnZ16rdhg9Wqc2iJMzz_JdyBPKOuI,545
181
+ rustfava-0.1.0.dist-info/licenses/AUTHORS,sha256=AQS1TKV7SVw3jSfJun0Ju2T6HxeHOBAQTNhXF6VqQlU,505
182
+ rustfava-0.1.0.dist-info/licenses/LICENSE,sha256=FDq5QA5ezz_h7AdyXheB7GDCT6J2WmvSLGoO2mdw1Wc,1108
183
+ rustfava-0.1.0.dist-info/METADATA,sha256=893kS_KvbdEWKDlMJFyDwEUA1UAEynH5Gko6B7qbMjo,3510
184
+ rustfava-0.1.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
185
+ rustfava-0.1.0.dist-info/entry_points.txt,sha256=iPnJjOd2igdtcFVGIFSlLby0h_Rvuf_Qpg6iI5a5UnI,47
186
+ rustfava-0.1.0.dist-info/top_level.txt,sha256=PJYc1n7UGuv1x-OPTcQIfd07esxZrGo6eGZRmN8lrjo,9
187
+ rustfava-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.10.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ rustfava = rustfava.cli:main
@@ -0,0 +1,11 @@
1
+ Rustfava is a fork of Fava, which was created by Dominik Aumayr <dominik@aumayr.name>.
2
+ Fava is maintained by Dominik Aumayr and Jakob Schnitzer.
3
+
4
+ See the Issue Tracker and the Git log for other contributors, e.g., with:
5
+ git log --format='%aN' | sort -u
6
+
7
+ Translations: The translations are maintained on POEditor. See the project
8
+ there (https://poeditor.com/join/project/TlraSxOCxt) for details.
9
+
10
+ A big thank you goes to Martin Blais for creating Beancount and all the
11
+ invaluable documentation for it.
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-2016 Dominik Aumayr <dominik@aumayr.name>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ rustfava