Hooks for the beangulp importer.
Project description
hoostus-beangulp-hooks
This uses machine learning, trained on your previous postings, to predict what the second leg of an imported transaction should be.
How to use it with beangulp.
The easiest way.
- Import it:
from hoostus.beangulp.hooks import predict_posting - Add the
simple_hookto the list of hooks you send to beangulp.
In the importer.py you use with beangulp this might look something like:
from hoostus.beangulp.hooks import predict_posting
if __name__ == '__main__':
importers = [ ... ]
hooks = [predict_posting.simple_hook]
ingest = beangulp.Ingest(importers, hooks)
ingest()
If you want to configure it.
Use predict_posting.hook directly and pass in a map of weights
and a list of denied accounts -- accounts you don't want to use for
training the machine learning model. Note that beangulp expects hooks to take
2 parameters but predict_posting.hook takes 4 paramters. This
means you will need to use functools.partial (or similar) to wrap it.
In the importer.py you use with beangulp this might look something like:
from hoostus.beangulp.hooks import predict_posting
import functools
if __name__ == '__main__':
importers = [ ... ]
my_weights = {'payee': 0.5, 'narration': 0.9, 'date.day': 0.2}
my_denied_accounts = ['Expenses:Donuts']
my_hook = functools.partial(predict_posting.hook, my_weights, my_denied_accounts)
hooks = [my_hook]
ingest = beangulp.Ingest(importers, hooks)
ingest()
Implementation Notes
The training is done on a per-account basis. Only transactions from the impoted_account are considered.
Transactions involving closed accounts are removed from the training data.
Any transactions in the training data with a single leg are removed. This isn't valid beancount syntax anyway and is an artifact of (what I believe to be) a bug in beangulp which adds all of the recently imported transactions into the list of existing entries provided to hooks. This muddies the training data, in some cases making it useless.
This is basically recycled from https://github.com/beancount/smart_importer but adapted to the beangulp framework
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hoostus_beangulp_hooks-1.0.1.tar.gz.
File metadata
- Download URL: hoostus_beangulp_hooks-1.0.1.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91375e0beb99bc2757170001c4b7747ffade20b23a4ad21eee7199a6fe262c4e
|
|
| MD5 |
4f1f1eeefca1cf081bab33d7d3eca9b4
|
|
| BLAKE2b-256 |
ea276ff354b6c99fb8eff655bb3e74712eed3304444fbbd5cd0958eb59d1692e
|
File details
Details for the file hoostus_beangulp_hooks-1.0.1-py3-none-any.whl.
File metadata
- Download URL: hoostus_beangulp_hooks-1.0.1-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f617d9ad5d489d0e3c4c8fbb41fce9e72a733fcf58943f4027160f0df76ef47d
|
|
| MD5 |
3c65c8a1960550da5e1eb9c68f27f29d
|
|
| BLAKE2b-256 |
765b18efcb0bd79da1711522d04a9b952efd912ae756c415fa41accefa885abe
|