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
Brett Smith
ce34554bd4
meta_payable_documentation: Don't check Liabilites:Payable:Vacation.
2020-04-07 15:44:40 -04:00
Brett Smith
3dfe266945
meta_payable_documentation: Bugfix which metadata we're checking.
...
Checking approval/contract was in the original specification,
looking at invoice instead of approval was a pure brain fart.
2020-04-07 15:31:58 -04:00