I just noticed the csv.py code doesn't allow that. Let me add an option real quick.
On Sun, Feb 17, 2019 at 3:36 PM Martin Blais <[email protected]> wrote: > Your CSV file looks normal. > The CSV sniffer - the piece of code which attempts to automatically detect > the dialect / separator from a CSV file contents - fails, for some reason > I'm not familiar with. > Try specifying the delimiter explicitly. > > On Thu, Feb 14, 2019 at 10:41 PM <[email protected]> wrote: > >> Hi, >> >> I'm trying to get importing a CSV file to work. bean-identify tells me >> this: >> >> $ bean-identify personal.import Downloads >> **** /home/user/personal/finance/accounting/Downloads/Hudsons.csv >> Importer: importers.hudsons.Importer: >> "Liabilities:CA:HudsonsBay:Mastercard" >> Account: Liabilities:CA:HudsonsBay:Mastercard >> >> So I know that this part works. However, when I try to do the extract, I >> get this: >> >> $ bean-extract personal.import Downloads >> ERROR:root:Importer importers.hudsons.Importer: >> "Liabilities:CA:HudsonsBay:Mastercard".extract() raised an unexpected >> error: Could not determine delimiter >> ERROR:root:Traceback: Traceback (most recent call last): >> File "/usr/lib/python3/dist-packages/beancount/ingest/extract.py", line >> 191, in extract >> allow_none_for_tags_and_links=allow_none_for_tags_and_links) >> File "/usr/lib/python3/dist-packages/beancount/ingest/extract.py", line >> 69, in extract_from_file >> new_entries = importer.extract(file, **kwargs) >> File >> "/usr/lib/python3/dist-packages/beancount/ingest/importers/csv.py", line >> 186, in extract >> iconfig, has_header = normalize_config(self.config, file.head(), >> self.csv_dialect) >> File >> "/usr/lib/python3/dist-packages/beancount/ingest/importers/csv.py", line >> 324, in normalize_config >> has_header = csv.Sniffer().has_header(head) >> File "/usr/lib/python3.7/csv.py", line 394, in has_header >> rdr = reader(StringIO(sample), self.sniff(sample)) >> File "/usr/lib/python3.7/csv.py", line 188, in sniff >> raise Error("Could not determine delimiter") >> _csv.Error: Could not determine delimiter >> >> ;; -*- mode: org; mode: beancount; coding: utf-8; -*- >> >> >> The csv file looks pretty normal, it looks like this: >> >> Stage,Transaction Date,Posted Date,Card No.,Description,Debit,Credit >> POSTED,2019-02-09,2019-02-11,4524,PHARMAPRIX #0029 MONTREAL >> QC,14.69 >> POSTED,2019-02-09,2019-02-11,4524,RACHELLE-BERY #8617 MONTREAL >> QC,80.95 >> >> etc. >> >> My __init__.py looks like this: >> >> #!/usr/bin/env python3 >> 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: 'Credit', >> csv.Col.AMOUNT_DEBIT: 'Debit'} >> >> def __init__(self, account): >> csv.Importer.__init__( >> self, self.config, >> account, 'CAD', >> ('Stage,Transaction Date,Posted Date,Card No.,Description,' >> 'Debit,Credit'), >> 1) >> >> def get_description(self, row): >> payee, narration = super().get_description() >> narration = '{} ({})'.format(narration, row.category) >> return payee, narration >> >> >> Is there something I'm missing here? >> >> Thanks! >> crust >> >> -- >> 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/4073e7ff-1da6-42d1-8808-40e8dcce6951%40googlegroups.com >> <https://groups.google.com/d/msgid/beancount/4073e7ff-1da6-42d1-8808-40e8dcce6951%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit 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%2BhOUWh%3DpEvEhnZuK1F6A5gOtmPu3-zei9WPAe%3D3fVAp85g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
