diff --git a/__init__.py b/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test_add.py b/tests/test_add.py index 3392589..17775a0 100644 --- a/tests/test_add.py +++ b/tests/test_add.py @@ -1,6 +1,7 @@ -from trieregex.trieregex import TrieRegEx as TRE import unittest +from trieregex import TrieRegEx as TRE + class TestAdd(unittest.TestCase): """Tests for TrieRegEx().add() diff --git a/tests/test_finals.py b/tests/test_finals.py index e60e28d..6088c4a 100644 --- a/tests/test_finals.py +++ b/tests/test_finals.py @@ -1,7 +1,8 @@ -from trieregex.trieregex import TrieRegEx as TRE import unittest from collections import defaultdict +from trieregex import TrieRegEx as TRE + class TestFinals(unittest.TestCase): """Tests for TrieRegEx().finals() and TrieRegEx()._finals diff --git a/tests/test_has.py b/tests/test_has.py index 4c33595..c62c546 100644 --- a/tests/test_has.py +++ b/tests/test_has.py @@ -1,6 +1,7 @@ -from trieregex.trieregex import TrieRegEx as TRE import unittest +from trieregex import TrieRegEx as TRE + class TestHas(unittest.TestCase): """Tests for TrieRegEx().has() diff --git a/tests/test_initials.py b/tests/test_initials.py index 969fe20..17c5770 100644 --- a/tests/test_initials.py +++ b/tests/test_initials.py @@ -1,7 +1,8 @@ -from trieregex.trieregex import TrieRegEx as TRE import unittest from collections import defaultdict +from trieregex import TrieRegEx as TRE + class TestInitials(unittest.TestCase): """Tests for TrieRegEx().initials() and TrieRegEx()._initials diff --git a/tests/test_regex.py b/tests/test_regex.py index b14b88a..c9a91d3 100644 --- a/tests/test_regex.py +++ b/tests/test_regex.py @@ -1,7 +1,8 @@ -from trieregex.trieregex import TrieRegEx as TRE -import unittest import re from typing import List +import unittest + +from trieregex import TrieRegEx as TRE class TestRegex(unittest.TestCase): diff --git a/tests/test_remove.py b/tests/test_remove.py index 95e05a1..8ca236f 100644 --- a/tests/test_remove.py +++ b/tests/test_remove.py @@ -1,6 +1,7 @@ -from trieregex.trieregex import TrieRegEx as TRE import unittest +from trieregex import TrieRegEx as TRE + class TestRemove(unittest.TestCase): """Tests for TrieRegEx().remove() diff --git a/tests/test_trieregex.py b/tests/test_trieregex.py index 293e8ec..195636f 100644 --- a/tests/test_trieregex.py +++ b/tests/test_trieregex.py @@ -1,6 +1,7 @@ -from trieregex.trieregex import TrieRegEx as TRE import unittest +from trieregex import TrieRegEx as TRE + class TestTrieRegEx(unittest.TestCase): """Basic tests for each function in the trieregex.TrieRegEx class. @@ -28,6 +29,7 @@ def test_add(self): ) def test_remove(self): + self.tre = TRE(*self.words) self.tre.remove('healthy', 'change') self.assertEqual( self.tre._trie, diff --git a/trieregex/__init__.py b/trieregex/__init__.py new file mode 100644 index 0000000..907bc9f --- /dev/null +++ b/trieregex/__init__.py @@ -0,0 +1 @@ +from .trieregex import TrieRegEx \ No newline at end of file diff --git a/trieregex/memoizer.py b/trieregex/memoizer.py new file mode 100644 index 0000000..a58edfa --- /dev/null +++ b/trieregex/memoizer.py @@ -0,0 +1,23 @@ +from functools import partial + + +class Memoizer: + __slots__ = ['func', 'cache'] + + def __init__(self, func): + self.func = func + self.cache = {} + + def __call__(self, *args): + stringed = str(args) + if stringed not in self.cache: + self.cache[stringed] = self.func(*args) + return self.cache[stringed] + + def __get__(self, obj, objtype): + fn = partial(self.__call__, obj) + fn.clear_cache = self._clear_cache + return fn + + def _clear_cache(self): + self.cache.clear() diff --git a/trieregex.py b/trieregex/trieregex.py similarity index 87% rename from trieregex.py rename to trieregex/trieregex.py index 90b606f..c098062 100644 --- a/trieregex.py +++ b/trieregex/trieregex.py @@ -1,29 +1,8 @@ -from re import escape from collections import defaultdict +from re import escape from typing import Dict, List -from functools import partial - - -class Memoizer: - __slots__ = ['func', 'cache'] - - def __init__(self, func): - self.func = func - self.cache = {} - - def __call__(self, *args): - stringed = str(args) - if stringed not in self.cache: - self.cache[stringed] = self.func(*args) - return self.cache[stringed] - - def __get__(self, obj, objtype): - fn = partial(self.__call__, obj) - fn.clear_cache = self._clear_cache - return fn - def _clear_cache(self): - self.cache.clear() +from .memoizer import Memoizer class TrieRegEx():