禁欲主义的指挥者。使用自定义管理命令为python应用程序供电的最简单方法
acmdrunner的Python项目详细描述
禁欲主义指挥者
不是所有的项目都在使用django或另一个god框架。 所以,一旦我们开始我们的爱好项目,将是伟大的投入到游戏的一些命令。 例如,我们的爱好项目可能需要加载自定义testrunner的简单命令测试等 在这种情况下,这个包裹也许对你很方便!
安装
只需在bash中运行:
pip install acmdrunner
用法
在类似manage.py的django命令加载程序中,需要触发以下命令:
importosfromacmdrunnerimportLoader...makeallyourpreparations,initializeprojectsettings,etc...Loader.load_from_directory(os.path.dirname(__file__))Loader.load_from_package('rit.app')
加载程序将在传递的文件夹中递归搜索具有名称管理的文件夹。 并尝试从找到的文件夹加载acr_commands.py文件
acr_commands.py文件的示例:
fromacmdrunner.dispatcherimportCommandDispatchercommand_dispatcher=CommandDispatcher()defexecute(*args):passcommand_dispatcher.register_command('test',execute)
register_command为此命令注册特定的命令和处理程序。 您的命令应该实现execute方法。最好从basecommand继承。 但由于它是禁欲主义的,您可以简单地通过类来实现execute方法。 就这样!
要运行命令,请触发以下调用:
fromyour_package_placeimportcommand_dispatchercommand_dispatcher.execute_command(command_name,*args,**kwargs)
实际使用示例
如果要从特定命名空间加载所有命令,可以实现以下功能:
packages_to_traverse=('rit.app','rit.core')forpackageinpackages_to_traverse:Loader.load_from_package(package[0])Loader.load_from_directory(os.path.dirname(os.getcwd()))