You’re welcome, and glad to hear!

Found this 
<https://stackoverflow.com/questions/63723478/default-output-file-in-vs-code-being-stored-in-utf-16-le-whereas-default-is-set>
 
if it helps.
​


On Saturday, September 21, 2024 at 8:06:20 AM UTC-7 Joshua Cabrera wrote:

> Thank you so much! Everything seems to be working now, so I just have to 
> tweak my.import and catch up on recording in my ledger.
>
> Once I'm caught up, I'll come back to automating the download and extract 
> workflow.
>
> Regarding the encoding issue, my first guess was it's because I'm doing 
> all this on Windows and using the Command Prompt shell, instead of bash. 
> That theory appeared to be incorrect after creating some test files from 
> the shell, which resulted in utf-8 encoding.
>
> Next, I tried creating test files using the integrated terminal in VS Code 
> since technically that's where I've been running my commands, and it turns 
> out that was the culprit. ¯\_(ツ)_/¯
>
> On Friday, September 20, 2024 at 9:42:32 PM UTC-5 Red S wrote:
>
>> Thanks for the file! I can’t tell whether it was an artifact of how the 
>> ofx file you attached got created or whether the original ofx file suffers 
>> from this problem, but your ofx file is encoded in UTF-16 even though the 
>> header claims it’s UTF-8. ofxparse fails because of this. Running this 
>> allows it to work normally:
>> iconv -f UTF-16 -t UTF-8 fidelity_X12345678.ofx -o a.ofx ofx-summarize 
>> a.ofx Total number of accounts: 1
>> ----------------
>> Account info:   X12345678 fidelity.com
>> Statement info: 2024-07-01 00:00:00 -- 2024-07-31 00:00:00. Bal: []
>> Types:  {'cash', 'check', 'dep', 'payment'}
>>
>> 2024-07-30 04:00:00 cash THIS IS FUN Note -15.0000
>> 2024-07-30 04:00:00 dep THIS IS FUN Note -15.0000
>> 2024-07-29 04:00:00 check THIS IS FUN Note -15.0000
>> 2024-07-26 04:00:00 cash THIS IS FUN Note -15.0000
>> 2024-07-26 04:00:00 cash THIS IS FUN Note -15.0000
>> ​
>> It's not the same stack trace as you got originally though. Either way, 
>> try this?
>>
>> On Friday, September 20, 2024 at 6:38:29 PM UTC-7 Joshua Cabrera wrote:
>>
>>> Thanks, Red. The file itself looks okay after another look.
>>>
>>> I tried the new line trick, but it didn't change the results.
>>>
>>> The simple parse threw the same unpacking value error on my ofx while 
>>> working on the sample ofx.
>>>
>>> I'm sharing a sanitized version of my ofx (replaced account number, 
>>> transaction details, etc.) and my import file.
>>>
>>> In the meantime, I'll try a different Fidelity account and smaller 
>>> date/transaction ranges.
>>> On Friday, September 20, 2024 at 5:09:18 PM UTC-5 Red S wrote:
>>>
>>>> This is uncommon, but typically because there was an issue downloading 
>>>> the ofx. Usually because of authentication problems. Have you examined the 
>>>> ofx to see if it’s valid?
>>>>
>>>> Try this to make it more readable: sed 's/>/>\n/g' xyz.ofx
>>>> ​
>>>>
>>>> You should see something like this on the top:
>>>> <STATUS> <CODE> 0 </CODE> <SEVERITY> INFO </SEVERITY> <MESSAGE> Success 
>>>> </MESSAGE> </STATUS> 
>>>> ​
>>>>
>>>> If you see that, then try a really simple parse:
>>>> #!/usr/bin/env python3 import ofxparse ofx_file_path = 
>>>> "your_ofx_file.ofx" with open(ofx_file_path, 'r') as ofx_file: ofx = 
>>>> ofxparse.OfxParser.parse(ofx_file) print("Account type:", 
>>>> ofx.account.account_type) print("Account ID:", ofx.account.account_id) 
>>>> ​
>>>>
>>>> On Friday, September 20, 2024 at 2:54:15 PM UTC-7 Joshua Cabrera wrote:
>>>>
>>>>> So, I've got my .ofx file and am not worried about the download task 
>>>>> anymore. That's the good news.
>>>>>
>>>>> The bad news is now I'm stuck on the import task.
>>>>> bean-extract my.import fidelity_1234_july2024.ofx
>>>>>
>>>>>
>>>>> Results
>>>>> ERROR:root:Importer 
>>>>> beancount_reds_importers.importers.fidelity.Importer.identify() raised an 
>>>>> unexpected error: not enough values to unpack (expected 2, got 1)
>>>>> Traceback (most recent call last):
>>>>>   File 
>>>>> "C:\Users\joshd\AppData\Local\Programs\Python\Python312\Lib\site-packages\beancount\ingest\identify.py"
>>>>> , line 63, in find_imports
>>>>>     matched = importer.identify(file)
>>>>>               ^^^^^^^^^^^^^^^^^^^^^^^
>>>>>   File 
>>>>> "C:\Users\joshd\AppData\Local\Programs\Python\Python312\Lib\site-packages\beancount_reds_importers\libreader\reader.py"
>>>>> , line 26, in identify
>>>>>     self.initialize_reader(file)
>>>>>   File 
>>>>> "C:\Users\joshd\AppData\Local\Programs\Python\Python312\Lib\site-packages\beancount_reds_importers\libreader\ofxreader.py"
>>>>> , line 26, in initialize_reader
>>>>>     self.ofx = self.read_file(file)
>>>>>                ^^^^^^^^^^^^^^^^^^^^
>>>>>   File 
>>>>> "C:\Users\joshd\AppData\Local\Programs\Python\Python312\Lib\site-packages\beancount_reds_importers\libreader\ofxreader.py"
>>>>> , line 57, in read_file
>>>>>     return ofxparse.OfxParser.parse(fh)
>>>>>            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>   File 
>>>>> "C:\Users\joshd\AppData\Local\Programs\Python\Python312\Lib\site-packages\ofxparse\ofxparse.py"
>>>>> , line 396, in parse
>>>>>     ofx_file = OfxPreprocessedFile(file_handle)
>>>>>                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>   File 
>>>>> "C:\Users\joshd\AppData\Local\Programs\Python\Python312\Lib\site-packages\ofxparse\ofxparse.py"
>>>>> , line 155, in __init__
>>>>>     super(OfxPreprocessedFile, self).__init__(fh)
>>>>>   File 
>>>>> "C:\Users\joshd\AppData\Local\Programs\Python\Python312\Lib\site-packages\ofxparse\ofxparse.py"
>>>>> , line 82, in __init__
>>>>>     self.read_headers()
>>>>>   File 
>>>>> "C:\Users\joshd\AppData\Local\Programs\Python\Python312\Lib\site-packages\ofxparse\ofxparse.py"
>>>>> , line 95, in read_headers
>>>>>     header, value = line.split(six.b(":"))
>>>>>     ^^^^^^^^^^^^^
>>>>> ValueError: not enough values to unpack (expected 2, got 1)
>>>>> ;; -*- mode: beancount -*-
>>>>>
>>>>>
>>>>> If I run ofx-summarize, it throws the same error, so I found a sample 
>>>>> .ofx online and tested ofx-summarize with it. 
>>>>>
>>>>> And of course, the example works, so it looks like Fidelity is 
>>>>> providing an incorrectly formatted file? I noticed it doesn't have a 
>>>>> single 
>>>>> line break until the end of the file.
>>>>>
>>>>> On Monday, September 16, 2024 at 11:01:14 PM UTC-5 Red S wrote:
>>>>>
>>>>>> Glad you got it working with ofxget. bean-download is just a wrapper 
>>>>>> around ofxget or whatever command you have to parallelize all your 
>>>>>> downloads. If you don’t have several accounts you’re using it with, it’s 
>>>>>> of 
>>>>>> limited use. The built in template for fidelity is here, and lets 
>>>>>> you store your password securely in pass so it’s not stored in 
>>>>>> plaintext. You could simply paste your working ofxget command into the 
>>>>>> bean-download config file to get it to work if the parallelization 
>>>>>> is useful for you. Either way, that’s the last thing I’d do after I got 
>>>>>> everything else in the import workflow working first.
>>>>>>
>>>>>> And oh wow, I’d forgotten that Fidelity stopped 
>>>>>> <https://www.reddit.com/r/fidelityinvestments/comments/17tpgfr/why_doesnt_fidelity_support_ofx_downloads_anymore/>
>>>>>>  letting 
>>>>>> you download ofx via their website, and only let you do it via direct 
>>>>>> download.
>>>>>> ​
>>>>>>
>>>>>> On Monday, September 16, 2024 at 7:31:34 PM UTC-7 Joshua Cabrera 
>>>>>> wrote:
>>>>>>
>>>>>>> Quick update:
>>>>>>>
>>>>>>> Installed ofxget and manage to get my ofxget.cfg updated using 
>>>>>>> ofxget acctinfo. Not sure if this required for bean-download.
>>>>>>>
>>>>>>> Also downloaded a .ofx file using:
>>>>>>> ofxget stmt fidelity > c:\users\joshd\fidelity.ofx
>>>>>>>
>>>>>>> Struggling to my download.cfg and bean-download download working - 
>>>>>>> keep getting:
>>>>>>> 1/1 sites failed:    fidelity
>>>>>>>
>>>>>>> Will keep trying whenever I have time this week.
>>>>>>> On Sunday, September 15, 2024 at 9:24:33 PM UTC-5 Red S wrote:
>>>>>>>
>>>>>>>> My reason for using .csv over .ofx is simply familiarity and ease 
>>>>>>>> of starting up.
>>>>>>>>
>>>>>>>> I have no experience with ofx and thought the learning curve would 
>>>>>>>> be much steeper, and I already feel like I'm drowning a bit as a 
>>>>>>>> layperson.
>>>>>>>>
>>>>>>>> I know it may seem like that, especially given ofx is not a human 
>>>>>>>> readable format. But might I suggest giving that a shot first, and you 
>>>>>>>> might be pleasantly surprised. Because there is nothing to do, no 
>>>>>>>> importer 
>>>>>>>> to write, since it is a machine format with an official spec, unlike 
>>>>>>>> csv. 
>>>>>>>> The learning curve should be close to zero. There are other 
>>>>>>>> benefits 
>>>>>>>> <https://reds-rants.netlify.app/personal-finance/a-word-about-input-formats-use-ofx-when-you-can/>
>>>>>>>>  
>>>>>>>> too.
>>>>>>>>
>>>>>>>> I'll look into the csvreader changes you mentioned to try making a 
>>>>>>>> replacement for prepare_raw_columns() and also look further into ofx.
>>>>>>>>
>>>>>>>> If I were you, I’d definitely spend five minutes with ofx first. 
>>>>>>>> And reds-importers ships with ofx-summarize which you can use to 
>>>>>>>> peek inside and poke around an ofx file, which makes it a lot less 
>>>>>>>> opaque 
>>>>>>>> and easy on a layperson.
>>>>>>>>
>>>>>>>> Thanks for the help here and confirming I'm doing alright, and also 
>>>>>>>> thank you for maintaining it!
>>>>>>>>
>>>>>>>> Happy to, and glad its helpful!
>>>>>>>> ​
>>>>>>>>
>>>>>>>

-- 
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 beancount+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/ec40ebc8-1a09-4eda-8635-4d908d1a5eaan%40googlegroups.com.

Reply via email to