dispatcher: eliminate hidden imports
authorDmitry Selyutin <ghostmansd@gmail.com>
Sun, 18 Jun 2023 18:36:20 +0000 (21:36 +0300)
committerDmitry Selyutin <ghostmansd@gmail.com>
Sun, 18 Jun 2023 18:42:06 +0000 (21:42 +0300)
src/mdis/dispatcher.py

index 7c417856ca9fc389f73618673dec5756273fdb2c..3825b9efc5be94c3097daf8142465f48053f9e78 100644 (file)
@@ -1,6 +1,12 @@
-import collections as _collections
-import inspect as _inspect
-import types as _types
+__all__ = [
+    "Dispatcher",
+    "DispatcherMeta",
+    "Hook",
+]
+
+import collections
+import inspect
+import types
 
 
 class Hook(object):
@@ -40,11 +46,11 @@ class DispatcherMeta(type):
         ishook = lambda member: isinstance(member, Hook)
 
         for basecls in reversed(bases):
-            members = _inspect.getmembers(basecls, predicate=ishook)
+            members = inspect.getmembers(basecls, predicate=ishook)
             for (_, hook) in members:
                 hooks.update(dict.fromkeys(hook, hook))
 
-        conflicts = _collections.defaultdict(list)
+        conflicts = collections.defaultdict(list)
         for (key, value) in tuple(ns.items()):
             if not ishook(value):
                 continue
@@ -58,7 +64,7 @@ class DispatcherMeta(type):
             if len(keys) > 1:
                 raise ValueError(f"dispatch conflict: {keys!r}")
 
-        ns["__hooks__"] = _types.MappingProxyType(hooks)
+        ns["__hooks__"] = types.MappingProxyType(hooks)
 
         return super().__new__(metacls, name, bases, ns)