The Python module hostlist.py knows how to expand and collect LLNL hostlists, as used by Slurm, pdsh, powerman, and genders, among other projects. An 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 n10If you have questions, suggestions, bug reports or patches, please send them to kent@nsc.liu.se.
Related software
You might want to take a look at nodes too.
The ClusterShell project provides functionality similar to hostlist, nodes and pdsh.
Current release
- python_hostlist-2.3.0.tar.gz (2025-08-29)
Development
You can clone the external copy of the git repository using
git clone git://www.nsc.liu.se/~kent/python-hostlist.git
Older releases
- python_hostlist-2.2.2.tar.gz (2025-07-10)
- python-hostlist-2.2.1.tar.gz (2024-12-03)
- python-hostlist-2.0.0.tar.gz (2024-10-25, removal of Python 2 support)
- python-hostlist-1.23.0.tar.gz (2023-01-03)
- python-hostlist-1.22.tar.gz (2022-10-12)
- python-hostlist-1.21.tar.gz (2020-10-20)
- python-hostlist-1.20.tar.gz (2020-01-23)
- python-hostlist-1.18.tar.gz (2018-07-04)
- python-hostlist-1.17.tar.gz (2017-01-23)
- python-hostlist-1.16.tar.gz (2016-05-23)
- python-hostlist-1.15.tar.gz (2016-04-21)
- python-hostlist-1.14.tar.gz (2012-10-31)
- python-hostlist-1.13.tar.gz (2012-07-09)
- python-hostlist-1.12.tar.gz (2012-06-29)
- python-hostlist-1.11.tar.gz (2011-02-04)
- python-hostlist-1.10.tar.gz (2010-10-11)
- python-hostlist-1.9.tar.gz (2010-09-22)
- python-hostlist-1.8.tar.gz (2010-09-08)
- python-hostlist-1.7.tar.gz (2010-07-08)
- python-hostlist-1.6.tar.gz (2009-10-02)
- python-hostlist-1.5.tar.gz (2009-02-22)
- python-hostlist-1.4.tar.gz (2008-12-28)
- python-hostlist-1.3.tar.gz (2008-09-30)
- python-hostlist-1.2.tar.gz (2008-09-18)
- python-hostlist-1.1.tar.gz (2008-09-17)
- python-hostlist-1.0.tar.gz (2008-07-25)