Commit graph

431 commits

Author SHA1 Message Date
Brett Smith
46ac91e86e test_rtutil: Simplify setup. 2020-04-28 17:20:59 -04:00
Brett Smith
bd0d607032 typing: Annotate Iterators more specifically. 2020-04-28 16:35:15 -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
e79877ee6a data: Add rt-id to LINK_METADATA.
This gets closer to our real intentions: anything that checks link
metadata should check rt-id. MetaRepoLinks is the exception, not
the rule, in ignoring rt-id.
2020-04-28 10:48:10 -04:00
Brett Smith
694630ca02 setup: Don't disallow untyped calls.
Unfortunately this is becoming more trouble than it's worth as we
call more and more untyped Beancount functions.
disallow_untyped_defs provides most of the value of what we really
want here, so go ahead and turn this off.
2020-04-27 16:53:22 -04:00
Brett Smith
1383dabf3b beancount_types: Make Error.source a Mapping rather than a Dict.
The Beancount code just needs a mapping, and this lets us use
Metadata or PostingMeta objects for Error sources.
2020-04-27 16:44:39 -04:00
Brett Smith
d3415a8721 data: Type declare that Posting.meta is a PostingMeta.
This is necessary for users to call PostingMeta properties like date
as intended.
2020-04-27 16:44:06 -04:00
Brett Smith
d01df054ab reports: Let RelatedPostings be initialized with an Iterable[Posting]. 2020-04-27 15:51:30 -04:00
Brett Smith
5e061da940 reports: Fix return type of RelatedPostings.group_by_meta. 2020-04-24 15:36:02 -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
43a2e1bec8 beancount_types: Add types related to loading the books.
These will help support loading methods in the books module.
2020-04-21 11:57:54 -04:00
Brett Smith
855c1c2bf0 books: Start Loader class. 2020-04-21 10:47:13 -04:00
Brett Smith
adf402442b books: Introduce Year type alias.
This is going to be repeated a lot as we write book-loading methods.
2020-04-21 09:51:27 -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
171aed16f9 data: Bugfix super() arguments in Amount.__new__.
Apparently I was more tired than I realized last night.
2020-04-12 08:58:27 -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
8f81530f6d meta_approval: Use data.balance_of. 2020-04-08 14:20:00 -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
Brett Smith
28e59e7a3b data: Add balance_of() function. 2020-04-08 11:55:00 -04:00
Brett Smith
212036b25e meta_approval: Stop checking payables.
That's handled by meta_payable_documentation now.
2020-04-07 15:45:29 -04:00