The simple library for extracting all kind of bank account transaction export files, mostly for beanhub-import to inject and generate transactions
Project description
beanhub-extract
The simple library for extracting all kind of bank account transaction export files, mostly for beanhub-import to ingest and generate transactions
Note: This project is still in early stage, still subject to rapid major changes
Why?
Have you ever wondered why each of us has to write our own different Beancount importers for the same bank again and again? Why we cannot use the same exporter for the same bank CSV file? One of the biggest problems of the original Beancount importer design is that the transaction generation logic is coupled with the extract logic, making it hard to reuse. We are addressing the problem by creating a library only for extracting bank-exported CSV files into standardized transaction structures to be processed later. Ideally, you should be able to import this library and use it to import standardized transactions from CSV files exported from any bank in the world.
Install
pip install beanhub-extract
Example
Extracting transactions from the CSV file is easy. Simply create the extractor class and make a function call on the instance object, which will return a transaction object generator. Like this:
from beanhub_extract.extractors.mercury import MercuryExtractor
with open("/path/to/my-mercury.csv", "rt") as fo:
extractor = MercuryExtractor(fo)
for txn in extractor():
print(txn)
# process your transaction here
Sponsor
A modern accounting book service based on the most popular open source version control system Git and text-based double entry accounting book software Beancount.
Transaction data object
We defined a standardized transaction data object to accommodate a transaction statement's most commonly used columns.
The data object type is a simple immutable Python dataclasses.dataclass
class.
It's defined in the beanhub_extract/data_types.py file.
Supported Formats
Currently, we only support a few banks for our own benefit. If you find any particular bank CSV file or format missing and want this library to support it, please feel free to open a PR.
Mercury - mercury
To export the CSV file, please visit the Transactions page and click "Add Filter" to limit the time range of your export, then click the "Export All" button on the right-hand side.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file beanhub_extract-0.1.0.tar.gz
.
File metadata
- Download URL: beanhub_extract-0.1.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.10.11 Linux/5.15.0-1056-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 900e18fe08b40d7429f709514aff2a9e2b51effa8c69c9bb6e7869272bed4a9e |
|
MD5 | ccd8bd9e27e2465c72de213c027c901d |
|
BLAKE2b-256 | c4457f82c3d95526afb33d90ca151358cf279f49491a1eabe5000f6477519831 |
File details
Details for the file beanhub_extract-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: beanhub_extract-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.10.11 Linux/5.15.0-1056-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f1650a5fa408d017bd940c8bed7a6aee6f445da2ccfaff145145f6d18857ee2 |
|
MD5 | fb9b5d41532ab5b366628ca3ee04e3ef |
|
BLAKE2b-256 | ba2eafaced561cd0c99ac2c25f1a0d42360423dc0275cc65270a580d25caf51c |