From 92b2af56a8769ac6814e76d8c12f36e6a857377a Mon Sep 17 00:00:00 2001 From: enkore Date: Sun, 24 Feb 2013 20:16:33 +0100 Subject: [PATCH] Removed ModuleFinder, changed ClassFinder ClassFinder: Removed exclude argument, which is basically covered with obj.__module__ == module.__name__ which ensures that no imported classes are found, which was the only use case for exclude. --- i3pystatus/__init__.py | 6 ++---- i3pystatus/core/util.py | 4 +--- i3pystatus/mkdocs.py | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/i3pystatus/__init__.py b/i3pystatus/__init__.py index 49cda69..a1774c6 100644 --- a/i3pystatus/__init__.py +++ b/i3pystatus/__init__.py @@ -10,7 +10,7 @@ from .core.util import * __all__ = [ "SettingsBase", - "ClassFinder", "ModuleFinder", + "ClassFinder", "Module", "AsyncModule", "IntervalModule", "i3pystatus", "I3statusHandler", ] @@ -56,7 +56,7 @@ class i3pystatus: else: self.io = core.io.IOHandler(input_stream) - self.finder = ModuleFinder() + self.finder = ClassFinder(Module) def register(self, module, *args, **kwargs): """Register a new module.""" @@ -74,5 +74,3 @@ class i3pystatus: for module in self.modules: module.inject(j) I3statusHandler = i3pystatus - -ModuleFinder = functools.partial(ClassFinder, baseclass=Module, exclude=[Module, IntervalModule, AsyncModule]) diff --git a/i3pystatus/core/util.py b/i3pystatus/core/util.py index 0348bb2..38e7d34 100644 --- a/i3pystatus/core/util.py +++ b/i3pystatus/core/util.py @@ -100,16 +100,14 @@ class SettingsBase: class ClassFinder: """Support class to find classes of specific bases in a module""" - def __init__(self, baseclass, exclude=[]): + def __init__(self, baseclass): self.baseclass = baseclass - self.exclude = exclude def predicate_factory(self, module): def predicate(obj): return ( inspect.isclass(obj) and issubclass(obj, self.baseclass) and - obj not in self.exclude and obj.__module__ == module.__name__ ) return predicate diff --git a/i3pystatus/mkdocs.py b/i3pystatus/mkdocs.py index 7eccca8..d1a943f 100755 --- a/i3pystatus/mkdocs.py +++ b/i3pystatus/mkdocs.py @@ -115,7 +115,7 @@ def get_module(finder, modname): def get_all(module_path, heading, finder=None): mods = [] if finder is None: - finder = i3pystatus.ModuleFinder() + finder = i3pystatus.ClassFinder(i3pystatus.Module) for name, module in get_modules(module_path): classes = finder.search_module(module)