Skip to main content

A minimal yet valid double-entry accounting system in Python.

Project description

abacus

pytest PyPI

A minimal yet valid double-entry accounting system in Python.

Documentation

See project documentation at https://epogrebnyak.github.io/abacus/.

Installation

pip install abacus-py

For latest version install from github:

pip install git+https://github.com/epogrebnyak/abacus.git

abacus-py requires Python 3.10 or higher.

Quick example

Let's do Sample Transaction #1 from accountingcoach.com[^1].

[^1]: It is a great learning resource for accounting, highly recommended.

On December 1, 2022 Joe starts his business Direct Delivery, Inc. The first transaction that Joe will record for his company is his personal investment of $20,000 in exchange for 5,000 shares of Direct Delivery's common stock. Direct Delivery's accounting system will show an increase in its account Cash from zero to $20,000, and an increase in its stockholders' equity account Common Stock by $20,000.

Solution

Both Python code and command line script below will produce balance sheet after Sample Transaction #1 is completed.

Python code:

from abacus import Chart, Report

chart = Chart(assets=["cash"], capital=["common_stock"])
ledger = chart.ledger()
ledger.post(debit="cash", credit="common_stock", amount=20000, title="Owner's investment")
report = Report(chart, ledger)
print(report.balance_sheet)

Command line script:

bx init
bx post --entry asset:cash capital:common_stock 20000 --title "Initial investment"
bx report --balance-sheet

Result

Balance sheet
ASSETS  20000  CAPITAL              20000
  Cash  20000    Common stock       20000
                 Retained earnings      0
               LIABILITIES              0
TOTAL   20000  TOTAL                20000

See further transactions for this example at documentation website.

Project details


Download files

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

Source Distribution

abacus_py-0.8.8.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

abacus_py-0.8.8-py3-none-any.whl (31.8 kB view details)

Uploaded Python 3

File details

Details for the file abacus_py-0.8.8.tar.gz.

File metadata

  • Download URL: abacus_py-0.8.8.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.8 Linux/6.2.0-1018-azure

File hashes

Hashes for abacus_py-0.8.8.tar.gz
Algorithm Hash digest
SHA256 a0361baf56c191044cdc5a52aed57f4368b86ba2d239b1c790567156d8b8c0c8
MD5 5a7f58e7d0da4a266941d5674838b08a
BLAKE2b-256 448a7bf74aab66106b25d5f912d1dd45a5b5cbc3982f01718dad0efc246c460a

See more details on using hashes here.

File details

Details for the file abacus_py-0.8.8-py3-none-any.whl.

File metadata

  • Download URL: abacus_py-0.8.8-py3-none-any.whl
  • Upload date:
  • Size: 31.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.8 Linux/6.2.0-1018-azure

File hashes

Hashes for abacus_py-0.8.8-py3-none-any.whl
Algorithm Hash digest
SHA256 565400e9fedea9315f0f35003a97be344d674673be046e640bb797d50ac86cb2
MD5 595b7c226c802b5de48c7ba2cbf0630c
BLAKE2b-256 2e4038f9913499301c276709128c32c86ec003d24cc2914d46845d85aaf70e3b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page