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 >>> >>> 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/0d9e7317-77a9-4b84-8408-b61bf5c09f31n%40googlegroups.com.
