On 11 June 2014 18:49, Stefano Zacchiroli  wrote:
> 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"
>
It does learn payees and accounts from the file, it doesn't learn tags.

As I don't use tags it's unlikely that I will take the time to add it.

> - 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 :)
>
It writes a line to the mappings file each time it finishes processing
a transaction.

I always hit Ctrl-C just after I make a mistake processing a
transaction, because the mapping file will contain all the right data
up to that point I can rerun the tool and it will have remembered all
the correct mappings up to the point where I made a mistake.


> - 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.
>
This is a good idea.


> - 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.
>
Sounds very reasonable to me.

> - 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.
>
Yes I think what is wanted is something like the mapping file being
able to use back references from the regex.

/INTERNET TRANSFER - *\([^-]*\) - PETER ROSS/,/\1/,Assets:Bank

So the line

INTERNET TRANSFER - FOOBAR INC - PETER ROSS would map to payee FOOBAR INC


>   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.
>
Please do.

It's unlikely that I will get to any of these anytime soon, but they
are all very reasonable suggestions.

Thanks for taking the time to explain them.

Pete

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to