Compare commits

..

No commits in common. "5af05c2fa4c6c295e80fffe2417b50fb498edd97" and "ed2dda63e949198e20c7aa672c9cc7954da4194e" have entirely different histories.

6 changed files with 12 additions and 24 deletions

View File

@ -25,12 +25,6 @@ if __name__ == "__main__":
Interactive(Manager(db, verbosity)).start() Interactive(Manager(db, verbosity)).start()
exit() exit()
case Operation.Categorize:
keys = {"no_nulls"}
assert args.keys() >= keys, f"missing {args.keys() - keys}"
params = [args["no_nulls"]]
case Operation.Parse: case Operation.Parse:
keys = {"path", "bank", "creditcard"} keys = {"path", "bank", "creditcard"}
assert args.keys() >= keys, f"missing {args.keys() - keys}" assert args.keys() >= keys, f"missing {args.keys() - keys}"

View File

@ -78,10 +78,7 @@ def argparser() -> argparse.ArgumentParser:
# Automatic/manual categorization # Automatic/manual categorization
categorize = subparsers.add_parser("categorize").add_subparsers(required=True) categorize = subparsers.add_parser("categorize").add_subparsers(required=True)
auto = categorize.add_parser("auto") categorize.add_parser("auto").set_defaults(op=Operation.Categorize)
auto.set_defaults(op=Operation.Categorize)
auto.add_argument("--no-nulls", action="store_false")
categorize.add_parser("manual").set_defaults(op=Operation.ManualCategorization) categorize.add_parser("manual").set_defaults(op=Operation.ManualCategorization)
""" """
@ -132,7 +129,7 @@ def argparser() -> argparse.ArgumentParser:
# Nordigen requisition id # Nordigen requisition id
requisition = subparsers.add_parser("eua") requisition = subparsers.add_parser("eua")
requisition.set_defaults(op=Operation.RequisitionId) requisition.set_defaults(op=Operation.RequisitionId)
requisition.add_argument("id", nargs=1, type=str) requisition.add_argument("name", nargs=1, type=str)
requisition.add_argument("country", nargs=1, type=str) requisition.add_argument("country", nargs=1, type=str)
# Download through the Nordigen API # Download through the Nordigen API

View File

@ -16,7 +16,6 @@ class Categorizer:
transactions: Sequence[t.BankTransaction], transactions: Sequence[t.BankTransaction],
categories: Sequence[t.Category], categories: Sequence[t.Category],
tags: Sequence[t.Tag], tags: Sequence[t.Tag],
nullify: bool = True
): ):
"""Overarching categorization tool """Overarching categorization tool
@ -29,17 +28,15 @@ class Categorizer:
tags (Sequence[Tag]): currently available tags tags (Sequence[Tag]): currently available tags
""" """
if nullify:
try: try:
null = next(cat for cat in categories if cat.name == "null") null = next(cat for cat in categories if cat.name == "null")
print("Nullifying") print("Nullifying")
self._nullify(transactions, null) self._nullify(transactions, null)
categories = [cat for cat in categories if cat.name != "null"]
except StopIteration: except StopIteration:
print("Null category not defined") print("Null category not defined")
categories = [cat for cat in categories if cat.name != "null"]
self._rule_based_categories(transactions, categories) self._rule_based_categories(transactions, categories)
self._rule_based_tags(transactions, tags) self._rule_based_tags(transactions, tags)

View File

@ -97,7 +97,7 @@ class Manager:
) )
categories = session.get(Category) categories = session.get(Category)
tags = session.get(Tag) tags = session.get(Tag)
Categorizer().rules(uncategorized, categories, tags, params[0]) Categorizer().rules(uncategorized, categories, tags)
case Operation.BankMod: case Operation.BankMod:
with self.db.session() as session: with self.db.session() as session:

View File

@ -106,7 +106,6 @@ class Transaction(Base, Export):
@property @property
def format(self) -> dict[str, Any]: def format(self) -> dict[str, Any]:
return dict( return dict(
id=self.id,
date=self.date, date=self.date,
description=self.description, description=self.description,
amount=self.amount, amount=self.amount,

View File

@ -86,7 +86,8 @@ class NordigenInput(Input):
print(f"New access token: {token}") print(f"New access token: {token}")
return token return token
def requisition(self, id: str, country: str = "PT"): def requisition(self, institution: str, country: str = "PT"):
id = self._client.institution.get_institution_id_by_name(country, institution)
requisition = self._client.initialize_session( requisition = self._client.initialize_session(
redirect_uri=self.redirect_url, redirect_uri=self.redirect_url,
institution_id=id, institution_id=id,