Hm, actually that looks ok, it has the existing_entries on the
interface. But to be honest I'm not super familiar with how the apply
hook is hooking this in, so there might be an issue.
Maybe someone more familiar with this can respond on that.
Otherwise if you could install smart_importer from git and then maybe
add a bit more debug output in
hooks.py and predictor.py to make sure that the existing entries arrive,
this would give a better idea how to progress.
On 12.05.2021 13:17, [email protected] wrote:
Thank you. I think that is it.
I'm using reds-importers and I see
site-packages/beancount_reds_importers/libimport/banking.py and it has
this entry:
def extract(self, file, existing_entries=None):
I think this importer tool needs to be updated to support the
smart_importer.
On Wednesday, May 12, 2021 at 11:11:37 PM UTC+12 [email protected]
wrote:
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].
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/beancount/6248ca60-16fa-4ad0-88b5-1c4bb91f9feen%40googlegroups.com
<https://groups.google.com/d/msgid/beancount/6248ca60-16fa-4ad0-88b5-1c4bb91f9feen%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/cbc8ad17-a6b5-749c-e75f-830360369d55%40ch.tario.org.