IMerger及ISplitter文档解析

IMerger

类图如下:

IMerger类图

文档解析:

1.merger(self,subjobs,sum_outputdir,**option)

  • 合并子作业的输出到sum_outputdir.
  • options(关键字参数)由具体的子类定义

2.validatedMerge(self.job)

ISplitter

类图如下:

ISplitter类图

文档解析:

1.split(self,job)

  • 根据主作业返回子作业列表
  • 主作业不会被更改
  • 具体子类必须实现本方法
  • 修改子作业的确定部分(如特定的属性)。子作业的其他部分都会相同。只有在schema中声明为"splitable"的属性才可修改。如果app handler不能处理被修改的参数,这个限定应用在app对象上就可以避免前后不一致。
  • 当前的实现中,backend的类型也不可更改。

2.validatedSplit(self,job)

  • 调用split()方法执行作业拆分,并使mutability inveriants有效
  • 如果invariants损坏(或者split()中发生异常),则抛出SplittingError异常
  • 由框架直接调用且不应该在子类中更改

3._checksetNestedLists(self,value)

  • 检查嵌套列表,规则是如果有嵌套列表,则它不能包含GangaObjects,因为这会与repository冲突。不符合规则会抛出异常。

4.createSubjob(self,job)

  • 通过拷贝主作业来产生一个新的子作业,并正确设置其所有的域。

Comments !

blogroll

social