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
>>>>>
>>>>> 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.

Reply via email to