Skip to main content

Amatino Python

Amatino is a double-entry accounting system. It provides double entry accounting as a service via an HTTP API. Amatino Python is a library for interacting with the Amatino API from within a Python application. By using Amatino Python, a Python developer can utilise Amatino services without needing to deal with raw HTTP requests.

About Amatino

Amatino gives you a full set of tools to store, organise and retrieve financial information. You don't need to set up databases or write any of your own double-entry accounting logic. All you need is this library, an Amatino account (Try free for two weeks!), and you are off and running.

Under construction

Right now, the Amatino API offers a full range of accounting services via HTTP requests. However, this Amatino Python library is in an 'Alpha' state. Its capabilities are limited. A subset of full Amatino features are available.

To see what proportion of Amatino features are ready in Amatino Python, check out the Documentation page. Linked classes are available, un-linked ones are still under construction.

Installation

Amatino Python may be installed via PIP.

$ pip install amatino

To use Amatino Python, you will need an active Amatino subscription. You can start a free trial at https://amatino.io/subscribe.

Example Usage

The first step is to login to Amatino by creating a Session instance. That Session then becomes your key to using Amatino classes.

from amatino import Session

session = Session.create_with_email(
  email='clever@cookie.com',
  secret='uncrackable epic passphrase!'
)

Amatino stores financial data inside discrete Entities. An Entity might describe a person, project, company, or some other entity which you wish to describe with financial data.

from amatino import Entity

mega_corporation = Entity.create(
  session=session,  # Created above
  name='Mega Corporation'
)

Entities are structured as a hierarchical tree of Accounts. You might wish to create a chart of Accounts that mirror the real-world structure of the Entity you are describing.

from amatino import Account

revenue = Account.create(
  entity=mega_corporation,  # Created above
  description='Revenue from world domination',
  am_type=AMType.revenue,  # An AMType enumeration option
  denomination=USD  # A GlobalUnit
)

The real fun begins with Transactions, where debits and credits come into play

from amatino import Transaction, Entry, Side
from datetime import datetime
from decimal import Decimal

revenue_recognition = Transaction.create(
  entity=mega_corporation,
  time=datetime.utcnow(),
  entries=[
    Entry(Side.debit, Decimal(10), cash),
    Entry(Side.credit, Decimal(5), revenue),
    Entry(Side.credit, Decimal(5), customer_deposits)
  ]
  denomination=USD
)

Check out the full range of available classes, including Ledgers, in the Amatino Python documentation

API stability & versioning

Amatino Python obeys the Semantic Version convention. Until v1.0.0, the Python API (not to be confused with the Amatino HTTP API) should be considered unstable and liable to change at any time.

Watch out! API currently unstable!

You can see available versions in GitHub's releases section or in PyPi's release history section.

Tell us what your think/want/like/hate

Please join us on the Amatino discussion forums and give us your feedback. We would love to hear from you. Amatino is in its earliest stages of development, and your feedback will influence the direction it moves in.

Pull requests, comments, issues, forking, and so on are also most welcome on Github!

Useful links

Get in contact

To quickly speak to a human about Amatino, email hugh@amatino.io or yell at him on Twitter (@hugh_jeremy).

Release files for amatino 0.0.19

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amatino 0.0.19
File Size Uploaded
amatino-0.0.19.tar.gz 48.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for amatino 0.0.19
File Interpreter ABI Platform
amatino-0.0.19-py3-none-any.whl Python 3 none any Details

Total release size: 146.3 kB

Release files / amatino-0.0.19.tar.gz

Download URL amatino-0.0.19.tar.gz
Size 48.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c93df585c1b26116597ae816bb328b59863c7d7b90fa6fdb09ff2ebfbafc9246
BLAKE2b-256 checksum
How to use checksums
6ba67aa980c4815ced8bef35f24cff9f922cd9dc1bf47c045918000414b1dad5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

Release files / amatino-0.0.19-py3-none-any.whl

Download URL amatino-0.0.19-py3-none-any.whl
Size 97.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cda884b495add86f493d5180f2d183040aa66da68954c08adb04bceaa121ef22
BLAKE2b-256 checksum
How to use checksums
d479c8011e1a96168097e372aacabe3197a0390209c0c77257c2586d63ac2b36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

Release history Release notifications | RSS feed

This release

0.0.19 This release

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page