A Woob Bank -> Beancount data pipeline.
Project description
- Setting up
- Running the app
- Roadmap
[3/9]
- Add argparse support
- Pull woob configuration with account listing
- Pull woob data from given woob bank backends
- Create the converter protocol/abstract class to change from woob to beancount
- Read beancount data with category listing
- Allow users to interactively choose categories
- Change the tracking id method to allow merging transactions
- Privacy option to hide amounts and optionally banks
- Find fake woob data to be able to stream
Setting up
You can use a simple direnv setup
layout python3
And then use the provided Requirements file to setup an environment.
After this, you need to make a configuration file that can be read into a configuration. An example file will be given once the format stabilizes a bit. The file will be in TOML format (for readability), and read by default to the XDG location.
Running the app
Until a proper flit packaging is done, running the draft apps is done simply with
python -m konta
and dealing with the help messages
It will look for a configuration file in the common XDG path for a konta
program, which must be a TOML file
# In ~/.config/konta/config.toml
[Default]
# Setting the category for unmatched payees.
category = "Expenses:Uncategorized"
[Accounts]
# Woob ID (from woob bank ls) to Beancount account, with a currency to be used as
# commodity for the transaction
"deadbeef0731233" = { name = "Assets:Bank:Checking", default-currency = "EUR" }
[Payees]
# An example of merging multiple payees to be the same name and the same category.
# Both 'name' and 'category' are optional here if you don't want to overwrite them.
"75 MONOP" = { name = "MONOPRIX", category = "Expenses:Food:Supermarché" }
"75 MONOPRIX" = { name = "MONOPRIX", category = "Expenses:Food:Supermarché" }
# Unused for now, but extra verifications can be done if we
# give the main input file, with valid/existing accounts.
# It takes a list of path to beancount input files
[Beans]
input = []
Roadmap [3/9]
DONE Add argparse support
DONE Pull woob configuration with account listing
TODO Pull woob data from given woob bank backends
Should be done by ignoring the accounts that are not in config
TODO Create the converter protocol/abstract class to change from woob to beancount
The main goal here is to allow providing custom matchers from the config, probably as python modules that would be provided by the end user. Just like the first Guile version of this tool.
DONE Read beancount data with category listing
TODO Allow users to interactively choose categories
That entails building a module that can meaningfully interact with a Config instancea
TODO Change the tracking id method to allow merging transactions
TODO Privacy option to hide amounts and optionally banks
Necessary option to be able to start streaming development, either that or the first item
TODO Find fake woob data to be able to stream
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 konta-0.3.0.tar.gz
.
File metadata
- Download URL: konta-0.3.0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.27.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19cabcbe046f18679f27e0a613b7a54d72b6b485a7f405734db954ed9ee65d93 |
|
MD5 | 9f8e0775e6289c780f77dd8bf857ec66 |
|
BLAKE2b-256 | 7c7d2e28f084313b19b72311772b6299d3bd12ce990e8204d1b004d43eb56c73 |
File details
Details for the file konta-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: konta-0.3.0-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.27.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c193ab65b26179d754245067cba312ebd95293616a0264da56f6806de8c7530 |
|
MD5 | f3c03e6376f688ada02c6db2cb98d8d6 |
|
BLAKE2b-256 | 7bb2d65fe0e641749beb9d57368cfb8589f3ddb080ae6d9f4a1817bc13661a9e |