Skip to main content

A pythonic interface to GnuCash SQL documents.

Project description

Join the chat at https://gitter.im/sdementen/piecash https://travis-ci.org/sdementen/piecash.svg?branch=master https://ci.appveyor.com/api/projects/status/af7mb3pwv31i6ltv/branch/master?svg=true https://readthedocs.org/projects/piecash/badge/?version=master https://requires.io/github/sdementen/piecash/requirements.svg?branch=master https://coveralls.io/repos/sdementen/piecash/badge.svg?branch=master&service=github

Piecash provides a simple and pythonic interface to GnuCash files stored in SQL (sqlite3, Postgres and MySQL).

Documentation:http://piecash.readthedocs.org.
Gitter:https://gitter.im/sdementen/piecash
Github:https://github.com/sdementen/piecash
PyPI:https://pypi.python.org/pypi/piecash

It is a pure python package, tested on python 2.7 and 3.4/3.5/3.6, that can be used as an alternative to:

  • the official python bindings (as long as no advanced book modifications and/or engine calculations are needed). This is specially useful on Windows where the official python bindings may be tricky to install or if you want to work with python 3.
  • XML parsing/reading of XML GnuCash files if you prefer python over XML/XLST manipulations.

piecash test suite runs successfully on Windows and Linux on the three supported SQL backends (sqlite3, Postgres and MySQL). piecash has also been successfully run on Android (sqlite3 backend) thanks to Kivy buildozer and python-for-android.

It allows you to:

  • open existing GnuCash documents and access all objects within
  • modify objects or add new objects (accounts, transactions, prices, …)
  • create new GnuCash documents from scratch

Scripts are also available to:

A simple example of a piecash script:

with open_book("example.gnucash") as book:
    # get default currency of book
    print( book.default_currency )  # ==> Commodity<CURRENCY:EUR>

    # iterating over all splits in all books and print the transaction description:
    for acc in book.accounts:
        for sp in acc.splits:
            print(sp.transaction.description)

The project has reached beta stage.

Warning

  1. Always do a backup of your gnucash file/DB before using piecash.
  2. Test first your script by opening your file in readonly mode (which is the default mode)

Project details


Release history Release notifications

This version
History Node

0.18.0

History Node

0.17.0

History Node

0.16.0

History Node

0.15.0

History Node

0.14.1

History Node

0.13.0

History Node

0.12.0

History Node

0.11.1

History Node

0.10.2

History Node

0.10.1

History Node

0.10.0

History Node

0.9.1

History Node

0.8.4

History Node

0.8.3

History Node

0.8.2

History Node

0.8.1

History Node

0.7.6

History Node

0.7.4

History Node

0.7.3

History Node

0.7.2

History Node

0.7.1

History Node

0.7.0

History Node

0.6.2

History Node

0.6.1

History Node

0.6.0

History Node

0.5.12

History Node

0.5.11

History Node

0.5.10

History Node

0.5.9

History Node

0.5.8

History Node

0.5.7

History Node

0.5.6

History Node

0.5.5

History Node

0.5.4

History Node

0.5.3

History Node

0.5.2

History Node

0.5.1

History Node

0.5.0

History Node

0.4.9

History Node

0.4.5

History Node

0.4.4

History Node

0.4.3

History Node

0.4.2

History Node

0.4.1

History Node

0.4.0

History Node

0.3.2

History Node

0.3.1

History Node

0.3.0

History Node

0.2.0

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
piecash-0.18.0.tar.gz (4.0 MB) Copy SHA256 hash SHA256 Source None Apr 24, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page