Library to adjust transactions in YNAB based on custom patterns
Project description
ynab-transaction-adjuster
This library helps you to automatically adjust transactions in YNAB based on your logic. It allows you to implement your adjustments in a simple factory class which you can run against your existing transactions and update relevant fields like date, payee, category, memo and flags. It also allows you to split transactions.
Preparations
- Create a personal access token for YNAB as described here
- Get the IDs of your budget and account which records are faulty. You can find both IDs if you go to
https://app.ynab.com/ and open the target account by clicking on the name on the left hand side menu.
The URL does now contain both IDs
https://app.ynab.com/<budget_id>/accounts/<account_id>
Installation
Install library from PyPI
pip install ynab-transaction-adjuster
Usage
A detailed documentation is available at https://ynab-transaction-adjuster.readthedocs.io
Fetch transactions
Fetch current transactions from YNAB backend with all available information and check for useful values. All records
come with two additional attributes (import_payee_name and import_payee_name_original) which are not shown in the user
interface.
from ynabtransactionadjuster import YnabTransactionAdjuster
ynab_transaction_adjuster = YnabTransactionAdjuster(token='<token>', budget='<budget>', account='<account>')
orig_transactions = ynab_transaction_adjuster.fetch()
Create a AdjusterFactory child class
This class is for implementing your actual logic. It needs to implement a run() method which receives on runtime
the OriginalTransaction and a TransactionModifier. The
latter is prefilled with values from the original transaction. Its attributes can be modified and it needs to be
returned at the end of the function.
from ynabtransactionadjuster import AdjusterFactory
from ynabtransactionadjuster.models import OriginalTransaction, TransactionModifier
class MyAdjusterFactory(AdjusterFactory):
def run(self, original: OriginalTransaction, modifier: TransactionModifier) -> TransactionModifier:
# your implementation
# return the altered modifier
return modifier
Test your Factory class
Test the factory on records fetched via the fetch()method. If only a subset of these transactions should
get adjusted, filter them before handing the list over to the adjust() method. The method returns a list
of ModifiedTransaction objects which can be inspected for the changed properties.
transations = ynab_transaction_adjuster.fetch()
# optionally filter transactions before passing them to method below
mod_transactions = ynab_transaction_adjuster.adjust(transactions=transactions, factory_class=MyAdjusterFactory)
Update records in YNAB
If you are satisfied with your parsing results you can pass the list of the
ModifedTransaction objects to the update() method. It will update
the changed transactions in YNAB and return an integer with the number of successfully updated records.
count = ynab_transaction_adjuster.update(transactions=mod_transactions)
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 ynab_transaction_adjuster-0.3.3.tar.gz.
File metadata
- Download URL: ynab_transaction_adjuster-0.3.3.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.2 Linux/6.5.0-1016-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12d5c2d5ddd041c13fbadd9741e35df81381d121720061ad7c67087ec6d007c7
|
|
| MD5 |
d3e8116dc038d29fef8085bc14c0c4fc
|
|
| BLAKE2b-256 |
9de1c252a1d470f56e07cc1fbb108b1b14983ed0f1195aac0ec9e0c93ae22bbb
|
File details
Details for the file ynab_transaction_adjuster-0.3.3-py3-none-any.whl.
File metadata
- Download URL: ynab_transaction_adjuster-0.3.3-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.2 Linux/6.5.0-1016-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9ed9b344d46cf77bef0a4d1158c3749539c75bbd50c39de7da71058df2a4385
|
|
| MD5 |
e0926352ae6e848ff6fd84a8bfe2698c
|
|
| BLAKE2b-256 |
c7a77d1b71f359aa922a011733815d7a7741c1ea460462e1328ad72e35a74920
|