Browse Source

Updated Caper to v0.2.3 and Logr to v0.2.2 to greatly improve matching performance

pull/2549/head
Dean Gardiner 12 years ago
parent
commit
b0e352ab6d
  1. 8
      libs/caper/__init__.py
  2. 4
      libs/caper/parsers/anime.py
  3. 4
      libs/caper/parsers/base.py
  4. 7
      libs/caper/parsers/scene.py
  5. 50
      libs/logr/__init__.py

8
libs/caper/__init__.py

@ -19,7 +19,7 @@ from caper.parsers.anime import AnimeParser
from caper.parsers.scene import SceneParser
__version_info__ = ('0', '2', '2')
__version_info__ = ('0', '2', '3')
__version_branch__ = 'master'
__version__ = "%s%s" % (
@ -43,10 +43,10 @@ CL_END = 1
class Caper(object):
def __init__(self):
def __init__(self, debug=False):
self.parsers = {
'scene': SceneParser(),
'anime': AnimeParser()
'scene': SceneParser(debug),
'anime': AnimeParser(debug)
}
def _closure_split(self, name):

4
libs/caper/parsers/anime.py

@ -53,8 +53,8 @@ PATTERN_GROUPS = [
class AnimeParser(Parser):
def __init__(self):
super(AnimeParser, self).__init__(PATTERN_GROUPS)
def __init__(self, debug=False):
super(AnimeParser, self).__init__(PATTERN_GROUPS, debug)
def capture_group(self, fragment):
match = REGEX_GROUP.match(fragment.value)

4
libs/caper/parsers/base.py

@ -18,7 +18,9 @@ from caper.result import CaperResult, CaperClosureNode
class Parser(object):
def __init__(self, pattern_groups):
def __init__(self, pattern_groups, debug=False):
self.debug = debug
self.matcher = FragmentMatcher(pattern_groups)
self.closures = None

7
libs/caper/parsers/scene.py

@ -98,8 +98,8 @@ PATTERN_GROUPS = [
class SceneParser(Parser):
def __init__(self):
super(SceneParser, self).__init__(PATTERN_GROUPS)
def __init__(self, debug=False):
super(SceneParser, self).__init__(PATTERN_GROUPS, debug)
def capture_group(self, fragment):
if fragment.left_sep == '-' and not fragment.right:
@ -133,6 +133,9 @@ class SceneParser(Parser):
return self.result
def print_tree(self, heads):
if not self.debug:
return
for head in heads:
head = head if type(head) is list else [head]

50
libs/logr/__init__.py

@ -32,8 +32,11 @@ class Logr(object):
loggers = {}
handler = None
trace_origin = False
name = "Logr"
@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
@param handler: Logger message handler
@ -52,6 +55,9 @@ class Logr(object):
handler.setLevel(level)
Logr.handler = handler
Logr.trace_origin = trace_origin
Logr.name = name
@staticmethod
def configure_check():
if Logr.handler is None:
@ -65,7 +71,29 @@ class Logr(object):
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
def get_logger_name():
if not Logr.trace_origin:
return Logr.name
stack = inspect.stack()
for x in xrange_six(len(stack)):
@ -73,20 +101,16 @@ class Logr(object):
name = None
# Try find name of function defined inside a class
if len(frame.f_code.co_varnames) > 0:
self_argument = frame.f_code.co_varnames[0]
if self_argument == 'self' and self_argument in frame.f_locals:
instance = frame.f_locals[self_argument]
frame_class = Logr.get_frame_class(frame)
class_ = instance.__class__
class_name = class_.__name__
module_name = class_.__module__
if frame_class:
class_name = frame_class.__name__
module_name = frame_class.__module__
if module_name != '__main__':
name = module_name + '.' + class_name
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
if name is None:

Loading…
Cancel
Save