动作(Actions)¶
Action
是对客观世界里的一套动作的抽象,它将具体的动作按照流程化的方式分解,以使它更容易被理解和复用。
数据处理的世界也存在一系列可以被复用的行为,我们定义模块 actions
,并且对其中最常见的操作进行抽象,帮助使用者只需要实现最少的“动作”。
moose.actions.base¶
-
class
base.
AbstractAction
¶ AbstractAction是所有actions的抽象类,它定义了接口 run() 作为action的子类被调用的入口。
-
run
(**kwargs)¶ 所有Action类的入口。
参数: kwargs (dict) – action 执行所需要的参数列表。
-
-
class
base.
BaseAction
(app_config, stdout=None, stderr=None, style=None)¶ BaseAction定义了Action的初始化参数和标准流程,所有Action类都应继承该类,并按照它提供的流程去分解过程并对方法进行实现。
参数: - app_config (moose.apps.AppConfig) – App的对象表示,提供了该app的路径等信息。
- stdout (moose.core.OutputWrapper) – 标准输出,子类通过调用 self.stdout.write() 输出到标准输出。
- stderr (moose.core.OutputWrapper) – 标准错误输出对象,子类通过调用 self.stderr.write() 输出到标准错误输出。
- style (moose.core.Style) – 定义输出的格式和显示效果。
-
stats_class
¶ 类变量,定义用于统计的类,默认值为
"moose.actions.stats.StatsCollector"
-
stats_dump
¶ 类变量,是否输出统计结果,默认为
True
-
run
(**kwargs)¶ 定义了具体流程,如下:
def run(self, **kwargs): environment = self.parse(kwargs) for context in self.schedule(environment): stats_id = self.execute(context) self.stats.close_action(self, stats_id) self.teardown(environment) return '\n'.join(self.output