Package Ganga :: Package GPIDev :: Package Adapters :: Module ISplitter :: Class ISplitter
[hide private]
[frames] | no frames]

Class ISplitter

source code

          object --+        
                   |        
   Base.Objects.Node --+    
                       |    
Base.Objects.GangaObject --+
                           |
                          ISplitter
Known Subclasses:

This is a Ganga.GPI.ISplitter implementation class. Refer to Ganga.GPI.ISplitter.__doc__ for documentation.

Nested Classes [hide private]
  _proxyClass
Properties:

Inherited from Base.Objects.GangaObject: __metaclass__

Instance Methods [hide private]
 
_checksetNestedLists(self, value)
The rule is that if there are nested lists then they must not contain GangaObjects, as this corrupts the repository
source code
 
createSubjob(self, job)
Create a new subjob by copying the master job and setting all fields correctly.
source code
 
split(self, job)
Return a list of subjobs generated from a master job.
source code
 
validatedSplit(self, job)
Perform splitting using the split() method and validate the mutability invariants.
source code

Inherited from Base.Objects.GangaObject: __construct__, __deepcopy__, __getstate__, __init__, __setstate__, _attribute_filter__set__, _auto__init__, accept, getJobObject

Inherited from Base.Objects.Node: __copy__, __eq__, __ne__, clone, copyFrom, printSummaryTree, printTree

Inherited from Base.Objects.Node (private): _getParent, _getRoot, _setParent

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Methods [hide private]

Inherited from Base.Objects.GangaObject (private): _declared_property

Class Variables [hide private]
  _category = 'splitters'
  _hidden = 1
  _schema = Schema(Version(0, 0), {})

Inherited from Base.Objects.Node (private): _index_cache, _parent

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

split(self, job)

source code 

Return a list of subjobs generated from a master job. The original master job should not be modified. This method should be implemented in the derived classes.

Splitter changes certain parts of the subjobs i.e. mutates certain properties (otherwise all subjobs would be the same). Only these properties may be mutated which are declared 'splitable' in the schema. This restriction applies to application objects to avoid inconsistencies if application handler is not able to deal with modified arguments.

In the current implementation the type of the backend cannot be changed either.

validatedSplit(self, job)

source code 

Perform splitting using the split() method and validate the mutability invariants. If the invariants are broken (or exception occurs in the split() method) then SplittingError exception is raised. This method is called directly by the framework and should not be modified in the derived classes.