aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-01-13 10:14:18 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-01-13 10:14:18 +0100
commit52fa64513dae60c3ed410622502f8c2369c1a348 (patch)
tree68abab59fe2c8f9392df39b19d51530c7a4b1d0d
parent9c366758665d9cfee7796ee45a8167a5412ae9ae (diff)
downloadtagit-52fa64513dae60c3ed410622502f8c2369c1a348.tar.gz
tagit-52fa64513dae60c3ed410622502f8c2369c1a348.tar.bz2
tagit-52fa64513dae60c3ed410622502f8c2369c1a348.zip
moved filter parsing code
-rw-r--r--tagit/parsing/__init__.py4
-rw-r--r--tagit/parsing/filter/__init__.py17
-rw-r--r--tagit/parsing/filter/from_string.py (renamed from tagit/parsing/filter.py)8
-rw-r--r--tagit/utils/errors.py4
-rw-r--r--tagit/widgets/session.py2
-rw-r--r--test/parsing/filter/__init__.py0
-rw-r--r--test/parsing/filter/test_from_string.py (renamed from test/parsing/test_filter.py)6
7 files changed, 30 insertions, 11 deletions
diff --git a/tagit/parsing/__init__.py b/tagit/parsing/__init__.py
index 0070bf9..86ad54f 100644
--- a/tagit/parsing/__init__.py
+++ b/tagit/parsing/__init__.py
@@ -6,12 +6,12 @@ Author: Matthias Baumgartner, 2022
"""
# inner-module imports
from .datefmt import parse_datetime
-from .filter import Filter
+from . import filter
from .sort import Sort
# exports
__all__ = (
- 'Filter',
+ 'filter',
'Sort',
'parse_datetime',
)
diff --git a/tagit/parsing/filter/__init__.py b/tagit/parsing/filter/__init__.py
new file mode 100644
index 0000000..88b6256
--- /dev/null
+++ b/tagit/parsing/filter/__init__.py
@@ -0,0 +1,17 @@
+"""
+
+Part of the tagit module.
+A copy of the license is provided with the project.
+Author: Matthias Baumgartner, 2022
+"""
+# inner-module imports
+from .from_string import FromString
+#from .to_string import ToString
+
+# exports
+__all__ = (
+ 'FromString',
+ #'ToString',
+ )
+
+## EOF ##
diff --git a/tagit/parsing/filter.py b/tagit/parsing/filter/from_string.py
index ea8df51..5a38723 100644
--- a/tagit/parsing/filter.py
+++ b/tagit/parsing/filter/from_string.py
@@ -14,25 +14,23 @@ from datetime import datetime
from pyparsing import CaselessKeyword, Combine, Group, Optional, Or, Word, delimitedList, nums, oneOf, ParseException, Literal, QuotedString, alphanums, alphas8bit, punc8bit
# tagit imports
+from tagit.parsing.datefmt import parse_datetime
from tagit.utils import bsfs, errors, ns, ttime
from tagit.utils.bsfs import ast
-# inner-module imports
-from .datefmt import parse_datetime
-
# constants
SEARCH_DELIM = '/'
VALUE_DELIM = ','
# exports
__all__ = (
- 'Filter',
+ 'FromString',
)
## code ##
-class Filter():
+class FromString():
# parsers
_DATETIME_PREDICATES = None
diff --git a/tagit/utils/errors.py b/tagit/utils/errors.py
index 7a2556e..8b5e21a 100644
--- a/tagit/utils/errors.py
+++ b/tagit/utils/errors.py
@@ -53,4 +53,8 @@ class ParserError(Exception):
"""String parsing failure."""
pass
+class BackendError(Exception):
+ """Generic backend error."""
+ pass
+
## EOF ##
diff --git a/tagit/widgets/session.py b/tagit/widgets/session.py
index ca8c595..f45ab35 100644
--- a/tagit/widgets/session.py
+++ b/tagit/widgets/session.py
@@ -40,7 +40,7 @@ class Session(Widget):
self.storage = storage
self.log = log
# derived members
- self.filter_from_string = parsing.Filter(self.storage.schema)
+ self.filter_from_string = parsing.filter.FromString(self.storage.schema)
#self.sort_from_string = parsing.Sort(self.storage.schema) # FIXME: mb/port/parsing
def __enter__(self):
diff --git a/test/parsing/filter/__init__.py b/test/parsing/filter/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/parsing/filter/__init__.py
diff --git a/test/parsing/test_filter.py b/test/parsing/filter/test_from_string.py
index c01c1bf..180820a 100644
--- a/test/parsing/test_filter.py
+++ b/test/parsing/filter/test_from_string.py
@@ -16,12 +16,12 @@ from tagit.utils import bsfs, errors, ns
from tagit.utils.bsfs import ast
# objects to test
-from tagit.parsing.filter import Filter
+from tagit.parsing.filter.from_string import FromString
## code ##
-class TestFilterRange(unittest.TestCase):
+class TestFromString(unittest.TestCase):
longMessage = True
def setUp(self):
@@ -83,7 +83,7 @@ class TestFilterRange(unittest.TestCase):
bsfs:unique "false"^^xsd:boolean .
''')
- self.parse = Filter(self.schema)
+ self.parse = FromString(self.schema)
def _test_number(self, query, target):
predicate, condition = target