jwiegley / beancount

An implementation of the Ledger data architecture in Python, by Martin Blais

This URL has Read+Write access

Martin Blais (author)
Thu Jan 29 09:28:19 -0800 2009
name age message
file .hgignore Sun May 25 21:16:42 -0700 2008 Added visible html in doc again [rsms]
file CHANGES Wed Apr 23 13:49:10 -0700 2008 Initial import. [rsms]
file COPYING Sat Jun 07 12:38:10 -0700 2008 misc [rsms]
file Makefile Mon Jan 26 07:17:05 -0800 2009 Renamed bean-serve to bean-web in scripts. [Martin Blais]
file PKGINFO Sat Jun 07 12:41:14 -0700 2008 misc [rsms]
file README Wed Jan 28 19:49:21 -0800 2009 (misc) [Martin Blais]
file TODO Tue Jan 27 21:12:14 -0800 2009 (misc) [Martin Blais]
file VERSION Sat Jun 07 11:12:08 -0700 2008 misc [rsms]
directory bin/ Tue Jan 20 21:54:44 -0800 2009 bean-gui:First take at pieview. [rsms]
directory doc/ Tue Oct 07 13:08:05 -0700 2008 Added commodity definitions [rsms]
directory etc/ Sat Jun 07 12:23:01 -0700 2008 removed references to python-fallback [rsms]
directory examples/ Mon Jan 26 07:17:05 -0800 2009 Renamed bean-serve to bean-web in scripts. [Martin Blais]
file index.html Wed Jan 28 19:49:21 -0800 2009 (misc) [Martin Blais]
directory lib/ Thu Jan 29 09:28:19 -0800 2009 (misc) [Martin Blais]
directory old/ Mon Jan 19 07:35:10 -0800 2009 Moved obsoleted tools to appropriate directory. [Martin Blais]
file setup.py Mon Jan 19 07:47:59 -0800 2009 Applied patch from Neil Schemenauer for setup.p... [Martin Blais]
file style.css Wed Apr 23 13:49:10 -0700 2008 Initial import. [rsms]
directory test/ Wed Jan 28 15:50:16 -0800 2009 Prototypes for transaction matching. [Martin Blais]
README
=====================================================
   BeanCount: Command-line Double-Entry Accounting
=====================================================

.. contents::
..
    1  Description
    2  Running the Demo
    3  Download
    4  Documentation
    5  Copyright and License
    6  Author

Description
===========

A double-entry accounting system that uses a simple text file format
as input. A few Python scripts are used to parse the contents of the
file, for example, to serve the contents as a locally running web
server. Scripts are provided to convert from OFX files into Ledger
input format, and other formats (easily extensible).

Notes:

- The ideas and syntax is entirely inspired by John Wiegley's Ledger_,
  and the syntax is pretty much compatible with it. Beancount's syntax
  is a subset of Ledger (a little more restrictive), with a few
  additional directives. You should probably read Ledger's
  documentation in order to you use Beancount.

- Beancount is a Python version of Ledger, and thus is much slower,
  but also easier to extend (the code is pure Python).

- Beancount provides a simple web front to view the contents of the
  database, so you don't have to parse the entire file everytime you
  want to view a different account (this helps mitigate the fact that
  parsing is comparatively slow).

- New features can be expected to flow between Ledger and Beancount,
  as the authors have been in touch and have discussed ways of doing
  integration. In particular, Ledger is being augmented with the
  ability to export its parser with a binding for the Python language,
  so Beancount's parser may eventually use the Ledger parser for
  speed, and Ledger may eventually leverage Beancount's web front-end.

.. _Ledger: http://www.newartisans.com/blog/projects/ledger.html


.. important::

   This code works; as a testimony, I'm using it personally, actively
   to manage my own finances and my company's finances, and thus I'm
   running it and its components at the very least a few times montly.
   If you have any problem using it, please let me know. This software
   should be in a functional state; this is not abandonware, nor is it
   prototyping code either. You should be able to use beancount to do
   "real work" (I do).


Running the Demo
================

There is a demonstration ledger input file under the examples
directory. To run a local web server on the example demo file, cd into
``examples`` and run the demo scripts.


Download
========

You can obtain the Ledger source from Furius' public Mercurial
repository, by typing the following command::

  hg clone https://hg.furius.ca/public/beancount


Documentation
=============

- `Demo Ledger input file <examples/demo.ledger>`_
- `CHANGES <CHANGES>`_
- `TODO <TODO>`_


Copyright and License
=====================

Copyright (C) 2007-2008  Martin Blais.  All Rights Reserved.

This code is distributed under the `GNU General Public License <COPYING>`_;


Author
======

Martin Blais <blais@furius.ca>