--
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+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/3ku5paorsc7iygd3zg7i433b7j46ecycgwgd3hvun757niycfy%40pnnt32hdaald.
--
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+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/9f551ccd-4182-4a94-a8a2-31ab19f0f870%40grinta.net.
Nice question.
red’s importers has the most active community by far, and seems to focus heavily on a “run the script every time you look at the reports” workflow
The purpose of reds_importers is to make writing importers easy by factoring out the most laborious parts. It actually uses beangulp*, and is simply a higher level layer over it.
reds_importers doesn’t impose any particular workflow outside beangulp’s, but if you are referring to this script, that’s only a reference workflow presented to inspire and jumpstart people new to Beancount, importers, or scripting. The sample script is a simple layer that calls beangulp’s bean-identify, bean-extract, and bean-file, which you can do yourself too. The idea is to have you build a workflow that works for you (including, for example, verifying smart_importer's categorization).
I wrote reds_importers originally because I wanted to eliminate a lot of repeated code in importers. The fundamental idea is, all any importer should do is handle quirks in the input file, and map data columns to standard fields. Everything else should be handled by a common transaction builder, which exist for investment accounts, banks/credit cards, and paychecks.
A few other problems were also solved along the way:
So for each importer, you simply specify a reader and a transaction builder, and then express only the quirks and field mapping.
reds_importers follows the standard approach of relying on other tools to do what they do well (eg: ofxparse, petl, beangulp, smart_importer for categorization, etc.), which lends itself to building your own automation workflow.
I don’t have unit tests on my importers, and I’m importing from CSV’s because I just got the simplest thing working. It’s a KISS setup that’s exactly as messy as it sounds.
You probably already noticed the advantage of beangulp, which has a framework to write unit tests. Which reds_importers also uses.
So given that I need to do an overhaul anyways, I’m curious why, for example, James doesn’t use red’s scripts.
Is it just that a fully automated setup is harder to build? The peace of mind from looking at the web UI to verify stuff?
I’d be curious too.
Mini rant: I’d love for anyone who writes an importer to come to the same realization Felipe did, and write it using the beangulp API. This makes workflow and testing integration far easier for other users not to mention pulling it into higher level import systems like reds_importers, beancount-import, and such. Of course, consider writing importers for reds_importers, beancount-import and so on, but of course, these are third-party projects, so I understand if you don't.
I’m guessing this is not as common because most either aren’t aware of beangulp’s existence or perhaps because it seems like a barrier to understand the API and work with it. As Felipe discovered, it’s actually very simple.
*Technically, it uses the importers code in Beancount v2: bean-{identify, extract, file}, because beangulp has no release right now. But for the purposes of this discussion, these two are practically the same, and I refer to the v2 importers code as beangulp.
Mini rant: I’d love for anyone who writes an importer to come to the same realization Felipe did, and write it using the beangulp API.
I’ve done the same thing for exactly the same reasons, and thus, beancount_reds_importers is written against bean-{identify, extract, file} in Beancount v2 instead of beangulp. Good catch, thank you, I should’ve been more explicit and instead recommended that people write importers against released code, which in this case is Beancount v2’s importers.
--
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+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/8707764a-7279-4f9b-96c4-86063882b26an%40googlegroups.com.
Not releases, but just a single release would suffice.
The first release implies the author/maintainer deemed it release-worthy, which is meaningful when viewed in the context of the reputation of the author/maintainer. This message explicitly says it’s not ready for a release, and that being a strong warning. Fair enough if that’s the state of it, but that may also reasonably interpreted to mean one shouldn’t be coding and releasing other software against it. Plus, a release would result in a PyPI package presumably, which is also required for other packages to depend on it.
Regular releases/commits help signify activity, and are not an ask, at least from me here.
Does that help clarify?
--
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+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/7332b74a-39c8-476d-83dd-9dae2ed7c864n%40googlegroups.com.