Updated Caper to v0.2.3 and Logr to v0.2.2 to greatly improve matching performance
This commit is contained in:
1 parent
5ea7dc5920
commit
b0e352ab6d
5 files changed
+51
-22
No files matched your search
@@ -19,7 +19,7 @@ from caper.parsers.anime import AnimeParser
|
|||||||
from caper.parsers.scene import SceneParser
|
from caper.parsers.scene import SceneParser
|
||||||
|
|
||||||
|
|
||||||
__version_info__ = ('0', '2', '2')
|
__version_info__ = ('0', '2', '3')
|
||||||
__version_branch__ = 'master'
|
__version_branch__ = 'master'
|
||||||
|
|
||||||
__version__ = "%s%s" % (
|
__version__ = "%s%s" % (
|
||||||
@@ -43,10 +43,10 @@ CL_END = 1
|
|||||||
|
|
||||||
|
|
||||||
class Caper(object):
|
class Caper(object):
|
||||||
def __init__(self):
|
def __init__(self, debug=False):
|
||||||
self.parsers = {
|
self.parsers = {
|
||||||
'scene': SceneParser(),
|
'scene': SceneParser(debug),
|
||||||
'anime': AnimeParser()
|
'anime': AnimeParser(debug)
|
||||||
}
|
}
|
||||||
|
|
||||||
def _closure_split(self, name):
|
def _closure_split(self, name):
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ PATTERN_GROUPS = [
|
|||||||
|
|
||||||
|
|
||||||
class AnimeParser(Parser):
|
class AnimeParser(Parser):
|
||||||
def __init__(self):
|
def __init__(self, debug=False):
|
||||||
super(AnimeParser, self).__init__(PATTERN_GROUPS)
|
super(AnimeParser, self).__init__(PATTERN_GROUPS, debug)
|
||||||
|
|
||||||
def capture_group(self, fragment):
|
def capture_group(self, fragment):
|
||||||
match = REGEX_GROUP.match(fragment.value)
|
match = REGEX_GROUP.match(fragment.value)
|
||||||
|
|||||||
@@ -18,7 +18,9 @@ from caper.result import CaperResult, CaperClosureNode
|
|||||||
|
|
||||||
|
|
||||||
class Parser(object):
|
class Parser(object):
|
||||||
def __init__(self, pattern_groups):
|
def __init__(self, pattern_groups, debug=False):
|
||||||
|
self.debug = debug
|
||||||
|
|
||||||
self.matcher = FragmentMatcher(pattern_groups)
|
self.matcher = FragmentMatcher(pattern_groups)
|
||||||
|
|
||||||
self.closures = None
|
self.closures = None
|
||||||
|
|||||||
@@ -98,8 +98,8 @@ PATTERN_GROUPS = [
|
|||||||
|
|
||||||
|
|
||||||
class SceneParser(Parser):
|
class SceneParser(Parser):
|
||||||
def __init__(self):
|
def __init__(self, debug=False):
|
||||||
super(SceneParser, self).__init__(PATTERN_GROUPS)
|
super(SceneParser, self).__init__(PATTERN_GROUPS, debug)
|
||||||
|
|
||||||
def capture_group(self, fragment):
|
def capture_group(self, fragment):
|
||||||
if fragment.left_sep == '-' and not fragment.right:
|
if fragment.left_sep == '-' and not fragment.right:
|
||||||
@@ -133,6 +133,9 @@ class SceneParser(Parser):
|
|||||||
return self.result
|
return self.result
|
||||||
|
|
||||||
def print_tree(self, heads):
|
def print_tree(self, heads):
|
||||||
|
if not self.debug:
|
||||||
|
return
|
||||||
|
|
||||||
for head in heads:
|
for head in heads:
|
||||||
head = head if type(head) is list else [head]
|
head = head if type(head) is list else [head]
|
||||||
|
|
||||||
|
|||||||
+37
-13
@@ -32,8 +32,11 @@ class Logr(object):
|
|||||||
loggers = {}
|
loggers = {}
|
||||||
handler = None
|
handler = None
|
||||||
|
|
||||||
|
trace_origin = False
|
||||||
|
name = "Logr"
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def configure(level=logging.WARNING, handler=None, formatter=None):
|
def configure(level=logging.WARNING, handler=None, formatter=None, trace_origin=False, name="Logr"):
|
||||||
"""Configure Logr
|
"""Configure Logr
|
||||||
|
|
||||||
@param handler: Logger message handler
|
@param handler: Logger message handler
|
||||||
@@ -52,6 +55,9 @@ class Logr(object):
|
|||||||
handler.setLevel(level)
|
handler.setLevel(level)
|
||||||
Logr.handler = handler
|
Logr.handler = handler
|
||||||
|
|
||||||
|
Logr.trace_origin = trace_origin
|
||||||
|
Logr.name = name
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def configure_check():
|
def configure_check():
|
||||||
if Logr.handler is None:
|
if Logr.handler is None:
|
||||||
@@ -64,8 +70,30 @@ class Logr(object):
|
|||||||
except TypeError:
|
except TypeError:
|
||||||
return "<unknown>"
|
return "<unknown>"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_frame_class(frame):
|
||||||
|
if len(frame.f_code.co_varnames) <= 0:
|
||||||
|
return None
|
||||||
|
|
||||||
|
farg = frame.f_code.co_varnames[0]
|
||||||
|
|
||||||
|
if farg not in frame.f_locals:
|
||||||
|
return None
|
||||||
|
|
||||||
|
if farg == 'self':
|
||||||
|
return frame.f_locals[farg].__class__
|
||||||
|
|
||||||
|
if farg == 'cls':
|
||||||
|
return frame.f_locals[farg]
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_logger_name():
|
def get_logger_name():
|
||||||
|
if not Logr.trace_origin:
|
||||||
|
return Logr.name
|
||||||
|
|
||||||
stack = inspect.stack()
|
stack = inspect.stack()
|
||||||
|
|
||||||
for x in xrange_six(len(stack)):
|
for x in xrange_six(len(stack)):
|
||||||
@@ -73,20 +101,16 @@ class Logr(object):
|
|||||||
name = None
|
name = None
|
||||||
|
|
||||||
# Try find name of function defined inside a class
|
# Try find name of function defined inside a class
|
||||||
if len(frame.f_code.co_varnames) > 0:
|
frame_class = Logr.get_frame_class(frame)
|
||||||
self_argument = frame.f_code.co_varnames[0]
|
|
||||||
|
|
||||||
if self_argument == 'self' and self_argument in frame.f_locals:
|
if frame_class:
|
||||||
instance = frame.f_locals[self_argument]
|
class_name = frame_class.__name__
|
||||||
|
module_name = frame_class.__module__
|
||||||
|
|
||||||
class_ = instance.__class__
|
if module_name != '__main__':
|
||||||
class_name = class_.__name__
|
name = module_name + '.' + class_name
|
||||||
module_name = class_.__module__
|
else:
|
||||||
|
name = class_name
|
||||||
if module_name != '__main__':
|
|
||||||
name = module_name + '.' + class_name
|
|
||||||
else:
|
|
||||||
name = class_name
|
|
||||||
|
|
||||||
# Try find name of function defined outside of a class
|
# Try find name of function defined outside of a class
|
||||||
if name is None:
|
if name is None:
|
||||||
|
|||||||
Reference in new issue
Block a user