Brett Smith
072937eff5
books.Loader: New loading strategy.
...
The old loading strategy didn't load options, which yielded some
spurious errors. It also created awkward duplication of plugin
information in the code as well as the books.
Implement a new loading strategy that works by reading one of the
"main files" under the books/ subdirectory and includes entries
for additional FYs beyond that.
This is still not ideal in a lot of ways. In particular, Beancount can't
cache any results, causing any load to be slower than it theoretically could
be. I expect more commits to follow. But some of them might require
restructuring the books, and that should happen separately.
2020-05-05 14:31:08 -04:00
Brett Smith
ca1f6d0059
tests: Add accruals.beancount required for tests in last commit.
2020-05-05 14:30:39 -04:00
Brett Smith
ad81c45f2a
reports.accrual: Begin reporting.
...
This module basically reimplements the old payment-report+income-report,
in a single tool (after setting aside some of the checks that have moved
to the plugin). The aging report can be implemented here too when we need
that.
2020-05-04 16:36:59 -04:00
Brett Smith
e429a6c6fd
meta_approval: Not required for chargebacks. RT#10978.
2020-05-01 16:24:24 -04:00
Brett Smith
23e1ed7cee
Revert "meta_receipt: Don't check chargebacks. RT#10978."
...
This reverts commit 6aadb740e6
.
This is supposed to be done in meta_approval, not meta_receipt.
2020-05-01 16:20:22 -04:00
Brett Smith
6aadb740e6
meta_receipt: Don't check chargebacks. RT#10978.
2020-05-01 16:18:46 -04:00
Brett Smith
be35f36d26
meta_tax_implication: Add Chargeback value.
2020-05-01 15:54:40 -04:00
Brett Smith
08a3151bfa
meta_tax_implication: Remove unused values.
2020-05-01 15:52:27 -04:00
Brett Smith
1b81375294
reports: Add Balance.__neg__() method.
2020-04-29 14:35:20 -04:00
Brett Smith
68acb86e7e
reports: Add Balance.__str__() method.
2020-04-29 11:37:38 -04:00
Brett Smith
5a1f7122bd
rtutil: Add RT.iter_urls() method.
2020-04-29 11:23:48 -04:00
Brett Smith
9fef177d2d
reports: Add RelatedPostings.all_meta_links() method.
2020-04-29 10:12:08 -04:00
Brett Smith
46ac91e86e
test_rtutil: Simplify setup.
2020-04-28 17:20:59 -04:00
Brett Smith
999ca2c5e1
rtutil: Add RT.txn_with_urls() method.
2020-04-28 16:20:25 -04:00
Brett Smith
701ccdc192
tests: Test where Transactions are real NamedTuples.
...
This makes methods like _replace available in real code, and caught the
bug where we can't use @functools.lru_cache with Transaction arguments,
because they're unhashable due to their mutable members.
2020-04-28 15:33:30 -04:00
Brett Smith
d01df054ab
reports: Let RelatedPostings be initialized with an Iterable[Posting].
2020-04-27 15:51:30 -04:00
Brett Smith
bd00822b8f
reports: Add RelatedPostings.group_by_meta() classmethod.
2020-04-24 13:37:35 -04:00
Brett Smith
fdd067b10e
tests: Add sample configuration file.
...
This should've been included in 7f45788
.
2020-04-23 11:41:07 -04:00
Brett Smith
d8507a1a35
rtutil: Add RTUtil.metadata_regexp() classmethod.
...
The accruals check script wants to be able to search RT links in
all kinds of metadata, not just rt-id as the filter currently
handles.
2020-04-23 10:27:47 -04:00
Brett Smith
d41bc5e9b6
reports: Add RelatedPostings.clear() method.
2020-04-22 12:02:06 -04:00
Brett Smith
ed4258daf7
reports: Add RelatedPostings.meta_values() method.
...
This corresponds to the ledtag_onevalue check in the
payment-report and income-report scripts.
2020-04-22 11:59:12 -04:00
Brett Smith
54a1bc4600
filters: Add filter_for_rt_id function.
2020-04-22 10:59:12 -04:00
Brett Smith
4420873c96
filters: Add filter_meta_match function.
2020-04-22 10:34:55 -04:00
Brett Smith
26762e11ef
test_filters: Test non-string metadata values.
2020-04-22 10:31:52 -04:00
Brett Smith
cc03c4beb6
filters: Add filter_meta_equal function.
2020-04-22 10:04:24 -04:00
Brett Smith
99dbd1ac95
tests: Promote date_seq to testutil.
2020-04-22 09:17:58 -04:00
Brett Smith
8d584734ec
data: Add Posting.from_entries() method.
2020-04-21 15:24:04 -04:00
Brett Smith
3000aeee09
config: Add Config.books_loader() method.
2020-04-21 13:35:56 -04:00
Brett Smith
96a363633f
books: Add Loader.load_fy_range() method.
2020-04-21 11:58:28 -04:00
Brett Smith
855c1c2bf0
books: Start Loader class.
2020-04-21 10:47:13 -04:00
Brett Smith
51137815d3
config: fiscal_year_begin returns a FiscalYear.
2020-04-21 09:07:14 -04:00
Brett Smith
5c60666619
books: Start FiscalYear class.
2020-04-20 17:20:26 -04:00
Brett Smith
894f044093
config: Add Config.fiscal_year_begin() method.
2020-04-20 14:31:22 -04:00
Brett Smith
7f45788235
config: Start configuration file with books path.
...
Ultimately I would like to make it possible to configure the software
entirely through this file, rather than the hodgepodge system we have
now. But that can come later.
2020-04-12 22:27:52 -04:00
Brett Smith
8fa9a0ffe6
tests: Set XDG_CONFIG_HOME for safety.
2020-04-12 22:24:34 -04:00
Brett Smith
b28646aa12
core.RelatedPostings: Add iter_with_balance method.
...
payment-report and accrual-report query to find the last date a
series of postings had a non/zero balance. This method is a good
building block for that.
2020-04-12 15:18:19 -04:00
Brett Smith
5aa30e5456
reports.core: Start Balance class.
2020-04-12 14:56:00 -04:00
Brett Smith
219cd4bc37
reports.core: Start RelatedPostings class.
2020-04-12 09:47:41 -04:00
Brett Smith
01c3b975d8
data: Fix Amount.__new__.
...
See the comments for background and rationale.
2020-04-11 22:26:01 -04:00
Brett Smith
14a87e792b
data: Move iter_posting into Posting class methods.
...
As I move into reporting code, having Posting.from_beancount() is
handy, and then from_txn() might as well come along for the ride.
2020-04-11 16:16:35 -04:00
Brett Smith
eb7f73e644
data.PostingMeta: Add date property.
...
This is something reporting tools will want a lot. This will make it
easier for them to look at just postings without worrying about the
parent transaction.
2020-04-11 09:20:35 -04:00
Brett Smith
a156617b4d
config: Add Config.config_file_path() method.
2020-04-10 10:53:39 -04:00
Brett Smith
24813a9b81
config: Ignore non-absolute XDG_CACHE_HOME.
...
Per the spec.
2020-04-10 08:34:55 -04:00
Brett Smith
c7fbf5b5d5
config: s/XDG_CACHE_DIR/XDG_CACHE_HOME/g
...
Per the spec.
2020-04-10 08:24:34 -04:00
Brett Smith
9f0c30738d
plugin: Most validations skip opening balance transactions. RT#10642.
2020-04-09 15:12:04 -04:00
Brett Smith
4eaba1ebf6
data: Add is_opening_balance_txn function.
2020-04-09 15:11:16 -04:00
Brett Smith
d66ba8773f
data: Make balance_of currency-aware.
2020-04-09 14:13:07 -04:00
Brett Smith
c6dc2d83ac
data.Amount: Introduce class and simplify code to use it.
...
See docstring for full rationale. This greatly reduces the need for other
plugin code to handle the case of `post.units.number is None`, eliminating
the need for entire methods and letting it do plain numeric comparisons.
2020-04-09 12:00:38 -04:00
Brett Smith
e00ec95d93
Account: Add is_opening_balance method.
2020-04-08 15:04:25 -04:00
Brett Smith
bb84cb5741
data.balance_of: Take account predicates, not just names.
...
For increased flexibility.
In particular, now you can pass in Account boolean methods to
call those directly.
2020-04-08 14:16:57 -04:00