From 95eff2441847f83a81db6dd57747958d0b68b917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Murta?= Date: Sun, 21 Jan 2024 11:17:40 +0000 Subject: [PATCH] Remove null rules from Categorizer and allow for multiple null rules on the Nullifier. Also create an empty list on the Nullifier constructor to simplify the logic afterwards, in the case no "null" rule exist. --- pfbudget/core/manager.py | 14 ++++++++++++-- pfbudget/transform/nullifier.py | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pfbudget/core/manager.py b/pfbudget/core/manager.py index 7fd3b08..fc832e1 100644 --- a/pfbudget/core/manager.py +++ b/pfbudget/core/manager.py @@ -101,10 +101,20 @@ class Manager: categories = session.select(Category) tags = session.select(Tag) - rules = [cat.rules for cat in categories if cat.name == "null"] + rules = [ + rule + for cat in categories + if cat.name == "null" + for rule in cat.rules + ] Nullifier(rules).transform_inplace(uncategorized) - rules = [rule for cat in categories for rule in cat.rules] + rules = [ + rule + for cat in categories + if cat.name != "null" + for rule in cat.rules + ] Categorizer(rules).transform_inplace(uncategorized) rules = [rule for tag in tags for rule in tag.rules] diff --git a/pfbudget/transform/nullifier.py b/pfbudget/transform/nullifier.py index 4be4909..16106a4 100644 --- a/pfbudget/transform/nullifier.py +++ b/pfbudget/transform/nullifier.py @@ -15,7 +15,7 @@ class Nullifier(Transformer): NULL_DAYS = 4 def __init__(self, rules=None): - self.rules = rules + self.rules = rules if rules else [] def transform(self, transactions: Sequence[Transaction]) -> Sequence[Transaction]: """transform