On Wed, Jun 11, 2014 at 10:55:59AM +1000, Peter Ross wrote:
> > I've just integrated icsv2ledger in my accounting work-flow. I've
> > managed to make it do what I want, but I've also found it a bit
> > rough around the edges --- I can elaborate more if people on this
> > list are interested.
> >
> I'm interested as a very part-time developer of icsv2ledger.
Cool, here we go then, starting from your comments:
> It works well for what I want to do which is to enter 10-20
> transactions a week and get the right payee and account most of the
> time, and as a developer, writing a regex is not difficult for me to
> do.
>
> What I really like is the auto-completion, and what I find painful is
> when the auto-completion doesn't work as expected.
Both agreed. icsv2ledger's auto completion is very handy. Same for the
history of past decisions, that are re-used to guide future decisions
and are conveniently stored in an editable format. These are great
pluses, which make me generally happy about icsv2ledger.
On the pet peeve front I have:
- icsv2ledger is able to learn account names from ledger files, but is
not able to learn tags or payees from ledger files. Tags/payees are
only learned from past icsv2ledger decisions. This might be due to the
fact that icsv2ledger only uses ledger as "ledger accounts FILE"; I
wonder if it shouldn't instead use something more heavy weight, such
as "ledger xml"
- icsv2ledger UI is kinda "scary". On the one hand, when processing a
lot of transactions I often fear that if something goes wrong (Ctrl-C,
or any other Python exception) I will lose all the work so far. This
hasn't yet happened to me but, as a mere user, I didn't get a feeling
an overall feeling of robustness --- it might be excessive paranoia on
my side, though :)
- OTOH, I'd also like to have an extra (maybe optional) review step
after processing each transaction, that allows me to inspect the
transaction generated by icsv2ledger and possibly go back to change my
decisions about it. In a sense, icsv2ledger seems very prone to
mistyping: if by mistake I type/complete the wrong payee/tag and hit
Enter, the next moment to review my wrong inputs will be the very end
of the process --- which might 15 minutes later, when I'll have forgot
the context. Also, by then icsv2ledger would have learned my wrong
decision, and I'll have to edit the history file to amend my mistake.
It really feels like an extra review/confirm step is missing.
- the interface for adding/removing tags is quite clunky when using tags
with values. To remove a tag like "foo: very long value" you have to
type "-foo: very long value", whereas I'd expect "-foo" to work.
- maybe outside the scope of icsv2ledger, but I've the need of doing
some more advanced processing on my CSV files. For instance, in all
transactions related to credit/debit cards, my bank includes in the
description something like "CARD 12345678", and I want to convert that
to valued tags like "Card: 12345678". That's trivial to do with a
regexp, but icsv2ledger doesn't support it. In a sense, what I lack is
the equivalent of icsv2ledger [FOO_addons] accounts, but with a more
fine-grained granularity than columns.
What I'm now doing is pre-processing my CSV files to add the relevant
columns using regexp-based matches, but it really feels like
icsv2ledger would be the right place for such a feature.
This is all I have for now.
I can't promise patches, but if you think it'd be useful/welcome I can
submit these as bug reports on GitHub.
Thanks for reading thus far :-)