From 4364bebf3889de6fd58acf3c344a847c771a1008 Mon Sep 17 00:00:00 2001 From: Yacine Filali Date: Wed, 24 May 2017 10:26:33 -0700 Subject: [PATCH] Added exception checking for pickle format conversion --- talon/signature/bruteforce.py | 2 +- talon/signature/learning/classifier.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/talon/signature/bruteforce.py b/talon/signature/bruteforce.py index 85e25ce..e502bab 100644 --- a/talon/signature/bruteforce.py +++ b/talon/signature/bruteforce.py @@ -110,7 +110,7 @@ def extract_signature(msg_body): return (stripped_body.strip(), signature.strip()) - except Exception as e: + except Exception: log.exception('ERROR extracting signature') return (msg_body, None) diff --git a/talon/signature/learning/classifier.py b/talon/signature/learning/classifier.py index f775413..9267db0 100644 --- a/talon/signature/learning/classifier.py +++ b/talon/signature/learning/classifier.py @@ -35,11 +35,16 @@ def load(saved_classifier_filename, train_data_filename): try: return joblib.load(saved_classifier_filename) except ValueError: + # load python 2 pickle format with python 3, and save it permissions allowing import sys kwargs = {} if sys.version_info > (3, 0): kwargs["encoding"] = "latin1" loaded = pickle.load(open(saved_classifier_filename, 'rb'), **kwargs) - joblib.dump(loaded, saved_classifier_filename, compress=True) + try: + joblib.dump(loaded, saved_classifier_filename, compress=True) + except Exception: + pass + return joblib.load(saved_classifier_filename)