Commit graph

7 commits

Author SHA1 Message Date
Brett Smith
3fbc14d377 Improve organization between modules.
* Rename _typing to beancount_types to better reflect what it is.
* LessComparable isn't a Beancount type, so move that to
  plugin.core with its dependent helper classes.
* Errors are a core Beancount concept, so move that module to the
  top level and have it include appropriate type definitions.
2020-03-15 16:03:57 -04:00
Brett Smith
a41feb94b3 plugin: Transform posting hooks into transaction hooks.
I feel like posting hooks a case of premature optimization in early
development. This approach reduces the number of special cases in
the code and allows us to more strongly reason about hooks in the
type system.
2020-03-15 15:50:14 -04:00
Brett Smith
547ae65780 plugin.core: _meta_set properly handles when post.meta is None.
post is a NamedTuple, so attribute assignment is not allowed.
Instead we have to construct a whole new Posting.
2020-03-08 11:32:03 -04:00
Brett Smith
d34db71542 plugin: Introduce HookRegistry.
This is the layer that keeps track of the different groups of hooks and
can filter them before runtime. The idea here is that you'll be able
to do things like skip hooks that require network access when you don't
have it, or skip CPU-intensive hooks when you don't need them, etc.
2020-03-06 09:22:55 -05:00
Brett Smith
d145e22734 test_plugin_run: Simplify testing strategy.
Avoid keeping state in the hook classes/instances.
2020-03-05 19:31:07 -05:00
Brett Smith
e9e2bb9b00 plugin: Rename the main method of hooks from check to run.
This will be more appropriate when we have hooks that do more than
check metadata.
2020-03-05 17:48:59 -05:00
Brett Smith
53329c7a23 plugin: Start entry point.
This doesn't integrate with existing hooks but at least sketches out the
main loop.
2020-03-05 17:41:58 -05:00