My bad - and apologies to the smart_importer contributors!
The issue I ran into is that the hook function call signature
<https://github.com/beancount/beangulp/blob/master/beangulp/__init__.py#L103-L105>
seems to have changed in beangulp v3. It's called with two args for the
extracted and existing entries:
# Invoke hooks.
for func in ctx.hooks:
extracted = func(extracted, existing_entries)
But smart_importer's EntryPredictor is expecting four args
<https://github.com/beancount/smart_importer/blob/main/smart_importer/predictor.py#L75-L81>
in __call__:
def __call__(
self,
importer: Importer,
file: str,
imported_entries: data.Directives,
existing_entries: data.Directives,
) -> data.Directives:
So I get an exception when trying to use it:
TypeError: EntryPredictor.__call__() missing 2 required positional
arguments: 'imported_entries' and 'existing_entries'
For now, I have derived my own class from PredictPostings and overridden
__call__ to omit the importer and file arguments, but I just copied the
implementation of __call__, which I don't like.
On Saturday, January 11, 2025 at 3:43:59 AM UTC-5 Red S wrote:
> But I'm not using this in production yet as I'm trying to write the
> equivalent of Red S's smart importer to predict the category account.
>
>
> While I use smart_importer a lot and find it to be excellent what what it
> does, I had nothing to do with writing it. The authors and contributors can
> be found in the repo <https://github.com/beancount/smart_importer> :).
>
> BTW, curious, what aspect of it is not working for you? Seems to me like
> it should work out of the box for your use case.
>
>
--
You received this message because you are subscribed to the Google Groups
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/beancount/8f4eb5a0-8d1e-485b-aeb3-eddb58ccd146n%40googlegroups.com.