没有项目描述
QuickApp的Python项目详细描述
快速应用程序
quickapp是一个库,它包含compmake、repreprep的功能 在高层建筑中得到了极其迅速的科学应用发展。
最简单的QuickApp应用程序
这是一个最简单的QuickApp应用程序示例。 它不使用compmake功能。
from quickapp import QuickAppBase class VideoMaker(QuickAppBase): """ Basic example of a QuickApp (no Compmake support) """ def define_program_options(self, params): params.add_int('param_name', default=1) def go(self): self.info('you passed: %s' % self.get_options().param_name) main = VideoMaker.get_sys_main()
下面是一个使用compmake定义作业的示例:
#!/usr/bin/env python from quickapp import QuickApp class AppExample(QuickApp): """ Simplest app example """ def define_options(self, params): params.add_int('x', default=1) def define_jobs_context(self, context): options = self.get_options() # create a job context.comp(f, options.x) def f(x): print('x = %s' % x) app_example_main = AppExample.get_sys_main() if __name__ == '__main__': app_example_main()
带子命令的QuickApp
通过从QuickMultiCmdApp:
派生定义父应用程序class DemoApp(QuickMultiCmdApp): cmd = 'dp' def define_multicmd_options(self, params): params.add_string('config', help='Config Joint') params.add_int('param2', help='Second parameter') def initial_setup(self): options = self.get_options() self.info('Loading configuration from %r.' % options.config) self.info('My param2 is %r.' % options.param2) main_func = DemoApp.
通过从DemoApp.get_sub():
派生定义子应用程序class DemoAppCmd1(QuickApp, DemoApp.get_sub()): cmd = 'cmd1' short = 'First command' def define_options(self, params): params.add_int('param1', help='First parameter', default=1) params.add_int('param2', help='Second parameter') def define_jobs(self, context): options = self.get_options() self.info('My param2 is %r.' % options.param2)