munin-stats.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:weasyl 作者: Weasyl 项目源码 文件源码
def main(reactor, procName, *args):
    procName = os.path.basename(procName)

    clientEndpoints = {}
    for k, v in os.environ.iteritems():
        _, _, clientName = k.partition('client_endpoint_')
        if clientName:
            clientEndpoints[clientName] = clientFromString(reactor, v)
    if not clientEndpoints:
        raise ValueError("no client endpoints detected in the environment")

    plugins = [pluginClass(clientEndpoints)
               for pluginClass in sorted(pluginClasses, key=nameLength, reverse=True)]

    if args == ('autoconf',):
        print 'yes'
        return defer.succeed(None)

    if args == ('suggest',):
        suggestions = []
        for plugin in plugins:
            suggestions.extend((plugin.name + arg).partition(procName)[2]
                               for arg in plugin.suggest())
        print '\n'.join(suggestion for suggestion in suggestions if suggestion)
        return defer.succeed(None)

    for plugin in plugins:
        _, foundPluginName, arg = procName.partition(plugin.name)
        if not foundPluginName:
            continue
        command = 'fetch' if not args else args[0]
        method = getattr(plugin, 'command_' + command, None)
        if not method:
            raise ValueError("%r plugin can't handle the command %r" % (plugin.name, command))
        return defer.maybeDeferred(method, arg)

    raise ValueError("no plugin was found with the name %r" % (procName,))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号