驱动程序

入口点

可以使用 setuptools 的入口点直接从 python 包加载命令。mach 入口点是一个函数,它返回一个包含 mach 命令提供程序的文件或目录列表。例如:

def list_providers():
    providers = []
    here = os.path.abspath(os.path.dirname(__file__))
    for p in os.listdir(here):
        if p.endswith('.py'):
            providers.append(os.path.join(here, p))
    return providers

有关创建入口点的更多信息,请参阅 http://pythonhosted.org/setuptools/setuptools.html#dynamic-discovery-of-services-and-plugins。要搜索入口点插件,可以调用 mach.command_util.load_commands_from_entry_point()。例如:

load_commands_from_entry_point("mach.external.providers")