]> kaliko git repositories - mpd-sima.git/blobdiff - sima/lib/simastr.py
Move Cache & Throttle to utils
[mpd-sima.git] / sima / lib / simastr.py
index 56cd2423a0474b540df2c4f010ee89f017585b0e..9dacc45d1ea3af6302a1f56b08c9e6049b117a9b 100644 (file)
@@ -80,6 +80,8 @@ class SimaStr(str):
     Specific string object for artist names and song titles.
     Here follows some class variables for regex to run on strings.
     """
+    diafilter = True
+    leven_ratio = 0.82
     regexp_dict = dict()
 
     # Leading patterns: The Le Les
@@ -101,12 +103,15 @@ class SimaStr(str):
     def __init__(self, fuzzstr):
         """
         """
-        super().__init__(fuzzstr)
         self.orig = str(fuzzstr)
         self.stripped = str(fuzzstr.strip())
         # fuzzy computation
         self._get_root()
-        self.remove_diacritics()
+        if self.__class__.diafilter:
+           self.remove_diacritics()
+
+    def __new__(cls, fuzzstr):
+        return super(SimaStr, cls).__new__(cls, fuzzstr)
 
     def _get_root(self):
         """
@@ -143,7 +148,7 @@ class SimaStr(str):
                                    other.stripped.lower())
         if hash(self) == hash(other):
             return True
-        return levenr >= 0.82
+        return levenr >= self.__class__.leven_ratio
 
     def __ne__(self, other):
         if not isinstance(other, SimaStr):