-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Package only built for specific input csv formats #13
Comments
I want to join the job. I lived in China. I want to import bank ledger to gnucash. Different bank has different csv files. I want to use an ini file to config them. |
I'm happy to hear you want to help out! Feel free to fork the repository, fix the changes, and submit a pull request. I'll try and compile a quick list of things that need to be changed. I've done a good bit of commenting on the code, so hopefully you can follow along with what everything does there. Otherwise, feel free to ask any questions you have and I'll try and answer them (it's been awhile since I've looked at the project). |
List of things to make module data source agnostic. Some of these can be fixed by simply changing the hard-coded strings to dictionary lookups. Others (such as the debit/credit distinction, see below) will require more of an architecture switch. I've seperated them as such below. Also, we'd probably want to have a separate We'd also need to factor in whether or not certain CSVs have certain information to begin with (such as Notes, descriptions, etc.). Simple Dictionary Changes (ie. different CSV headers):
Architecture Switch:
This will probably need to be split into different sets of logic statements. For example, in the
These lines combines two separate strings, so this may have issues is users don't have anything to combine. Maybe something like: listofstringheaders = ["Notes", "Original Description"]
if len(listofstringheaders) > 0:
notestring = ''
for header in listofstringheaders:
notestring += ' ' + current_transaction[header]
temp['note'] = notestring
else:
temp['note'] = '' where I think that's it. Feel free to add as you find other things. |
Thank you. I should read your code carefully first. |
I'd also like to make this package more versatile. Some kind of translation builder tool would be key, I think, rather than trying to make the code smart enough to handle any csv thrown at it. I personally have 5 different transaction sources and would need at least 4 configurations to import everything smoothly. I think we can create an automatic translation builder than have a set of translation review and editing tools. A simple gui comes to mind for the last part. Thoughts? |
I think starting more minimal would be my preference. I'm a bit wary of trying to develop anything more automated than what I already have built in (namely the internal-transaction detection), as I'm still not completely trusting of it (hence the instructions on the README for how to double-check it). Since this tools is primary made for migration (ie. one-use), having to do a little bit of upfront work that "guarantees" (depending on the user) the system will work seems more preferable than purely relying on an automated system. I'm honestly not really sure how an automated system would work as the inputs aren't guaranteed to be in any specific format (heading names, content, etc.). That said, I'm willing to hear ideas. |
I worked on it recently. I found that I can not keep compatibility. So I make another package based on this project. Speaking of translation, I can translate from English to Chinese. |
What I had in mind was a split process between expense accounts (categories
on bank statements) and asset/liability accounts (bank accounts/credit
cards) using an exact match search, regex match search for the remaining,
followed by manual review and completion. It'd get the user well along the
translation path.
…On Mon, Dec 14, 2020, 4:06 AM gorf ***@***.***> wrote:
I worked on it recently. I found that I can not keep compatibility. So I
make another package based on this project. Speaking of translation, I can
translate from English to Chinese.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#13 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AIQ7MPHC32HRC3I2VHTUVFDSUXPSFANCNFSM4FO4CPGQ>
.
|
Column contents and names are hard coded. They currently follow the Mint CSV export format.
There needs to be more flexibility to what CSV files can be imported. Suggest it be combined into the
translation.json
in someway.The text was updated successfully, but these errors were encountered: