{ "info": { "author": "Robin Roth", "author_email": "robin.roth@kit.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX :: Linux", "Topic :: System :: Systems Administration" ], "description": "# hostlist\n\nHostlist reads yaml lists with information about hosts and generates\nconfig files and inventory for several services.\n\n\n## Quickstart\n\nExample input files are in the ``tests`` directory. Hostlists are defined in the ``hostslists`` subdirectory, where the filename\nencodes the ``hosttype`` and ``institute`` attributes of the contained hosts.\n\nRun ``buildfiles`` to generate the output.\n``buildfiles --help`` shows the available options.\n\n## Configuration\n\nThe main configuration is in ``config.yml`` in the working directory. \nHostlists are collected in a directory listed in ``config.yml``.\n\n\n## Format of hostlists\n\nThe hostlists are files under ``hostlists``. The file format is either\n``hosttype-institute.yml`` or ``hosttype.yml``, i.e. 0 or 1 dash. The filename will\nbe parsed and set as institute/hosttype for all hosts in that file.\n\nThe hostlists are in yaml. Multiple yaml documents in one file are allows. Each\nyaml document starts with a line containing only ``---``.\n\nEach yaml document document has a ``header`` and a list of ``hosts``.\nThe header has to have an iprange, that lists the allowed range for the hosts in\nthe file. It can also set variables and groups.\n\nThe hostlist is a list of dicts, which each need a hostname and an ip and can\ntake other variables.\n\n## Variables and Groups\n\nEach host has a list of variables (dict) associated with it as well as a list of groups (set).\n\nIf variables are set in multiple places they are overwritten in this order:\nfilename < header < host\n\nFor groups a default is set in the config file. \nIn the header and the host definition one can define lists ``groups`` and ``notgroups`` that are added/subtracted from the list of\ngroups for that host.\n\nGroups are used to define which hosts are used in some outputs (muninnode, ssh_known_hosts) or which hosts should be included for\nchecks (needs_ip, needs_mac).\n\n\n## Checks\n\nMany checks are performed to ensure consistency and find mistakes before they\nare deployed:\n\n* IP range\n\n * hosts must have an IP in the given range\n * all hosts must fall into the IP ranges stated in the config\n * ipranges between files must not overlap (except iprange_allow_overlap is set)\n \n* IP, MAC and hostname must be unique\n* if ``user`` is set, it must be an existing user account (to detect machines\n belonging to users who no longer have an account)\n* if ``end_date`` is set, it must be in the future \n \nTo ignore failed tests list them in the ``ignore_checks`` list in your ``config.yml``:\n```yaml\nignore_checks:\n - \"end_date\"\n - \"user\"\n - \"nonunique\"\n - \"cnames\"\n - \"duplicates\"\n - \"missing_mac_ip\"\n - \"iprange_overlap\"\n``` \n\n## Services\n\nAt the moment the supported services are:\n\n* /etc/hosts, can also be used for dnsmasq\n* dhcpd\n* ansible inventory\n* munin \n* ssh_known_hosts generation\n\n\n## Web daemon\n\nYou can start ``hostlist-daemon`` to serve the generated content (dns,dhcp,munin,...) via http. Start ``hostlist-daemon`` where you would run ``buildfiles``. The web daemon is based on cherrypy and has a config file daemon.conf.\n \nIn addition there is a human readable web page generated with [ansible-cmdb](https://github.com/fboender/ansible-cmdb). Optional settings for ansible-cmd are:\n```yaml\nansible_cmdb:\n columns:\n - name\n - ram\n - comment\n - main_ip\n template: 'fancy_html'\n data: \n fact_dirs:\n - facts\n```\n \nwhich can be tested by viewing the output of ``buildfiles --web > index.html`` in a web browser. \nNote that if you want to have various host variables listed you must add them to the ``ansiblevars`` dict in the config.yml in order to have them in the ansible inventory. \nSince buildfiles does not execute ansible on any remote host, there are no host facts (ram,cpu,vendors,disk usage...) available. However, one can supply these informations via fact caching from previous ansible runs via the directories listed in ``fact_dirs`` (see the ansible-cmdb documentation).\n\n\n## Example\n\nA working example for inputs and all configuration files can be found in ``tests``.\n\n\n## DNSVS Synchronization\n\nBesides generating config files, the hostlist can also be synchronized against\nDNSVS, which is the dns management system used by https://www.scc.kit.edu.\n\nIn order to use the DNSVS interface you need a ssl-key, which is expected in ~/.ssl/net-webapi.key. In order to generate the key, follow the instructions in the section \"Hinweise zur Zertifikatsbenutzung bzw. Registrierung\" at the bottom of the page https://www-net-doku.scc.kit.edu/webapi/2.0/intro.\n\nWith the key added, you can run ``buildfiles``, which shows you a\ndiff between dnsvs and the local files and gives the option to copy the local\nhostlist to dnsvs.\n\n\n## Tests\nTo run the tests:\n::\n\n cd tests; py.test\n\n## Contribute\nFeel free to use the code and adjust it to your needs.\nPull requests are welcome!\n\n## Style guide\n\nThe code should obey PEP8 (as enforced by flake8 or pylint) when possible.\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/particlekit/hostlist", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "hostlist", "package_url": "https://pypi.org/project/hostlist/", "platform": "", "project_url": "https://pypi.org/project/hostlist/", "project_urls": { "Homepage": "https://github.com/particlekit/hostlist" }, "release_url": "https://pypi.org/project/hostlist/1.4.3/", "requires_dist": [ "PyYAML", "termcolor", "requests", "cherrypy", "GitPython", "ansible-cmdb", "typing; python_version in \"3.2 3.3 3.4\"" ], "requires_python": ">=3.2", "summary": "Sync hostlist and builds config files for services.", "version": "1.4.3" }, "last_serial": 5567024, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "128447fb9d384c865fc54ac573338711", "sha256": "589f885cf888c33ebd5e4fad1df1fa3947fe8554c651e5bfbba8aa7be7ea5eed" }, "downloads": -1, "filename": "hostlist-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "128447fb9d384c865fc54ac573338711", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51801, "upload_time": "2016-11-19T15:21:06", "url": "https://files.pythonhosted.org/packages/7c/99/ad4d94d6a764a127f6fd1dd27165637db06555cf9a3e1470604b9a843947/hostlist-1.0.1-py3-none-any.whl" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "69adbf0e93759476198b39e8e9ee9836", "sha256": "bc3aeca893cfcb999d784f5cb8ae5c7f1f1af735608c3e4f13f9819c59e9e810" }, "downloads": -1, "filename": "hostlist-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "69adbf0e93759476198b39e8e9ee9836", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 52251, "upload_time": "2016-11-19T16:54:15", "url": "https://files.pythonhosted.org/packages/e3/d6/716e8b159a39b8ff10592228f521703164a7d5d7bf802084e66599436955/hostlist-1.0.2-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "0f7dff8ced8ea10a116de4fc3ad25dc6", "sha256": "802d3f5b2bb4a3de2b84ce53b77ef6eed4f504f05c6d02748d027f84b2999320" }, "downloads": -1, "filename": "hostlist-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f7dff8ced8ea10a116de4fc3ad25dc6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 53361, "upload_time": "2016-12-07T15:47:44", "url": "https://files.pythonhosted.org/packages/e4/dd/9ce55df737f1ed76a84a185e07962186eeb0c47b688da2f55c75c66069ad/hostlist-1.1.0-py3-none-any.whl" } ], "1.1.0a2": [ { "comment_text": "", "digests": { "md5": "ee617b6df647df01093224eeb052d12a", "sha256": "6ab2626bf3a2124d2dfc5f41df5b6af5cae8f86f553063f7da2d86e0b96fa400" }, "downloads": -1, "filename": "hostlist-1.1.0a2-py3-none-any.whl", "has_sig": false, "md5_digest": "ee617b6df647df01093224eeb052d12a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 55078, "upload_time": "2016-11-28T16:49:54", "url": "https://files.pythonhosted.org/packages/a8/d6/09fcdb956faa30a5e9834abc392859ad033ad4f08f40658c3135f2333d50/hostlist-1.1.0a2-py3-none-any.whl" } ], "1.1.0rc1": [ { "comment_text": "", "digests": { "md5": "8f30eadb3d62ea0423002159a069b889", "sha256": "d8aeb315ee32833d8afc782893a78338687941d2e4aa4bc720aed2ad7fbb4a81" }, "downloads": -1, "filename": "hostlist-1.1.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "8f30eadb3d62ea0423002159a069b889", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 52833, "upload_time": "2016-12-05T08:50:11", "url": "https://files.pythonhosted.org/packages/60/2a/fd5349fc8d8a066f03b476bd924989be0c58881c921009ea6143c34288f2/hostlist-1.1.0rc1-py3-none-any.whl" } ], "1.1.0rc2": [ { "comment_text": "", "digests": { "md5": "ec55f0c5374645ec0fadb5a3aeda639c", "sha256": "f76a8a64d78f7fff96b3f6ebde4ab798372fc7aeea43dc96bfc321871b6b7c1a" }, "downloads": -1, "filename": "hostlist-1.1.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "ec55f0c5374645ec0fadb5a3aeda639c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 53227, "upload_time": "2016-12-05T13:35:16", "url": "https://files.pythonhosted.org/packages/43/ba/ae8b1a8b94b895187ba0eaff6b4deb6fa7bdf34f34972a9caf8907742e90/hostlist-1.1.0rc2-py3-none-any.whl" } ], "1.1.0rc3": [ { "comment_text": "", "digests": { "md5": "ffd060bd64df31ae4a770f8e86927c78", "sha256": "467746fad6180eeeb0f49391979dd792079084d4a95307c55c342861856ff8bb" }, "downloads": -1, "filename": "hostlist-1.1.0rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "ffd060bd64df31ae4a770f8e86927c78", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 82459, "upload_time": "2016-12-05T13:50:32", "url": "https://files.pythonhosted.org/packages/9e/32/ac1bf7d2f38f219e8106d08567599fdfd76c3df4889d81261c6141a08484/hostlist-1.1.0rc3-py3-none-any.whl" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "6b05d25d5fce456a3a83e4994f55bf0e", "sha256": "a648c1d5bd87ab794b97f9fda08c11d8585c4522590a13032aceccc3d71e0381" }, "downloads": -1, "filename": "hostlist-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6b05d25d5fce456a3a83e4994f55bf0e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 55124, "upload_time": "2016-12-21T10:08:48", "url": "https://files.pythonhosted.org/packages/b6/82/32a73905c211f3981557b5b05b84df2ec2b92dfbd086f1ed85931019f0fc/hostlist-1.2.0-py3-none-any.whl" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "024df0fc5df68680cfda73eac117711a", "sha256": "3225b73cfff7211d0cfc1c33186011f28c715d816ec2c7838c5fe95e4b142869" }, "downloads": -1, "filename": "hostlist-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "024df0fc5df68680cfda73eac117711a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 55633, "upload_time": "2017-01-05T15:08:44", "url": "https://files.pythonhosted.org/packages/19/67/c2b641953feb080a9b84d0577cdfca55dc01f3c2f48da2e81c69690f5fa4/hostlist-1.2.1-py3-none-any.whl" } ], "1.2.2": [], "1.2.3": [ { "comment_text": "", "digests": { "md5": "1e5c19d166427d589cf76ef02982fa3d", "sha256": "a148ec448df3f81cf29228cecabdb340c55952b6cc54537056152e9d5b0b0055" }, "downloads": -1, "filename": "hostlist-1.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1e5c19d166427d589cf76ef02982fa3d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 56440, "upload_time": "2017-01-20T20:07:32", "url": "https://files.pythonhosted.org/packages/76/c9/f169d37d16310f2b70655d5c8435ff1dfd41135d566087b0b8a8a44aaa94/hostlist-1.2.3-py3-none-any.whl" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "8ece2d995b48298b7ebd3fbdbeaf3510", "sha256": "4128b5543cc728d3733930293c6fd5e2f85165b8a1fb826c3a35c7736eabe364" }, "downloads": -1, "filename": "hostlist-1.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8ece2d995b48298b7ebd3fbdbeaf3510", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 56439, "upload_time": "2017-01-20T21:12:37", "url": "https://files.pythonhosted.org/packages/b0/7f/e946e7ae78131fecd62e32d1f90cf1b36757c2886b22c09ed16abe3127fb/hostlist-1.2.4-py3-none-any.whl" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "855b0189e944a8c4ba0a41d61edeb736", "sha256": "19e35e734144810963bf25f8913e1d9db506f9db6fde27bbf46b380297b2ef22" }, "downloads": -1, "filename": "hostlist-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "855b0189e944a8c4ba0a41d61edeb736", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 58070, "upload_time": "2017-02-06T10:59:00", "url": "https://files.pythonhosted.org/packages/49/b3/6b7e347348b7efc0e1705bda02a14de16ff6b511da19f4b8cd8efbb6ecc5/hostlist-1.3.0-py3-none-any.whl" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "b00e7fb9cd7270ed70a0ee1b31ea188e", "sha256": "67720f2b1d371c02deae3e22221aac59c765c1d68915d52c33018f38a143f4e4" }, "downloads": -1, "filename": "hostlist-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b00e7fb9cd7270ed70a0ee1b31ea188e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 57956, "upload_time": "2017-02-07T13:09:49", "url": "https://files.pythonhosted.org/packages/2b/ba/880d10a11852f6cd624bc8f32bbc06233c5d857a5e43ae0b87bbd6ed6dd5/hostlist-1.3.1-py3-none-any.whl" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "e3970eb16bb9cea8f23a2398dbf966c8", "sha256": "145ec79aa3cc9676b3398e6bbb426a9650d511b6d86d1f9a8094821850d7054c" }, "downloads": -1, "filename": "hostlist-1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e3970eb16bb9cea8f23a2398dbf966c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 58057, "upload_time": "2017-02-13T15:49:38", "url": "https://files.pythonhosted.org/packages/5b/56/5b94342b0d48f438c2491d961727945f8a5e560066326103876f35467b6a/hostlist-1.3.2-py3-none-any.whl" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "8e007bb2430dc0157c9bfc378e8e9b4f", "sha256": "d0040a6f47ea9675bec7344749c0cf21b94faf164c8d6c5d83d1a87f090879d2" }, "downloads": -1, "filename": "hostlist-1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8e007bb2430dc0157c9bfc378e8e9b4f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 58550, "upload_time": "2017-06-08T10:03:54", "url": "https://files.pythonhosted.org/packages/55/fc/861d323157f470418dda08bf95522b4b61aea6e5f17a5bc76cbf847600f8/hostlist-1.3.3-py3-none-any.whl" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "85e403467f714ff908436f38e4bbb07f", "sha256": "083dacd4394177a653eac66edf7721b410827de39e00fecfb771b81082e2ef93" }, "downloads": -1, "filename": "hostlist-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "85e403467f714ff908436f38e4bbb07f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 95529, "upload_time": "2017-12-06T08:23:47", "url": "https://files.pythonhosted.org/packages/7f/ad/65d1b1828cfadc6abe7b494333fcaf1f63816e5e16b0a395ed56ab3a2698/hostlist-1.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "235d56c3b1514eabd52e4ad06eec1bf1", "sha256": "a7be3bc769ffb3f9e4ab2e8fe10a7fb2eede930871ca8a16d40ce13cff3d6764" }, "downloads": -1, "filename": "hostlist-1.4.0.tar.gz", "has_sig": false, "md5_digest": "235d56c3b1514eabd52e4ad06eec1bf1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.2", "size": 33482, "upload_time": "2017-12-06T08:23:53", "url": "https://files.pythonhosted.org/packages/8c/5c/a5ae942dd2845bb7b73dbeda6df54e0bf99f30327f707587fc6f0bc62437/hostlist-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "598e9efca1f2857ed025211608425b85", "sha256": "d584ae717b92933c1b15e6afe9f3ff6bb8c23cf01e496c379948820432621df2" }, "downloads": -1, "filename": "hostlist-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "598e9efca1f2857ed025211608425b85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 95582, "upload_time": "2019-02-11T12:33:24", "url": "https://files.pythonhosted.org/packages/be/4d/5813a5095d5679e157c53a7169b04521f304786fae5479e6fe9290d7a521/hostlist-1.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89041f299d5856df0993a6a45dd3050d", "sha256": "3d9d7e4ec9176208da39210469b7a3a0861afd56cc2690e769f5521b86721803" }, "downloads": -1, "filename": "hostlist-1.4.1.tar.gz", "has_sig": false, "md5_digest": "89041f299d5856df0993a6a45dd3050d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.2", "size": 33563, "upload_time": "2019-02-11T12:33:27", "url": "https://files.pythonhosted.org/packages/2e/df/7634d674ac376376e9dde5fa92f51fc1602f984209bab1c99e992f3d736d/hostlist-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "5ba9c48b74c9112824101c3668d78139", "sha256": "71fd9c1e9900bcc1550a12c3118812ce6ab7135ad769f90b8d0a74d861a29040" }, "downloads": -1, "filename": "hostlist-1.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5ba9c48b74c9112824101c3668d78139", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 95713, "upload_time": "2019-03-13T16:27:44", "url": "https://files.pythonhosted.org/packages/b6/f5/60530a955b4d0e150c05ce1c13358fb200a66ed01518c5617859c81f9882/hostlist-1.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98e9dee76639fd59589859c59c460732", "sha256": "9a6fe412c69b5ab01ac8637150705c9bc87aeae35f978adb4551b027ae5df454" }, "downloads": -1, "filename": "hostlist-1.4.2.tar.gz", "has_sig": false, "md5_digest": "98e9dee76639fd59589859c59c460732", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.2", "size": 33625, "upload_time": "2019-03-13T16:28:27", "url": "https://files.pythonhosted.org/packages/c1/f2/0e3cb9fa37b169325dee983ea55f8ecdb72f1bfcf0cd3194c9822d8058c0/hostlist-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "aa3bcf63e45f9391ea88df0f625ac4d4", "sha256": "e947a2a8da9a26c830da87a42ab971009d102b74528cfbe7576a8c6774455d72" }, "downloads": -1, "filename": "hostlist-1.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "aa3bcf63e45f9391ea88df0f625ac4d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 95696, "upload_time": "2019-07-22T11:57:46", "url": "https://files.pythonhosted.org/packages/85/a6/bda2a42022eb99ee49c6a8a62d739923a8e0fab2f8e640f19e219c118d1a/hostlist-1.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40ce5d1334d5a3ea4c936166698b4bda", "sha256": "2d17b6b981069363dc6ca1053c0e680d78f0f9ea6b7441b5e198999aa4638e4a" }, "downloads": -1, "filename": "hostlist-1.4.3.tar.gz", "has_sig": false, "md5_digest": "40ce5d1334d5a3ea4c936166698b4bda", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.2", "size": 33585, "upload_time": "2019-07-22T11:57:50", "url": "https://files.pythonhosted.org/packages/6a/ae/d147ef6faa0dd8fef49a569ef76842e92a906cf98ca808deb2d1b35b554b/hostlist-1.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aa3bcf63e45f9391ea88df0f625ac4d4", "sha256": "e947a2a8da9a26c830da87a42ab971009d102b74528cfbe7576a8c6774455d72" }, "downloads": -1, "filename": "hostlist-1.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "aa3bcf63e45f9391ea88df0f625ac4d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.2", "size": 95696, "upload_time": "2019-07-22T11:57:46", "url": "https://files.pythonhosted.org/packages/85/a6/bda2a42022eb99ee49c6a8a62d739923a8e0fab2f8e640f19e219c118d1a/hostlist-1.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40ce5d1334d5a3ea4c936166698b4bda", "sha256": "2d17b6b981069363dc6ca1053c0e680d78f0f9ea6b7441b5e198999aa4638e4a" }, "downloads": -1, "filename": "hostlist-1.4.3.tar.gz", "has_sig": false, "md5_digest": "40ce5d1334d5a3ea4c936166698b4bda", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.2", "size": 33585, "upload_time": "2019-07-22T11:57:50", "url": "https://files.pythonhosted.org/packages/6a/ae/d147ef6faa0dd8fef49a569ef76842e92a906cf98ca808deb2d1b35b554b/hostlist-1.4.3.tar.gz" } ] }