From a4bba120eb3721becb3dc6aee7e7ec0a6fa2201f Mon Sep 17 00:00:00 2001 From: Ben Sturmfels Date: Sat, 11 Feb 2023 14:53:30 +1100 Subject: [PATCH] reconlicer: Move match thresholds to top of module --- .../reconcile/statement_reconciler.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/conservancy_beancount/reconcile/statement_reconciler.py b/conservancy_beancount/reconcile/statement_reconciler.py index 68d5cb8..057e345 100644 --- a/conservancy_beancount/reconcile/statement_reconciler.py +++ b/conservancy_beancount/reconcile/statement_reconciler.py @@ -79,6 +79,11 @@ Other related problems we're not dealing with here: - transactions are entered manually and reconciled after the fact, but importing from statements may be useful in some cases +Current issue: + + - entry_point seems to swallow errors, meaning you get a fairly unhelpful + message if there's an unhandled error + Future possibilities: - allow the reconciler to respect manually-applied metadata - not clear how @@ -90,10 +95,6 @@ Future possibilities: reconciles and summarises the unreconciled transactions """ -# TODO: -# - entry_point seems to swallow errors -# - extract the magic numbers - import argparse import collections import copy @@ -150,6 +151,8 @@ JUNK_WORDS = [ ] JUNK_WORDS_RES = [re.compile(word, re.IGNORECASE) for word in JUNK_WORDS] ZERO_RE = re.compile('^0+') +FULL_MATCH_THRESHOLD = 0.8 +PARTIAL_MATCH_THRESHOLD = 0.4 def remove_duplicate_words(text: str) -> str: @@ -352,9 +355,9 @@ def records_match(r1: Dict, r2: Dict) -> Tuple[float, List[str]]: else: check_score = 0.0 payee_score = payee_match(r1['payee'], r2['payee']) - if payee_score > 0.8: + if payee_score > FULL_MATCH_THRESHOLD: payee_message = '' - elif payee_score > 0.4: + elif payee_score > PARTIAL_MATCH_THRESHOLD: payee_message = 'partial payee match' else: payee_message = 'payee mismatch'