I just remembered something. The issue could be that the importer you're
trying to use does not have the new interface and instead still uses the
old (legacy) interface.
the new one looks like this
def extract(self, file, existing_entries):
the old one looks like this
def extract(self, file):
Smart importer uses the existing_entries for training its model.
Regards,
Patrick
On 12.05.2021 12:20, [email protected] wrote:
Just checked and I got the same result. I can add some debugging code
in the config file perhaps. I'm not very experienced with beancount or
smart_importer so not sure what to look for.
bean-extract -e journal/accounts.beancount jonathan_smart.import
~/staging/mydata.qfx > ~/staging/dud.txt
gives 2 printouts of
Cannot train the machine learning model because the training data is
empty.
Cannot train the machine learning model because the training data is
empty.
On Wednesday, May 12, 2021 at 7:15:19 PM UTC+12 [email protected] wrote:
Can you try -e instead of -f that's what I use
On May 12, 2021 8:31:36 AM GMT+02:00, "[email protected]"
<[email protected]> wrote:
Thanks for the suggestion @Patrick. I just tried changing that
but still doesn't work. I get the exact same behavior if I
call it with an empty file....seems the -f option doesn't make
bean-extract behave as expected for me. Here is my call:
bean-extract -f journal/myledger.beancount
jonathan_smart.import ~/staging/62090_818496_1013051ofxdl.qfx
> ~/staging/dud.txt
I get these messages:
Cannot train the machine learning model because the training
data is empty.
Cannot train the machine learning model because the training
data is empty.
On Wednesday, May 12, 2021 at 5:31:25 PM UTC+12
[email protected] wrote:
Hi,
I think your setup looks good, the smart importer hook is
in there as otherwise you would not get the errors about
not able to train.
I think the issue is on your call
bean-extract jonathan_smart.import
~/staging/new_bank_data.qfx -f journal/myledger.beancount
> ~/staging/dud.txt
My guess is that the -f argument needs to come before you
specify the importconfig and the location, so
bean-extract -f journal/myledger.beancount
jonathan_smart.import ~/staging/new_bank_data.qfx >
~/staging/dud.txt
Regards,
Patrick
On 12.05.2021 01:58, [email protected] wrote:
Thanks for looking at this module even though you aren't
using it!
I followed the code that was further down on the readme
page <https://github.com/beancount/smart_importer> that
describes how to convert an existing importer.
>>
from your_custom_importer import MyBankImporter
from smart_importer import apply_hooks, PredictPayees,
PredictPostings
my_bank_importer = MyBankImporter('whatever', 'config',
'is', 'needed')
apply_hooks(my_bank_importer, [PredictPostings(),
PredictPayees()])
CONFIG = [ my_bank_importer, ]
>>
(my code looks just like this example)
I had thought apply_hooks would operate on the importer
so when I call it in config I can just then call the
hookified bank_importer. Is this note the case?
On Wednesday, May 12, 2021 at 1:26:27 AM UTC+12
[email protected] wrote:
* Disclaimer * I have never actually run smart importer.
Looking at the README on GitHub for smart importer it
looks like you need to use the return object of
apply_hooks in your CONFIG list.
CONFIG = [
apply_hooks(MyBankImporter(account='Assets:MyBank:MyAccount'),
[PredictPostings()]) ]
In your config you apply the hooks but are not using
the returned object.
Hope that helps.
On Tuesday, 11 May 2021 at 04:06:33 UTC+1
[email protected] wrote:
Hi,
I'm trying to get smart_importer to work and not
sure what I'm doing wrong.
*_1_*. I successfully have done all the required
beancount setup and created by own bank importer
and ran it on two months of data.
_*2.*_ I then manually labelled about 2 months of
data from one of my banks.
*_3._* I installed smart_importer using "pip
install smart_importer"
(base) MacBook-Air:beandata jonathan$ pip show
smart_importer
Name: smart-importer
Version: 0.3
Summary: Augment Beancount importers with machine
learning functionality.
Home-page:
https://github.com/beancount/smart_importer
<https://github.com/beancount/smart_importer>
Author: Johannes Harms
Author-email: UNKNOWN
License: MIT
Location:
/Users/jonathan/opt/miniconda3/lib/python3.8/site-packages
Requires: scikit-learn, beancount, numpy, scipy
*_4._* I created a new config file I called
Jonathan_smart.import
base) MacBook-Air:beandata jonathan$ more
jonathan_smart.import
#!/usr/bin/env python3
"""Import configuration."""
import sys
from os import path
sys.path.insert(0, path.join(path.dirname(__file__)))
from beancount_reds_importers import vanguard
from myimporters.bfsfcu import bfsfcu_bank
from myimporters.anz import anz_bank
from fund_info import *
from smart_importer import apply_hooks,
PredictPayees, PredictPostings
myBank_smart_importer =my_bank.Importer({
'main_account' :
'Assets:US:Banks:Checking:myBank',
'account_number' : ''xxx'',
'transfer' :
'Assets:US:Zero-Sum-Accounts:Transfers:Bank-Account',
'income' :
'Income:US:Interest:myBank',
'fees' :
'Expenses:US:Bank-Fees:myBank',
'rounding_error' :
'Equity:US:Rounding-Errors:Imports',
})
apply_hooks(myBank_smart_importer,
[PredictPayees(), PredictPostings()])
CONFIG = [myBank_smart_importer, ...(other
importers)]
*_5_*. I was following the README documentation
that said write bean-extract -f to invoke it on
existing data. So I tried the following.*Is this
right?*
bean-extract jonathan_smart.import
~/staging/new_bank_data.qfx -f
journal/myledger.beancount > ~/staging/dud.txt
Cannot train the machine learning model because
the training data is empty.
Cannot train the machine learning model because
the training data is empty.
The output is just like the normal output without
all the smart_importer stuff. Seems I'm doing
something wrong as the staging/dud.txt doesn't
have any predictions.
Appreciate any assistance on this!
thanks,
Jonathan
--
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 on the web visit
https://groups.google.com/d/msgid/beancount/820ef641-8178-47d1-9e97-afbc709e6a83n%40googlegroups.com
<https://groups.google.com/d/msgid/beancount/820ef641-8178-47d1-9e97-afbc709e6a83n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/beancount/fe28577c-8220-49cd-b976-40ef9f0b6a91n%40googlegroups.com
<https://groups.google.com/d/msgid/beancount/fe28577c-8220-49cd-b976-40ef9f0b6a91n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
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 on the web visit
https://groups.google.com/d/msgid/beancount/bf25b0f6-2cc6-f636-a444-5c36a32c39e0%40ch.tario.org.