|
@@ -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
|