From 9c366758665d9cfee7796ee45a8167a5412ae9ae Mon Sep 17 00:00:00 2001 From: Matthias Baumgartner Date: Fri, 13 Jan 2023 09:49:10 +0100 Subject: filter early port, parsing adaptions --- tagit/actions/__init__.py | 14 +++++++------- tagit/actions/filter.py | 33 ++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 22 deletions(-) (limited to 'tagit/actions') diff --git a/tagit/actions/__init__.py b/tagit/actions/__init__.py index 034c4a1..c34cbe8 100644 --- a/tagit/actions/__init__.py +++ b/tagit/actions/__init__.py @@ -57,13 +57,13 @@ class ActionBuilder(BuilderBase): 'SelectInvert': browser.SelectInvert, 'Select': browser.Select, ## filter - #'AddToken': filter.AddToken, - #'RemoveToken': filter.RemoveToken, - #'SetToken': filter.SetToken, - #'EditToken': filter.EditToken, - #'GoBack': filter.GoBack, - #'GoForth': filter.GoForth, - #'JumpToToken': filter.JumpToToken, + 'AddToken': filter.AddToken, + 'RemoveToken': filter.RemoveToken, + 'SetToken': filter.SetToken, + 'EditToken': filter.EditToken, + 'GoBack': filter.GoBack, + 'GoForth': filter.GoForth, + 'JumpToToken': filter.JumpToToken, #'SearchByAddressOnce': filter.SearchByAddressOnce, #'SearchmodeSwitch': filter.SearchmodeSwitch, ## grouping diff --git a/tagit/actions/filter.py b/tagit/actions/filter.py index 3702879..e878952 100644 --- a/tagit/actions/filter.py +++ b/tagit/actions/filter.py @@ -12,14 +12,12 @@ from kivy.lang import Builder import kivy.properties as kp # tagit imports -from tagit import config -from tagit import dialogues -#from tagit.parsing import ParserError # FIXME: mb/port -#from tagit.parsing.search import ast_from_string, ast_to_string, ast # FIXME: mb/port -#from tagit.storage.base import ns # FIXME: mb/port -from tagit.utils import Frame -from tagit.widgets.bindings import Binding +from tagit import config, dialogues +from tagit.utils import errors, Frame +from tagit.widgets import Binding from tagit.widgets.filter import FilterAwareMixin +#from tagit.parsing.search import ast_to_string, ast # FIXME: mb/port +#from tagit.storage.base import ns # FIXME: mb/port # inner-module imports from .action import Action @@ -54,7 +52,7 @@ class SetToken(Action): with self.root.filter as filter: try: # parse filter into tokens - tokens = list(ast_from_string(text)) + tokens = list(self.root.session.filter_from_string(text)) # grab current frame filter.f_head.append(self.root.browser.frame) @@ -93,7 +91,10 @@ class AddToken(Action): def apply(self, token=None): if token is None: - sugg = {node.label for node in self.root.session.storage.all(ns.tagit.storage.base.Tag)} + #sugg = {node.label for node in self.root.session.storage.all(ns.tagit.storage.base.Tag)} + # FIXME: mb/port/bsfs + #sugg = set(self.root.session.storage.all(ns.bsfs.Tag).label()) + sugg = {'hello', 'world'} dlg = dialogues.TokenEdit(suggestions=sugg) dlg.bind(on_ok=lambda wx: self.add_from_string(wx.text)) dlg.open() @@ -104,8 +105,8 @@ class AddToken(Action): def add_from_string(self, text): try: - self.add_token(ast_from_string(text)) - except ParserError as e: + self.add_token(self.root.session.filter_from_string(text)) + except errors.ParserError as e: dialogues.Error(text=f'syntax error: {e}').open() def add_token(self, tokens): @@ -128,8 +129,10 @@ class EditToken(Action): text = kp.StringProperty('Edit token') def apply(self, token): - sugg = {node.label for node in self.root.session.storage.all(ns.tagit.storage.base.Tag)} - text = ast_to_string(token) + #sugg = {node.label for node in self.root.session.storage.all(ns.tagit.storage.base.Tag)} # FIXME: mb/port + sugg = {'hello', 'world'} # FIXME: mb/port + #text = ast_to_string(token) + text = 'hello world' dlg = dialogues.TokenEdit(text=text, suggestions=sugg) dlg.bind(on_ok=lambda obj: self.on_ok(token, obj)) dlg.open() @@ -137,8 +140,8 @@ class EditToken(Action): def on_ok(self, token, obj): with self.root.filter as filter: try: - tokens_from_text = ast_from_string(obj.text) - except ParserError as e: + tokens_from_text = self.root.session.filter_from_string(obj.text) # FIXME: mb/port + except errors.ParserError as e: dialogues.Error(text=f'Invalid token: {e}').open() return -- cgit v1.2.3