-
Notifications
You must be signed in to change notification settings - Fork 86
RangeSet (class)
thiell edited this page Mar 4, 2012
·
2 revisions
The RangeSet class implements a kind of set of integers internally organized as contiguous ranges (start, stop). This data structure is designed to manage cluster node indexes and is used by the NodeSet class itself.
The ClusterShell library also provides a nodeset command which has a -R switch to allow users to use most of the RangeSet class features directly from the command line, for example:
$ nodeset -R -e 1-15/2
1 3 5 7 9 11 13 15
$ nodeset -R -f 11 9 3 5 1 12 4 10
1,3-5,9-12Thus, it can be used as a replacement for seq:
$ for i in $(nodeset -R -e 1-5,8,10-18/2); do do_something_with $i; donePlease use the following command to see RangeSet API documentation:
$ pydoc ClusterShell.NodeSet.RangeSetor as of v1.6:
$ pydoc ClusterShell.RangeSet.RangeSetThis section introduces some features of the RangeSet class. Like the NodeSet class, the RangeSet class is largely inspired from the standard Python Set class (as of v1.6, it derives from the set type).
rset = RangeSet() # empty RangeSet
rset = RangeSet("5,10-42") # contains 5, 10 to 42
rset = RangeSet("0-10/2") # contains 0, 2, 4, 6, 8, 10
rset = RangeSet.fromlist([4, 7, 2, 3]) # => 2-4,7rset = RangeSet("0-10/2")
4 in rset # returns True
5 in rset # returns False