diff --git a/conservancy_beancount/reconcile/statement_reconciler.py b/conservancy_beancount/reconcile/statement_reconciler.py index 68d5cb89ce9a11b09dd467b4ea216881b61fe66a..057e3452af38e40e8bfbc37c206ff9286b0a1375 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'