The Python module hostlist.py knows how to expand and collect hostlist
expressions. Example:

  % python
  Python 2.5.1 (r251:54863, Jul 10 2008, 17:24:48) 
  [GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] on linux2
  Type "help", "copyright", "credits" or "license" for more information.
  >>> import hostlist
  >>> hosts = hostlist.expand_hostlist("n[1-10,17]")
  >>> hosts
  ['n1', 'n2', 'n3', 'n4', 'n5', 'n6', 'n7', 'n8', 'n9', 'n10', 'n17']
  >>> hostlist.collect_hostlist(hosts)
  'n[1-10,17]'
  >>> hostlist.collect_hostlist(["x1y1","x2y2", "x1y2", "x2y1"])
  'x[1-2]y[1-2]'

Bad hostlists or hostnames will result in the hostlist.BadHostlist
exception being raised.

The 'hostlist' command is provided to expand/collect hostlists and
perform set operations on them. Example:

  % hostlist n[1-10] n[5-20]
  n[1-20]
  % hostlist --difference n[1-10] n[5-20]
  n[1-4]
  % hostlist --expand --intersection n[1-10] n[5-20] 
  n5
  n6
  n7
  n8
  n9
  n10

Install directly by running

  python setup.py build   (as yourself)
  python setup.py install (as root) 

or just copy the hostlist.py, hostlist and hostlist.1 files to appropriate places.

Build RPM packages by running:

  rpmbuild -ta python-hostlist-VERSION.tar.gz

If you do not have the tar archive, build RPM packages by running:

  python setup.py sdist
  cp dist/python-hostlist-VERSION.tar.gz ~/rpmbuild/SOURCES
  rpmbuild -ba python-hostlist.spec  

You will find new releases at:

  http://www.nsc.liu.se/~kent/python-hostlist/

If you have questions, suggestions, bug reports or patches, please
send them to:

  kent@nsc.liu.se.
