reubano / csv2ofx

A Python library and command line tool for converting csv to ofx and qif files
MIT License
195 stars 111 forks source link

Ideas for improving the documentation #23

Open mscheper opened 7 years ago

mscheper commented 7 years ago

I played with this library today, hoping it'd help me convert my financial data into a format I could upload to QuickBooks. Unfortunately, QuickBooks rejects the output files, with unhelpful error messages, even though GNUCash does them.

In any case, some improvement to the README.md documentation would've helped me understand this library a little more quickly. Here are some suggestions:

reubano commented 7 years ago

Great ideas! #22 partially addresses this. As of the commit closing that issue, you can set a custom date format in the mapping. Also, one thing to point out is that the mapping values don't have to be functions.. something like {'date': 'txn_date'} is also acceptable. If you have time to submit a PR with necessary documentation updates, I would be very grateful!

reubano commented 7 years ago

I agree, I never really explained split in detail... it's mentioned here and is easiest to understand by comparing mint.csv (not split) to xero.csv (split). To parse xero.csv you would add --collapse Description --mapping xero to the command.

reubano commented 7 years ago

Also, one thing to point out is that the mapping values don't have to be functions.. something like {'date': 'txn_date'}

Sorry, I misspoke here.... {'bank': 'My Bank'} is a better example. If you pass a string, that value is used for all rows. You only need a function if the value is dependent on information in the row. E.g., in the initial example, you could have {'date': itemgetter('txn_date')}.

reubano commented 7 years ago

To parse xero.csv you would add --collapse Description --mapping xero to the command.

This works because xero.py has mapping = {'is_split': True, ...}.

reubano commented 7 years ago

CR #16

mscheper commented 7 years ago

Thanks for the reply. I'll keep this tab open, but I'm trying to get some work finished before travelling so I honestly don't think it's likely I'll have time to make good improvements any time soon. But don't give up hope. ☺ Thanks for making the code available.