Aha! Found it! :)

I'm bumping this so I can reply from my new email.

TRS-80

-- 
 Securely sent with Tutanota. Get your own encrypted, ad-free mailbox: 
 https://tutanota.com


Sep 16, 2018, 8:38 AM by [email protected]:

> There are also some examples in the source code, here:
> https://bitbucket.org/blais/beancount/src/default/examples/ingest/office/ 
> <https://bitbucket.org/blais/beancount/src/default/examples/ingest/office/>
>
>
>
>
> On Sun, Sep 16, 2018 at 12:15 AM <> [email protected] 
> <mailto:[email protected]>> > wrote:
>
>> Hey, 
>>
>> I'm in a very similar boat, were you able to post your importer files 
>> publicly? I think seeing the conversation of you working through this, along 
>> with your finished files would make your files a lot more easier to 
>> understand than the current examples I've seen.
>>
>> Cheers,
>>
>>
>> On Friday, 20 July 2018 02:22:48 UTC+10, >> [email protected] 
>> <mailto:[email protected]>>>  wrote:
>>
>>> I figured it out. The dumb_categorizer does .lower(): and I was passing it 
>>> a search term with a capital letter in it. Now I'm off to the races.. :)
>>>
>>> I think maybe I might publish my working setup once I get it all cleaned 
>>> up, as yet another example for others to follow.
>>>
>>> TRS-80
>>>
>>>  -- 
>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>  >>> https://tutanota.com <https://tutanota.com>
>>>
>>> 19. Jul 2018 10:44 by [email protected]:
>>>
>>>
>>>> OK, I am successfully calling dumb_categorizer from CSV Importer by 
>>>> defining it at beginning of .config file, and then passing categorizer = 
>>>> dumb_categorizer to CSV Importer. I know this because I replaced it with a 
>>>> simple print("something") and I got a bunch of "something" on stdout. So 
>>>> the categorizer is getting called, it's just either not matching or not 
>>>> attaching the other leg... ?
>>>>
>>>> Any help would be greatly appreciated.
>>>>
>>>> TRS-80
>>>> -- 
>>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>>  >>>> https://tutanota.com <https://tutanota.com>
>>>>
>>>> 19. Jul 2018 08:52 by [email protected]:
>>>>
>>>>
>>>>> I suppose I should have included a link to the CSV importer source: >>>>> 
>>>>> https://bitbucket.org/blais/beancount/src/80d30d6896cf5fdcff8c1156cab77107ee8e0f96/beancount/ingest/importers/csv.py?at=default&fileviewer=file-view-default
>>>>>  
>>>>> <https://bitbucket.org/blais/beancount/src/80d30d6896cf5fdcff8c1156cab77107ee8e0f96/beancount/ingest/importers/csv.py?at=default&fileviewer=file-view-default>
>>>>>
>>>>> Down toward the bottom (line 283) is where the categorizer gets called.
>>>>>
>>>>> Last night at my local LUG, I volunteered to do a talk next month on 
>>>>> plain text accounting, and got the green light. So it would be nice to 
>>>>> get this working by then. :)
>>>>>
>>>>> TRS-80
>>>>>  -- 
>>>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>>>  >>>>> https://tutanota.com <https://tutanota.com>
>>>>>
>>>>> 19. Jul 2018 08:32 by [email protected]:
>>>>>
>>>>>
>>>>>> It is still unclear to me where to put this categorizer code? I have 
>>>>>> tried putting it here, there, and everywhere. I am using the provided 
>>>>>> generic CSV importer, which calls it, but I cannot figure out where to 
>>>>>> put it or how to instantiate it or whatever it is you need to do in 
>>>>>> Python.
>>>>>>
>>>>>> Since I don't really know Python, I am happy to pay someone few bucks to 
>>>>>> help me get this working.
>>>>>>
>>>>>> (from >>>>>> 
>>>>>> https://bitbucket.org/blais/beancount/pull-requests/24/improve-ingestimporterscsv/diff
>>>>>>  
>>>>>> <https://bitbucket.org/blais/beancount/pull-requests/24/improve-ingestimporterscsv/diff>>>>>>>
>>>>>>  ):
>>>>>>
>>>>>> def dumb_categorizer(txn):    # At this time the txn has only one 
>>>>>> posting    try:        posting1 = txn.postings[0]    except IndexError:  
>>>>>>       return txn    # Guess the account(s) of the other posting(s)    if 
>>>>>> 'nutella' in txn.narration.lower():        account = 'Expenses:Food'    
>>>>>> else:        return txn    # Make the other posting(s)    posting2 = 
>>>>>> posting1._replace(        account=account,        units=-posting1.units  
>>>>>>   )    # Insert / Append the posting into the transaction    if 
>>>>>> posting1.units < posting2.units:        txn.postings.append(posting2)    
>>>>>> else:        txn.postings.insert(0, posting2)    return txn
>>>>>>
>>>>>>
>>>>>> --
>>>>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>>>>  >>>>>> https://tutanota.com <https://tutanota.com>
>>>>>>
>>>>>> 25. Jun 2018 16:33 by [email protected]:
>>>>>>
>>>>>>
>>>>>>> OK, stayed up late last night and actually got all my character 
>>>>>>> stripping accomplished in Python within the provided tools. Yay me 
>>>>>>> (first Python code I ever wrote)! :)
>>>>>>>
>>>>>>> OK so basic CSV importers are working, now trying to figure out where 
>>>>>>> to stick the categorizer code I found here: >>>>>>> 
>>>>>>> https://bitbucket.org/blais/beancount/pull-requests/24/improve-ingestimporterscsv/diff
>>>>>>>  
>>>>>>> <https://bitbucket.org/blais/beancount/pull-requests/24/improve-ingestimporterscsv/diff>
>>>>>>>
>>>>>>> I been trying here and there without success as of yet. Any 
>>>>>>> hints/pointers would be greatly appreciated!
>>>>>>>
>>>>>>> TRS-80
>>>>>>>  -- 
>>>>>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>>>>>  >>>>>>> https://tutanota.com <https://tutanota.com>
>>>>>>>
>>>>>>> 24. Jun 2018 15:21 by [email protected]:
>>>>>>>
>>>>>>>
>>>>>>>> On Sun, Jun 24, 2018 at 11:58 AM <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> [...]But by all means, please correct me if I am wrong, or have 
>>>>>>>>> missed something.
>>>>>>>>>
>>>>>>>>> So now that I have attained some success, and see the light at the 
>>>>>>>>> end of the tunnel, it looks like I will have to do ~ the following:
>>>>>>>>> 1.Manually download CSV file from bank.
>>>>>>>>>
>>>>>>>> Yes
>>>>>>>>  
>>>>>>>>
>>>>>>>>> 2.Do some pre-processing, either manually or with macros in Emacs, or 
>>>>>>>>> (more likely) programatically, using scripts and sed, etc. to remove 
>>>>>>>>> parens and $s.
>>>>>>>>>
>>>>>>>> You can write code in your importer to do that.
>>>>>>>>  
>>>>>>>>
>>>>>>>>> 3.Run the actual bean-import.
>>>>>>>>>
>>>>>>>> You mean bean-extract.
>>>>>>>>
>>>>>>>>
>>>>>>>>> 4.Run some post processing (I would like to change date: metadata 
>>>>>>>>> name to transaction_date: because I think it's more descriptive).
>>>>>>>>>
>>>>>>>> Do that in your importer code as well.
>>>>>>>>  
>>>>>>>>
>>>>>>>>
>>>>>>>>> 5.And then finally hand copy these transactions into my main 
>>>>>>>>> .beancount file, double checking and tweaking (aka "clearing") them 
>>>>>>>>> in the process, categorizing remaining ones into Expense accounts and 
>>>>>>>>> perhaps updating my scripts in the process.
>>>>>>>>>
>>>>>>>> Yes.
>>>>>>>>
>>>>>>>>
>>>>>>>>> I suppose 2, 4, and 5 could be done all in Emacs, but I'll just have 
>>>>>>>>> to figure out some workflow now that works for me.
>>>>>>>>>
>>>>>>>> Yes.
>>>>>>>>  
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Also not mentioned is somehow programatically inserting the other leg 
>>>>>>>>> of the transaction (which Expense account). I agree with Martin's 
>>>>>>>>> basic philosophy on this, and still plan on manually reviewing 
>>>>>>>>> everything, however I am already seeing that the bulk of transactions 
>>>>>>>>> are the same places in my case and could easily be categorized with 
>>>>>>>>> some simple matching (either in a post matching script or within 
>>>>>>>>> bean-extract using categorizer). I need to look into this more, and 
>>>>>>>>> also experiment or read up on how the de-duplication works, as I 
>>>>>>>>> think it's probably related.
>>>>>>>>>
>>>>>>>>
>>>>>>>> You can write some function for your importer to do that with your 
>>>>>>>> particular rules if it saves you time.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Anyway, I will continue to report on what I find as I go along, and 
>>>>>>>>> even though I'm not getting any replies
>>>>>>>>>
>>>>>>>> Short emails with direct questions -> more replies more quickly
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>>> hopefully this will either encourage others to try and set this up or 
>>>>>>>>> perhaps help other noobs who come along later looking for more in 
>>>>>>>>> depth info (or perhaps stumble across similar error messages 
>>>>>>>>> searching the internet) and it eventually helps someone.
>>>>>>>>>
>>>>>>>>> Helpful tips, encouraging words, or even just letting me know if 
>>>>>>>>> anyone is actually reading my idiotic ramblings are always welcomed. 
>>>>>>>>> :D
>>>>>>>>>
>>>>>>>>
>>>>>>>> Sounds like you're making great progress!
>>>>>>>> Unfortunately automating the importing still requires writing Python 
>>>>>>>> code and I see no way around that, I wish it was easier.
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>>>
>>>>>>>>> TRS-80
>>>>>>>>>  -- 
>>>>>>>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>>>>>>>  >>>>>>>>> https://tutanota.com <https://tutanota.com>
>>>>>>>>>
>>>>>>>>> 22. Jun 2018 19:21 by [email protected]:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Yeah I was completely on the wrong track before (I think). But I am 
>>>>>>>>>> on the right one now (I think)?
>>>>>>>>>>
>>>>>>>>>> So what I have done is just copy the csv.py file and save it as 
>>>>>>>>>> __init__.py in my importers/suncoast_g directory. Then I put the 
>>>>>>>>>> following into ledger.config: >>>>>>>>>> 
>>>>>>>>>> https://paste.pound-python.org/show/popHoa0wvVE2OiPCqIAL 
>>>>>>>>>> <https://paste.pound-python.org/show/popHoa0wvVE2OiPCqIAL/>
>>>>>>>>>>
>>>>>>>>>> But now when doing bean-extract I get "ValueError: CSV config 
>>>>>>>>>> without header has non-index fields: {'[DATE]': 'Posted Date', 
>>>>>>>>>> '[TXN_DATE]': 'Transaction Date', '[NARRATION1]': 'Description', 
>>>>>>>>>> '[CREDIT]': 'Deposit', '[DEBIT]': 'Withdrawal', '[BALANCE]': 
>>>>>>>>>> 'Balance'}"
>>>>>>>>>>
>>>>>>>>>> Yes my CSV have headers. I been searching the internet for that 
>>>>>>>>>> error, but still scratching my head. Also tried to change '[DATE]' 
>>>>>>>>>> to 'DATE' etc. but that didn't seem to make a difference either.
>>>>>>>>>>
>>>>>>>>>> Of course, I could be completely off track (this is my fourth 
>>>>>>>>>> different approach). I been flailing around at this all day and a 
>>>>>>>>>> good part of yesterday too. Early in the morning until late at 
>>>>>>>>>> night. At this point I would be willing to send someone a few 
>>>>>>>>>> dollars to help me get this set up. I am sure I could get other 
>>>>>>>>>> accounts working and maintain it once I can just get the first one 
>>>>>>>>>> working.
>>>>>>>>>>
>>>>>>>>>> When I first saw my credit union's CSV file I thought "this should 
>>>>>>>>>> be easy" because it's very straightforward. I don't need all this 
>>>>>>>>>> complicated parsing like I have seen in some of the other Importers 
>>>>>>>>>> I have been studying. Just a straight CSV import. Or so I thought... 
>>>>>>>>>> :/
>>>>>>>>>>
>>>>>>>>>> Anyway, any help at all would be greatly appreciated at this point. 
>>>>>>>>>> Any clue might help!
>>>>>>>>>>
>>>>>>>>>> TRS-80
>>>>>>>>>> -- 
>>>>>>>>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>>>>>>>>  >>>>>>>>>> https://tutanota.com <https://tutanota.com>
>>>>>>>>>>
>>>>>>>>>> 22. Jun 2018 14:19 by [email protected]:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> OK I sought and received some help in @python. I think I am on a 
>>>>>>>>>>> much better track now. I don't know where I got my original 
>>>>>>>>>>> __init__.py from, some similar thread here I think.
>>>>>>>>>>>
>>>>>>>>>>> But now I have downloaded from source the utrade one from: 
>>>>>>>>>>> >>>>>>>>>>> 
>>>>>>>>>>> https://bitbucket.org/blais/beancount/src/65212d1176bb427a7883d2593edbd0e0545a145a/examples/ingest/office/importers/utrade/__init__.py?at=default&fileviewer=file-view-default
>>>>>>>>>>>  
>>>>>>>>>>> <https://bitbucket.org/blais/beancount/src/65212d1176bb427a7883d2593edbd0e0545a145a/examples/ingest/office/importers/utrade/__init__.py?at=default&fileviewer=file-view-default>>>>>>>>>>>>
>>>>>>>>>>>   and am modifying that to my needs. I now see that I missed a 
>>>>>>>>>>> whole bunch of the methods listed in "Writing an Importer" section 
>>>>>>>>>>> of "Importing External Data" Docs. It will take me a while to work 
>>>>>>>>>>> through it but I will post something back later, including results. 
>>>>>>>>>>> I just didn't want anyone to spend time posting a long reply in the 
>>>>>>>>>>> meantime.
>>>>>>>>>>>
>>>>>>>>>>> Fun fun! :)
>>>>>>>>>>>
>>>>>>>>>>> TRS-80
>>>>>>>>>>>
>>>>>>>>>>>  -- 
>>>>>>>>>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>>>>>>>>>  >>>>>>>>>>> https://tutanota.com <https://tutanota.com>
>>>>>>>>>>>
>>>>>>>>>>> 22. Jun 2018 12:08 by [email protected]:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> OK, so this is quite challenging for someone who doesn't really 
>>>>>>>>>>>> know Python. However I think it's a good exercise not only for 
>>>>>>>>>>>> myself but also to help other newbies who would like to try and 
>>>>>>>>>>>> get this awesome feature working.
>>>>>>>>>>>>
>>>>>>>>>>>> I have read everything I can in source and mailing list about CSV 
>>>>>>>>>>>> Import / Ingest and I've made some progress, but now I'm stuck. 
>>>>>>>>>>>>
>>>>>>>>>>>> Apologies in advance for ugly formatting, Google Groups apparently 
>>>>>>>>>>>> do not support inline text formatting, and I am communicating with 
>>>>>>>>>>>> the group via email.
>>>>>>>>>>>>
>>>>>>>>>>>> I've tried to (mostly) follow the naming conventions in the 
>>>>>>>>>>>> examples but it seems they have changed over time. Anyway, file 
>>>>>>>>>>>> structure looks like so:
>>>>>>>>>>>> ~/fin
>>>>>>>>>>>>     |---documents
>>>>>>>>>>>>     |---Downloads
>>>>>>>>>>>>     |---importers
>>>>>>>>>>>>     |    |---suncoast_g
>>>>>>>>>>>>     |         |---__init__.py   (this file shared below)
>>>>>>>>>>>>     |    |---__init__.py        (this file is empty)
>>>>>>>>>>>>     |---ledger.beancount
>>>>>>>>>>>>     |---ledger.config         (I have seen this also referenced as 
>>>>>>>>>>>> .import in docs)
>>>>>>>>>>>>
>>>>>>>>>>>> Here is my ledger.config file:
>>>>>>>>>>>> --------------------(begin ledger.config file)--------------------
>>>>>>>>>>>> #!/usr/bin/env python3
>>>>>>>>>>>> """Example import configuration."""
>>>>>>>>>>>>
>>>>>>>>>>>> # Insert our custom importers path here.
>>>>>>>>>>>> # (In practice you might just change your PYTHONPATH environment.)
>>>>>>>>>>>> import sys
>>>>>>>>>>>> from os import path
>>>>>>>>>>>> sys.path.insert(0, path.join(path.dirname(__file__)))
>>>>>>>>>>>>
>>>>>>>>>>>> from importers import suncoast_g
>>>>>>>>>>>> #from importers import acme_pdf
>>>>>>>>>>>>
>>>>>>>>>>>> from beancount.ingest import extract
>>>>>>>>>>>> #from beancount.ingest.importers import ofx
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> # Setting this variable provides a list of importer instances.
>>>>>>>>>>>> #
>>>>>>>>>>>> # Removed the following from below to replace with my own, saved 
>>>>>>>>>>>> for reference
>>>>>>>>>>>> #
>>>>>>>>>>>> #    utrade.Importer("USD",
>>>>>>>>>>>> #                    "Assets:US:UTrade",
>>>>>>>>>>>> #                    "Assets:US:UTrade:Cash",
>>>>>>>>>>>> #                    "Income:US:UTrade:{}:Dividend",
>>>>>>>>>>>> #                    "Income:US:UTrade:{}:Gains",
>>>>>>>>>>>> #                    "Expenses:Financial:Fees",
>>>>>>>>>>>> #                    "Assets:US:BofA:Checking"),
>>>>>>>>>>>> #
>>>>>>>>>>>> #    ofx.Importer("379700001111222",
>>>>>>>>>>>> #                 "Liabilities:US:CreditCard",
>>>>>>>>>>>> #                 "bofa"),
>>>>>>>>>>>> #
>>>>>>>>>>>> #    acme_pdf.Importer("Assets:US:AcmeBank"),
>>>>>>>>>>>> #
>>>>>>>>>>>> CONFIG = [
>>>>>>>>>>>>     suncoast_g.Importer("Assets:Suncoast:Checking-G"),
>>>>>>>>>>>> ]
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> # Override the header on extracted text (if desired).
>>>>>>>>>>>> extract.HEADER = ';; -*- mode: org; mode: beancount; coding: 
>>>>>>>>>>>> utf-8; -*-\n'
>>>>>>>>>>>> --------------------(end ledger.config file)--------------------
>>>>>>>>>>>>
>>>>>>>>>>>> OK now the __init__.py that is in suncoast_g contains following:
>>>>>>>>>>>> --------------------(begin __init__.py file)--------------------
>>>>>>>>>>>> #!/usr/bin/env python3
>>>>>>>>>>>>
>>>>>>>>>>>> #
>>>>>>>>>>>> # Configuration file for extracting Suncoast-G data
>>>>>>>>>>>> #
>>>>>>>>>>>>
>>>>>>>>>>>> from beancount.ingest import regression
>>>>>>>>>>>> from beancount.ingest.importers import csv
>>>>>>>>>>>>
>>>>>>>>>>>> from beancount.plugins import auto_accounts
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> class Importer(csv.Importer):
>>>>>>>>>>>>
>>>>>>>>>>>>     config = {csv.Col.DATE: 'Posted Date',
>>>>>>>>>>>>               csv.Col.TXN_DATE: 'Transaction Date',
>>>>>>>>>>>>               csv.Col.NARRATION: 'Description',
>>>>>>>>>>>>               csv.Col.AMOUNT_CREDIT: 'Deposit',
>>>>>>>>>>>>               csv.Col.AMOUNT_DEBIT: 'Withdrawal',
>>>>>>>>>>>>               csv.Col.BALANCE: 'Balance'}
>>>>>>>>>>>>
>>>>>>>>>>>>     def __init__(self, account):
>>>>>>>>>>>>         csv.Importer.__init__(
>>>>>>>>>>>>             self, self.config,
>>>>>>>>>>>>             account, 'Currency',
>>>>>>>>>>>>             ('Posted Date,Transaction Date,Description,'
>>>>>>>>>>>>              'Deposit,Withdrawal,Balance'),
>>>>>>>>>>>>             1)
>>>>>>>>>>>>
>>>>>>>>>>>>     def get_description(self, row):
>>>>>>>>>>>>         payee, narration = super().get_description()
>>>>>>>>>>>>         narration = '{} ({})'.format(narration, row.category)
>>>>>>>>>>>>         return payee, narration
>>>>>>>>>>>> --------------------(end __init__.py file)--------------------
>>>>>>>>>>>>
>>>>>>>>>>>> I have just copied this stuff and tried to figure it out. I'm sure 
>>>>>>>>>>>> I've got something wrong in here but I don't really know what I'm 
>>>>>>>>>>>> doing. FYI here is what the data looks like which is in G.csv in 
>>>>>>>>>>>> Downloads:
>>>>>>>>>>>>
>>>>>>>>>>>> Posted Date,Transaction Date,Description,Deposit,Withdrawal,Balance
>>>>>>>>>>>> 6/4/2018,6/4/2018,Withdrawal Debit Card SOME BAR & GRILL CITY ST 
>>>>>>>>>>>> Card XXXX,,($59.83),$229.15
>>>>>>>>>>>>
>>>>>>>>>>>> OK I think that's all the relevant info. So now when I do:
>>>>>>>>>>>>
>>>>>>>>>>>> ~/fin$ bean-identify ledger.config Downloads
>>>>>>>>>>>>
>>>>>>>>>>>> I get:
>>>>>>>>>>>>
>>>>>>>>>>>> **** /home/myname/fin/Downloads/A Sunnet History 6186156 
>>>>>>>>>>>> 23032018_21062018.csv
>>>>>>>>>>>> **** /home/myname/fin/Downloads/G.csv
>>>>>>>>>>>>
>>>>>>>>>>>> Which I think means it is identifying those 2 files (the only ones 
>>>>>>>>>>>> in there) as CSV, correct? I will point out that G.csv is an Asset 
>>>>>>>>>>>> account and is my first target here. The other one is a Liability 
>>>>>>>>>>>> account (credit card) and therefore has different fields (only one 
>>>>>>>>>>>> amount, and no balance). But I figure once I get this one working, 
>>>>>>>>>>>> that other one (and subsequent others) should be pretty easy.
>>>>>>>>>>>>
>>>>>>>>>>>> OK so now when I do:
>>>>>>>>>>>>
>>>>>>>>>>>> ~/fin$ bean-extract ledger.config Downloads
>>>>>>>>>>>>
>>>>>>>>>>>> I get:
>>>>>>>>>>>>
>>>>>>>>>>>> **** /home/myname/fin/Downloads/A Sunnet History 6186156 
>>>>>>>>>>>> 23032018_21062018.csv                                              
>>>>>>>>>>>>              
>>>>>>>>>>>> **** /home/myname/fin/Downloads/G.csv                              
>>>>>>>>>>>>                                                                    
>>>>>>>>>>>>    
>>>>>>>>>>>> ERROR:root:Importer importers.suncoast_g.Importer: 
>>>>>>>>>>>> "Assets:Suncoast:Checking-G".extract() raised an unexpected error: 
>>>>>>>>>>>> CSV config without header has non-index fields: {<Col.DATE: 
>>>>>>>>>>>> '[DATE]'>: 'Posted Date', <Col.TXN_DATE: '[TXN_DATE]'>: 
>>>>>>>>>>>> 'Transaction Date', <Col.NARRATION: '[NARRATION1]'>: 
>>>>>>>>>>>> 'Description', <Col.AMOUNT_CREDIT: '[CREDIT]'>: 'Deposit', 
>>>>>>>>>>>> <Col.AMOUNT_DEBIT: '[DEBIT]'>: 'Withdrawal', <Col.BALANCE: 
>>>>>>>>>>>> '[BALANCE]'>: 'Balance'}                                           
>>>>>>>>>>>>                                                                    
>>>>>>>>>>>>                  
>>>>>>>>>>>> ERROR:root:Traceback: Traceback (most recent call last):           
>>>>>>>>>>>>                                                                    
>>>>>>>>>>>>      
>>>>>>>>>>>>   File 
>>>>>>>>>>>> "/usr/local/lib/python3.6/dist-packages/beancount/ingest/extract.py",
>>>>>>>>>>>>  line 187, in extract                                          
>>>>>>>>>>>>     allow_none_for_tags_and_links=allow_none_for_tags_and_links)   
>>>>>>>>>>>>                                                                    
>>>>>>>>>>>>      
>>>>>>>>>>>>   File 
>>>>>>>>>>>> "/usr/local/lib/python3.6/dist-packages/beancount/ingest/extract.py",
>>>>>>>>>>>>  line 69, in extract_from_file                                 
>>>>>>>>>>>>     new_entries = importer.extract(file, **kwargs)
>>>>>>>>>>>>   File 
>>>>>>>>>>>> "/usr/local/lib/python3.6/dist-packages/beancount/ingest/importers/csv.py",
>>>>>>>>>>>>  line 189, in extract
>>>>>>>>>>>>     iconfig, has_header = normalize_config(self.config, 
>>>>>>>>>>>> file.head())
>>>>>>>>>>>>   File 
>>>>>>>>>>>> "/usr/local/lib/python3.6/dist-packages/beancount/ingest/importers/csv.py",
>>>>>>>>>>>>  line 340, in normalize_config
>>>>>>>>>>>>     "{}".format(config))
>>>>>>>>>>>> ValueError: CSV config without header has non-index fields: 
>>>>>>>>>>>> {<Col.DATE: '[DATE]'>: 'Posted Date', <Col.TXN_DATE: 
>>>>>>>>>>>> '[TXN_DATE]'>: 'Transaction Date', <Col.NARRATION: 
>>>>>>>>>>>> '[NARRATION1]'>: 'Description', <Col.AMOUNT_CREDIT: '[CREDIT]'>: 
>>>>>>>>>>>> 'Deposit', <Col.AMOUNT_DEBIT: '[DEBIT]'>: 'Withdrawal', 
>>>>>>>>>>>> <Col.BALANCE: '[BALANCE]'>: 'Balance'}
>>>>>>>>>>>>
>>>>>>>>>>>> ;; -*- mode: org; mode: beancount; coding: utf-8; -*-
>>>>>>>>>>>>
>>>>>>>>>>>> And this is where I'm currently stuck. I feel like it's something 
>>>>>>>>>>>> dumb, something not pointing at something else correctly but I 
>>>>>>>>>>>> don't know enough Python (yet) to figure it out myself. Any halp 
>>>>>>>>>>>> would be greatly appreciated. :)
>>>>>>>>>>>>
>>>>>>>>>>>> TRS-80
>>>>>>>>>>>>  -- 
>>>>>>>>>>>>  Securely sent with Tutanota. Claim your encrypted mailbox today! 
>>>>>>>>>>>>  >>>>>>>>>>>> https://tutanota.com 
>>>>>>>>>>>> <https://tutanota.com>>>>>>>>>>>>>  
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>>  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 post to this group, send email to [email protected].
>>>>>>>>>>>>  To view this discussion on the web visit >>>>>>>>>>>> 
>>>>>>>>>>>> https://groups.google.com/d/msgid/beancount/LFcF9ZJ--3-0%40tutanota.com
>>>>>>>>>>>>  
>>>>>>>>>>>> <https://groups.google.com/d/msgid/beancount/LFcF9ZJ--3-0%40tutanota.com?utm_medium=email&utm_source=footer>>>>>>>>>>>>>
>>>>>>>>>>>>  .
>>>>>>>>>>>>  For more options, visit >>>>>>>>>>>> 
>>>>>>>>>>>> https://groups.google.com/d/optout 
>>>>>>>>>>>> <https://groups.google.com/d/optout>>>>>>>>>>>>> .
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>  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 post to this group, send email to [email protected].
>>>>>>>>>>>  To view this discussion on the web visit >>>>>>>>>>> 
>>>>>>>>>>> https://groups.google.com/d/msgid/beancount/LFciKzu--3-0%40tutanota.com
>>>>>>>>>>>  
>>>>>>>>>>> <https://groups.google.com/d/msgid/beancount/LFciKzu--3-0%40tutanota.com?utm_medium=email&utm_source=footer>>>>>>>>>>>>
>>>>>>>>>>>  .
>>>>>>>>>>>  For more options, visit >>>>>>>>>>> 
>>>>>>>>>>> https://groups.google.com/d/optout 
>>>>>>>>>>> <https://groups.google.com/d/optout>>>>>>>>>>>> .
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>  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 post to this group, send email to [email protected].
>>>>>>>>>>  To view this discussion on the web visit >>>>>>>>>> 
>>>>>>>>>> https://groups.google.com/d/msgid/beancount/LFdnLh3--3-0%40tutanota.com
>>>>>>>>>>  
>>>>>>>>>> <https://groups.google.com/d/msgid/beancount/LFdnLh3--3-0%40tutanota.com?utm_medium=email&utm_source=footer>>>>>>>>>>>
>>>>>>>>>>  .
>>>>>>>>>>  For more options, visit >>>>>>>>>> 
>>>>>>>>>> https://groups.google.com/d/optout 
>>>>>>>>>> <https://groups.google.com/d/optout>>>>>>>>>>> .
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>  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 post to this group, send email to [email protected].
>>>>>>>>>  To view this discussion on the web visit >>>>>>>>> 
>>>>>>>>> https://groups.google.com/d/msgid/beancount/LFmJI7Y--B-0%40tutanota.com
>>>>>>>>>  
>>>>>>>>> <https://groups.google.com/d/msgid/beancount/LFmJI7Y--B-0%40tutanota.com?utm_medium=email&utm_source=footer>>>>>>>>>>
>>>>>>>>>  .
>>>>>>>>>  For more options, visit >>>>>>>>> https://groups.google.com/d/optout 
>>>>>>>>> <https://groups.google.com/d/optout>>>>>>>>>> .
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>  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 post to this group, send email to [email protected].
>>>>>>>>  To view this discussion on the web visit >>>>>>>> 
>>>>>>>> https://groups.google.com/d/msgid/beancount/CAK21%2BhNT9Wvhd9EtFvp_F6sNKBV4NAFBmw_yJyu_umkHPwY%2Bsw%40mail.gmail.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/beancount/CAK21%2BhNT9Wvhd9EtFvp_F6sNKBV4NAFBmw_yJyu_umkHPwY%2Bsw%40mail.gmail.com?utm_medium=email&utm_source=footer>>>>>>>>>
>>>>>>>>  .
>>>>>>>>  For more options, visit >>>>>>>> https://groups.google.com/d/optout 
>>>>>>>> <https://groups.google.com/d/optout>>>>>>>>> .
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>  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 post to this group, send email to [email protected].
>>>>>>>  To view this discussion on the web visit >>>>>>> 
>>>>>>> https://groups.google.com/d/msgid/beancount/LFsdlPg--3-0%40tutanota.com 
>>>>>>> <https://groups.google.com/d/msgid/beancount/LFsdlPg--3-0%40tutanota.com?utm_medium=email&utm_source=footer>>>>>>>>
>>>>>>>  .
>>>>>>>  For more options, visit >>>>>>> https://groups.google.com/d/optout 
>>>>>>> <https://groups.google.com/d/optout>>>>>>>> .
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>  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 post to this group, send email to [email protected].
>>>>>>  To view this discussion on the web visit >>>>>> 
>>>>>> https://groups.google.com/d/msgid/beancount/LHmWkuU--3-0%40tutanota.com 
>>>>>> <https://groups.google.com/d/msgid/beancount/LHmWkuU--3-0%40tutanota.com?utm_medium=email&utm_source=footer>>>>>>>
>>>>>>  .
>>>>>>  For more options, visit >>>>>> https://groups.google.com/d/optout 
>>>>>> <https://groups.google.com/d/optout>>>>>>> .
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>  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 post to this group, send email to [email protected].
>>>>>  To view this discussion on the web visit >>>>> 
>>>>> https://groups.google.com/d/msgid/beancount/LHmaD4f--F-0%40tutanota.com 
>>>>> <https://groups.google.com/d/msgid/beancount/LHmaD4f--F-0%40tutanota.com?utm_medium=email&utm_source=footer>>>>>>
>>>>>  .
>>>>>  For more options, visit >>>>> https://groups.google.com/d/optout 
>>>>> <https://groups.google.com/d/optout>>>>>> .
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>  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 post to this group, send email to [email protected].
>>>>  To view this discussion on the web visit >>>> 
>>>> https://groups.google.com/d/msgid/beancount/LHmzwng--3-0%40tutanota.com 
>>>> <https://groups.google.com/d/msgid/beancount/LHmzwng--3-0%40tutanota.com?utm_medium=email&utm_source=footer>>>>>
>>>>  .
>>>>  For more options, visit >>>> https://groups.google.com/d/optout 
>>>> <https://groups.google.com/d/optout>>>>> .
>>>>
>>
>>
>>
>> --
>>  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 post to this group, send email to >> [email protected] 
>> <mailto:[email protected]>>> .
>>  To view this discussion on the web visit >> 
>> https://groups.google.com/d/msgid/beancount/660e92ff-2ba4-4c47-9fbd-eb76b8ec6571%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/beancount/660e92ff-2ba4-4c47-9fbd-eb76b8ec6571%40googlegroups.com?utm_medium=email&utm_source=footer>>>
>>  .
>>  For more options, visit >> https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>>> .
>>
>
>
>
> --
>  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 post to this group, send email to > [email protected] 
> <mailto:[email protected]>> .
>  To view this discussion on the web visit > 
> https://groups.google.com/d/msgid/beancount/CAK21%2BhNo9eyhKOLsaa%3DgrHV%3D-_fmBKv6D6J5kAr4HcVy9BTTEQ%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/beancount/CAK21%2BhNo9eyhKOLsaa%3DgrHV%3D-_fmBKv6D6J5kAr4HcVy9BTTEQ%40mail.gmail.com?utm_medium=email&utm_source=footer>>
>  .
>  For more options, visit > https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>> .
>

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/LcbUXit--3-1%40tutanota.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to