CLI now allow --no-nulls flag on categorize
Null categorization, which is a major time slog, may now be disabled.
This commit is contained in:
parent
6b26651d22
commit
2cbf00a939
@ -25,6 +25,12 @@ if __name__ == "__main__":
|
||||
Interactive(Manager(db, verbosity)).start()
|
||||
exit()
|
||||
|
||||
case Operation.Categorize:
|
||||
keys = {"no_nulls"}
|
||||
assert args.keys() >= keys, f"missing {args.keys() - keys}"
|
||||
|
||||
params = [args["no_nulls"]]
|
||||
|
||||
case Operation.Parse:
|
||||
keys = {"path", "bank", "creditcard"}
|
||||
assert args.keys() >= keys, f"missing {args.keys() - keys}"
|
||||
|
||||
@ -78,7 +78,10 @@ def argparser() -> argparse.ArgumentParser:
|
||||
|
||||
# Automatic/manual categorization
|
||||
categorize = subparsers.add_parser("categorize").add_subparsers(required=True)
|
||||
categorize.add_parser("auto").set_defaults(op=Operation.Categorize)
|
||||
auto = categorize.add_parser("auto")
|
||||
auto.set_defaults(op=Operation.Categorize)
|
||||
auto.add_argument("--no-nulls", action="store_false")
|
||||
|
||||
categorize.add_parser("manual").set_defaults(op=Operation.ManualCategorization)
|
||||
|
||||
"""
|
||||
|
||||
@ -16,6 +16,7 @@ class Categorizer:
|
||||
transactions: Sequence[t.BankTransaction],
|
||||
categories: Sequence[t.Category],
|
||||
tags: Sequence[t.Tag],
|
||||
nullify: bool = True
|
||||
):
|
||||
"""Overarching categorization tool
|
||||
|
||||
@ -28,15 +29,17 @@ class Categorizer:
|
||||
tags (Sequence[Tag]): currently available tags
|
||||
"""
|
||||
|
||||
if nullify:
|
||||
try:
|
||||
null = next(cat for cat in categories if cat.name == "null")
|
||||
print("Nullifying")
|
||||
self._nullify(transactions, null)
|
||||
|
||||
categories = [cat for cat in categories if cat.name != "null"]
|
||||
except StopIteration:
|
||||
print("Null category not defined")
|
||||
|
||||
categories = [cat for cat in categories if cat.name != "null"]
|
||||
|
||||
self._rule_based_categories(transactions, categories)
|
||||
self._rule_based_tags(transactions, tags)
|
||||
|
||||
|
||||
@ -97,7 +97,7 @@ class Manager:
|
||||
)
|
||||
categories = session.get(Category)
|
||||
tags = session.get(Tag)
|
||||
Categorizer().rules(uncategorized, categories, tags)
|
||||
Categorizer().rules(uncategorized, categories, tags, params[0])
|
||||
|
||||
case Operation.BankMod:
|
||||
with self.db.session() as session:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user