FileRange

Define a range of values for a ParameterSpace based on the lines of a text file. An instance of this class is used as a dimension in a ParameterSpace definition.The file name must either refer to a file that is readable from the server and resources (on a shared file system) or must be a DataGrid file URL.

Constructor

FileRange(String filename): Constructs a FileRange using the supplied filename. The file must be readable.

Parameters: The userenv - true to set user environment variables.

Methods

Detail:

setDelimiter(char delimiter)

Define the line delimiter to separate lines. Defaults to line feed.

Parameters: delimiter - Character to use for delimiting lines.

setSkipBlankLines(boolean value)

Defines whether to ignore blank lines or not. Default is to not ignore blank lines.

Parameters: delimiter - Character to use for delimiting lines.

Inherited from org.python.core.PySequence class:

__delitem__, __delslice__, __eq__, __finditem__, __finditem__, __ge__, __getitem__, __getslice__, __gt__, __le__, __lt__, __ne__, __nonzero__, __setitem__, __setitem__, __setslice__, __tojava__, classDictInit, del, delRange, fastSequence, fixindex, get, getslice, getStart, getStep, getStop, isMappingType, isNumberType, repeat, set, setslice, sliceLength

Inherited from org.python.core.PyObject class:

__abs__, __add__, __and__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __cmp__, __coerce__, __coerce_ex__, __complex__, __contains__, __delattr__, __delattr__, __delitem__, __delslice__, __dir__, __div__, __divmod__, __findattr__, __findattr__, __finditem__, __float__, __getattr__, __getattr__, __getitem__, __getslice__, __hash__, __hex__, __iadd__, __iand__, __idiv__, __idivmod__, __ilshift__, __imod__, __imul__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __ixor__, __len__, __long__, __lshift__, __mod__, __mul__, __neg__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __repr__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rxor__, __setattr__, __setattr__, __setitem__, __setslice__, __str__, __sub__, __xor__, _add, _and, _callextra, _cmp, _div, _divmod, _dodel, _doget, _doget, _doset, _eq, _ge, _gt, _in, _is, _isnot, _jcall, _jcallexc, _jthrow, _le, _lshift, _lt, _mod, _mul, _ne, _notin, _or, _pow, _rshift, _sub, _xor, addKeys, equals, getPyClass, hashCode, impAttr, invoke, invoke, invoke, invoke, invoke, isCallable, isSequenceType, safeRepr

Examples

Example to distribute each line of a text file residing on a shared filesystem to a joblet:

 class myjob(Job):
     def job_started_event(self):
        fr = FileRange("/mytests/testlist")
        fr.setSkipBlankLines(True)
        parameterSpace = ParameterSpace()
        parameterSpace.appendDimension("testlist",fr)
        # Setting JobletSize to 1 creates one Joblet per line
        parameterSpace.setMaxJobletSize(1)
        self.schedule(myJoblet,parameterSpace)

In the example above, only a single dimension is defined. So each line of the source text file makes up a single row in the ParameterSpace.

 class myJoblet(Joblet):
      def joblet_started_event(self):
         parameterSpace = self.getParameterSpace()
         while parameterSpace.hasNext():
              row = parameterSpace.next()
              element = row["testlist"]
              print "element=%s" % (element)

See Also