Browse Source

Move and rename the get_converters function to hide it

Kirk Trombley 4 years ago
parent
commit
8657eb0dd7
2 changed files with 33 additions and 34 deletions
  1. 29 1
      lib/rollbot/plugins/decorators/as_plugin.py
  2. 4 33
      lib/rollbot/plugins/injection.py

+ 29 - 1
lib/rollbot/plugins/decorators/as_plugin.py

@@ -3,7 +3,35 @@ import inspect
 
 from ...messaging import RollbotResponse, RollbotFailure, RollbotFailureException
 from ..base import RollbotPlugin
-from ..injection import get_converters
+
+
+def get_converters(parameters, annotations):
+    converters = []
+    for p in parameters:
+        annot = annotations.get(p, None)
+        if isinstance(annot, ArgConverter):
+            converters.append(annot.conv)
+        elif p in ("msg", "message", "_msg"):
+            converters.append(Message.conv)
+        elif p in ("db", "database"):
+            converters.append(Database.conv)
+        elif p in ("log", "logger"):
+            converters.append(Logger.conv)
+        elif p in ("bot", "rollbot"):
+            converters.append(Bot.conv)
+        elif p in ("args", "arg_list"):
+            converters.append(ArgList.conv)
+        elif p in ("subc", "subcommand"):
+            converters.append(Subcommand.conv)
+        elif p in ("cfg", "config"):
+            converters.append(Config())
+        elif p.startswith("cfg") or p.endswith("cfg"):
+            converters.append(Config(annot or p).conv)
+        elif p.startswith("data") or p.endswith("data"):
+            converters.append(Singleton(annot).conv)
+        else:
+            raise ValueError(p)
+    return converters
 
 
 def as_plugin(command):

+ 4 - 33
lib/rollbot/plugins/injection.py

@@ -42,7 +42,7 @@ class Config(ArgConverter):
             super().__init__(lambda cmd, _, __, key=key: cmd.bot.config.get(key))
 
 
-def run_converter_function(fn, cmd, db, msg):
+def _run_converter_function(fn, cmd, db, msg):
     return fn(*[fn.__annotations__[param].conv(cmd, db, msg) for param in inspect.signature(fn).parameters])
 
 
@@ -53,13 +53,13 @@ class Singleton(ArgConverter):
 
     def by(self, fn):
         def do_get(cmd, db, msg):
-            key = run_converter_function(fn, cmd, db, msg)
+            key = _run_converter_function(fn, cmd, db, msg)
             return db.query(self.model_cls).get(key) or self.model_cls.create_from_key(key)
         return ArgConverter(do_get)
 
     def by_all(self, fn):
         def do_get(cmd, db, msg):
-            return [db.query(self.model_cls).get(x) or self.model_cls.create_from_key(x) for x in run_converter_function(fn, cmd, db, msg)]
+            return [db.query(self.model_cls).get(x) or self.model_cls.create_from_key(x) for x in _run_converter_function(fn, cmd, db, msg)]
         return ArgConverter(do_get)
 
 
@@ -76,7 +76,7 @@ class Query(ArgConverter):
     def _convert(self, cmd, db, msg):
         query = db.query(self.model_cls)
         for fn in self.filters:
-            query = query.filter(run_converter_function(fn, cmd, db, msg))
+            query = query.filter(_run_converter_function(fn, cmd, db, msg))
         return query.all()
 
 
@@ -97,32 +97,3 @@ class Lazy(ArgConverter):
         if not self.run:
             self.result = self.child.conv(self.cmd, self.db, self.msg)
         return self.result
-
-
-def get_converters(parameters, annotations):
-    converters = []
-    for p in parameters:
-        annot = annotations.get(p, None)
-        if isinstance(annot, ArgConverter):
-            converters.append(annot.conv)
-        elif p in ("msg", "message", "_msg"):
-            converters.append(Message.conv)
-        elif p in ("db", "database"):
-            converters.append(Database.conv)
-        elif p in ("log", "logger"):
-            converters.append(Logger.conv)
-        elif p in ("bot", "rollbot"):
-            converters.append(Bot.conv)
-        elif p in ("args", "arg_list"):
-            converters.append(ArgList.conv)
-        elif p in ("subc", "subcommand"):
-            converters.append(Subcommand.conv)
-        elif p in ("cfg", "config"):
-            converters.append(Config())
-        elif p.startswith("cfg") or p.endswith("cfg"):
-            converters.append(Config(annot or p).conv)
-        elif p.startswith("data") or p.endswith("data"):
-            converters.append(Singleton(annot).conv)
-        else:
-            raise ValueError(p)
-    return converters