![]() Order-Independence īeancount offers a guarantee that the ordering of its directives in an input file is irrelevant to the outcome of its computations. It isolates itself from the ugly details of external sources of data in this way. that of fetching and converting it segment from each other very well naturally: Beancount provides a core which allows you to ingest all the transactional data and derive reports from it, and its syntax is the hinge that connects it to these external repositories of transactions or prices. Most importantly, the problems of representing the data vs. External data formats can be notoriously bad, and they are too numerous to handle all of them (handling just the most common subset would beg the question of where to include the implementation of new converters). In addition, fetching and converting external data is very messy. Isolating the input to a single source makes it easier to debug, reproduce and isolate problems when they occur. In particular, it should not contact any external networked service or open any “global” files, even just a cache of historical prices or otherwise. Invariants Isolation of Inputs īeancount should accept input only from the text file you provide to its tools. But I figured it would still be worthwhile to spell out some of the ideas that led to this design here. Normally one writes a design document before writing the software. Expect some random thoughts that aren’t important for users. This is a place where I wrote about a lot of the ideas behind Beancount that did not find any other venue. This should also be of interest to developers. However, if you just want to understand more deeply how Beancount works this document should be very helpful. This is not a user's manual if you are interested in just using Beancount, see the associated User's Manual and all the other documents available here. This document describes the principles behind the design of Beancount and a high-level overview of its codebase, data structures, algorithms, implementation and methodology. ![]() Two Stages of Parsing: Incomplete Entries I hope for this document to provide a map of the main objects used in the source code to make it easy to write scripts and plugins on top of Beancount or even extend it. Martin Blais ( guide for developers to understand Beancount’s internals. A Proposal for an Improvement on Inventory Booking.Two Stages of Parsing: Incomplete Entries.A Comparison of Beancount and Ledger Hledger.Running Beancount and Generating Reports.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |