{ "info": { "author": "Oleg Butovich", "author_email": "obutovich@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "=========================================\nProxmoxer: A wrapper for Proxmox REST API\n=========================================\n\nmaster branch: |master_build_status| |master_coverage_status| |pypi_version| |pypi_downloads|\n\ndevelop branch: |develop_build_status| |develop_coverage_status|\n\n\nWhat does it do and what's different?\n-------------------------------------\n\nProxmoxer is a wrapper around the `Proxmox REST API v2 `_.\n\nIt was inspired by slumber, but it dedicated only to Proxmox. It allows to use not only REST API over HTTPS, but\nthe same api over ssh and pvesh utility.\n\nLike `Proxmoxia `_ it dynamically creates attributes which responds to the\nattributes you've attempted to reach.\n\nInstallation\n------------\n\n::\n\n pip install proxmoxer\n\nFor 'https' backend install requests\n\n::\n\n pip install requests\n\nFor 'ssh_paramiko' backend install paramiko\n\n::\n\n pip install paramiko\n\n\nShort usage information\n-----------------------\n\nThe first thing to do is import the proxmoxer library and create ProxmoxAPI instance.\n\n::\n\n from proxmoxer import ProxmoxAPI\n proxmox = ProxmoxAPI('proxmox_host', user='admin@pam',\n password='secret_word', verify_ssl=False)\n\nThis will connect by default through the 'https' backend.\n\nIt is possible to use already prepared public/private key authentication. It is possible to use ssh-agent also.\n\n::\n\n from proxmoxer import ProxmoxAPI\n proxmox = ProxmoxAPI('proxmox_host', user='proxmox_admin', backend='ssh_paramiko')\n\n**Please note, https-backend needs 'requests' library, ssh_paramiko-backend needs 'paramiko' library,\nopenssh-backend needs 'openssh_wrapper' library installed.**\n\nQueries are exposed via the access methods **get**, **post**, **put** and **delete**. For convenience added two\nsynonyms: **create** for **post**, and **set** for **put**.\n\n::\n\n for node in proxmox.nodes.get():\n for vm in proxmox.nodes(node['node']).openvz.get():\n print \"{0}. {1} => {2}\" .format(vm['vmid'], vm['name'], vm['status'])\n\n >>> 141. puppet-2.london.baseblack.com => running\n 101. munki.london.baseblack.com => running\n 102. redmine.london.baseblack.com => running\n 140. dns-1.london.baseblack.com => running\n 126. ns-3.london.baseblack.com => running\n 113. rabbitmq.london.baseblack.com => running\n\nsame code can be rewritten in the next way::\n\n for node in proxmox.get('nodes'):\n for vm in proxmox.get('nodes/%s/openvz' % node['node']):\n print \"%s. %s => %s\" % (vm['vmid'], vm['name'], vm['status'])\n\n\nfor example next lines do the same job::\n\n proxmox.nodes(node['node']).openvz.get()\n proxmox.nodes(node['node']).get('openvz')\n proxmox.get('nodes/%s/openvz' % node['node'])\n proxmox.get('nodes', node['node'], 'openvz')\n\n\nSome more examples::\n\n for vm in proxmox.cluster.resources.get(type='vm'):\n print(\"{0}. {1} => {2}\" .format(vm['vmid'], vm['name'], vm['status']))\n\n\n::\n\n node = proxmox.nodes('proxmox_node')\n pprint(node.storage('local').content.get())\n\nor the with same results\n\n::\n\n node = proxmox.nodes.proxmox_node()\n pprint(node.storage.local.content.get())\n\n\nExample of creation of lxc container::\n\n node = proxmox.nodes('proxmox_node')\n node.lxc.create(vmid=202,\n ostemplate='local:vztmpl/debian-9.0-standard_20170530_amd64.tar.gz',\n hostname='debian-stretch',\n storage='local',\n memory=512,\n swap=512,\n cores=1,\n password='secret',\n net0='name=eth0,bridge=vmbr0,ip=192.168.22.1/20,gw=192.168.16.1')\n\n\nExample of creating the same lxc container with parameters in a dictonary.\nThis approach allows to add ``ssh-public-keys`` without getting syntax errors.\n\n::\n\n newcontainer = { 'vmid': 202,\n 'ostemplate': 'local:vztmpl/debian-9.0-standard_20170530_amd64.tar.gz',\n 'hostname': 'debian-stretch',\n 'storage': 'local',\n 'memory': 512,\n 'swap': 512,\n 'cores': 1,\n 'password': 'secret',\n 'net0': 'name=eth0,bridge=vmbr0,ip=192.168.22.1/20,gw=192.168.16.1' }\n node = proxmox.nodes('proxmox_node')\n node.lxc.create(**newcontainer)\n\nExample of template upload::\n\n local_storage = proxmox.nodes('proxmox_node').storage('local')\n local_storage.upload.create(content='vztmpl',\n filename=open(os.path.expanduser('~/templates/debian-6-my-core_1.0-1_i386.tar.gz'))))\n\n\nExample of rrd download::\n\n response = proxmox.nodes('proxmox').rrd.get(ds='cpu', timeframe='hour')\n with open('cpu.png', 'wb') as f:\n f.write(response['image'].encode('raw_unicode_escape'))\n\nExample of usage of logging::\n\n # now logging debug info will be written to stdout\n logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s:%(name)s: %(message)s')\n\n\nRoadmap\n-------\n\n* write tests\n* support other actual python versions\n* add optional validation of requests\n* add some shortcuts for convenience\n\nHistory\n-------\n\n1.0.3 (1018-09-10)\n..................\n* Improvement: Added option to specify port in hostname parameter (``_)\n* Improvement: Added stderr to the Response content (`J\u00e9r\u00f4me Schneider `_)\n* Bugfix: Paramiko python3: stdout and stderr must be a str not bytes (`J\u00e9r\u00f4me Schneider `_)\n* New lxc example in docu (`Geert Stappers `_)\n\n1.0.2 (2017-12-02)\n..................\n* Tarball repackaged with tests\n\n1.0.1 (2017-12-02)\n..................\n* LICENSE file now included in tarball\n* Added verify_ssl parameter to ProxmoxHTTPAuth (`Walter Doekes `_)\n\n1.0.0 (2017-11-12)\n..................\n* Update Proxmoxer readme (`Emmanuel Kasper `_)\n* Display the reason of API calls errors (`Emmanuel Kasper `_, `kantsdog `_)\n* Filter for ssh response code (`Chris Plock `_)\n\n0.2.5 (2017-02-12)\n..................\n* Adding sudo to execute CLI with paramiko ssh backend (`Jason Meridth `_)\n* Proxmoxer/backends/ssh_paramiko: improve file upload (`J\u00e9r\u00f4me Schneider `_)\n\n0.2.4 (2016-05-02)\n..................\n* Removed newline in tmp_filename string (`J\u00e9r\u00f4me Schneider `_)\n* Fix to avoid module reloading (`jklang `_)\n\n0.2.3 (2016-01-20)\n..................\n* Minor typo fix (`Srinivas Sakhamuri `_)\n\n0.2.2 (2016-01-19)\n..................\n* Adding sudo to execute pvesh CLI in openssh backend (`Wei Tie `_, `Srinivas Sakhamuri `_)\n* Add support to specify an identity file for ssh connections (`Srinivas Sakhamuri `_)\n\n0.2.1 (2015-05-02)\n..................\n* fix for python 3.4 (`kokuev `_)\n\n0.2.0 (2015-03-21)\n..................\n* Https will now raise AuthenticationError when appropriate. (`scap1784 `_)\n* Preliminary python 3 compatibility. (`wdoekes `_)\n* Additional example. (`wdoekes `_)\n\n0.1.7 (2014-11-16)\n..................\n* Added ignore of \"InsecureRequestWarning: Unverified HTTPS request is being made...\" warning while using https (requests) backend.\n\n0.1.4 (2013-06-01)\n..................\n* Added logging\n* Added openssh backend\n* Tests are reorganized\n\n0.1.3 (2013-05-30)\n..................\n* Added next tests\n* Bugfixes\n\n0.1.2 (2013-05-27)\n..................\n* Added first tests\n* Added support for travis and coveralls\n* Bugfixes\n\n0.1.1 (2013-05-13)\n..................\n* Initial try.\n\n.. |master_build_status| image:: https://travis-ci.org/swayf/proxmoxer.png?branch=master\n :target: https://travis-ci.org/swayf/proxmoxer\n\n.. |master_coverage_status| image:: https://coveralls.io/repos/swayf/proxmoxer/badge.png?branch=master\n :target: https://coveralls.io/r/swayf/proxmoxer\n\n.. |develop_build_status| image:: https://travis-ci.org/swayf/proxmoxer.png?branch=develop\n :target: https://travis-ci.org/swayf/proxmoxer\n\n.. |develop_coverage_status| image:: https://coveralls.io/repos/swayf/proxmoxer/badge.png?branch=develop\n :target: https://coveralls.io/r/swayf/proxmoxer\n\n.. |pypi_version| image:: https://img.shields.io/pypi/v/proxmoxer.svg\n :target: https://pypi.python.org/pypi/proxmoxer\n\n.. |pypi_downloads| image:: https://img.shields.io/pypi/dm/proxmoxer.svg\n :target: https://pypi.python.org/pypi/proxmoxer", "description_content_type": "", "docs_url": null, "download_url": "http://pypi.python.org/pypi/proxmoxer", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/swayf/proxmoxer", "keywords": "proxmox,api", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "proxmoxer", "package_url": "https://pypi.org/project/proxmoxer/", "platform": "", "project_url": "https://pypi.org/project/proxmoxer/", "project_urls": { "Download": "http://pypi.python.org/pypi/proxmoxer", "Homepage": "https://github.com/swayf/proxmoxer" }, "release_url": "https://pypi.org/project/proxmoxer/1.0.3/", "requires_dist": null, "requires_python": "", "summary": "Python Wrapper for the Proxmox 2.x API (HTTP and SSH)", "version": "1.0.3" }, "last_serial": 4258893, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "a8cd2cb8f47e806e05cb86dd0393d2b2", "sha256": "6e1c45593223adf3c0120f91be4e7b117574bad445a81fbcca82232c4775aeac" }, "downloads": -1, "filename": "proxmoxer-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a8cd2cb8f47e806e05cb86dd0393d2b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5623, "upload_time": "2013-05-13T02:55:34", "url": "https://files.pythonhosted.org/packages/d2/2d/3a25d610cf71b84e72a2f01fbeddbeab5fb6f68c6e9236a30b796af4e7ca/proxmoxer-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2b3788228a5104175aa12e6911f2c73a", "sha256": "87a6db590b6ef6c302ec9e8f6da7de9532fb94e584ac4889e73062e75d746d65" }, "downloads": -1, "filename": "proxmoxer-0.1.2.tar.gz", "has_sig": false, "md5_digest": "2b3788228a5104175aa12e6911f2c73a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6425, "upload_time": "2013-05-27T00:38:07", "url": "https://files.pythonhosted.org/packages/12/ba/3ecbe93cfc8dca4653a190453b22b598ba2c9222e98e056c74aeee091244/proxmoxer-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "7fde0017f54d43833f9e16b7e93b2d39", "sha256": "3db8a7fcc131eedd834b58d6f975a9bd9b8e03ba09978ba9965ba0b3ec647e91" }, "downloads": -1, "filename": "proxmoxer-0.1.3.tar.gz", "has_sig": false, "md5_digest": "7fde0017f54d43833f9e16b7e93b2d39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6451, "upload_time": "2013-05-30T17:29:55", "url": "https://files.pythonhosted.org/packages/8f/a5/df295dd120fbf2edd90fc1c4eacd5b5fdf402512fea70332f4743624ea9d/proxmoxer-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "ccc37e8299e18621141ee42165400526", "sha256": "92dc83f68cfd8cab1f56e78a54758978d3c3b0e05310537dec96b803c6eb93f1" }, "downloads": -1, "filename": "proxmoxer-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ccc37e8299e18621141ee42165400526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7197, "upload_time": "2013-06-01T14:04:50", "url": "https://files.pythonhosted.org/packages/bf/80/93de1275e8e62f3ed517e28bf494917b423e940f73554cb3489ab66d5335/proxmoxer-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "built for Darwin-14.0.0", "digests": { "md5": "093a545373a67017cd3c6a78f7c45f6d", "sha256": "db28043a0ad6a93e66a4eecd969675aba528ee66decad427c18cbcc3ef4c6ee0" }, "downloads": -1, "filename": "proxmoxer-0.1.5.macosx-10.9-x86_64.tar.gz", "has_sig": false, "md5_digest": "093a545373a67017cd3c6a78f7c45f6d", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 12094, "upload_time": "2014-11-16T21:22:52", "url": "https://files.pythonhosted.org/packages/37/d4/d1066c5d837e41e92fd50c25152c7af438776597a32887bc9edc25c7b214/proxmoxer-0.1.5.macosx-10.9-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "24023a33c4bd6fe1eb9b988b0e7f01c6", "sha256": "bfcec496009f7f5c2c4fbd21f098c581cf9f62ff05097894cedb88ab2b1374d0" }, "downloads": -1, "filename": "proxmoxer-0.1.5.tar.gz", "has_sig": false, "md5_digest": "24023a33c4bd6fe1eb9b988b0e7f01c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7394, "upload_time": "2014-11-16T21:22:45", "url": "https://files.pythonhosted.org/packages/a4/88/78d70fad3c649a8d6d7674237ddac07b6bffaadcfac6f50aec3e54fea046/proxmoxer-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "0ea0107ce657bddf8703ac992faf4ce9", "sha256": "2da6e02306988a988874cf92c6c36611e0473a06e3da9567d20b51804a889f88" }, "downloads": -1, "filename": "proxmoxer-0.1.6.tar.gz", "has_sig": false, "md5_digest": "0ea0107ce657bddf8703ac992faf4ce9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7473, "upload_time": "2014-11-16T21:27:56", "url": "https://files.pythonhosted.org/packages/0a/5b/bfa653db1b0fb491a0015a5c31c535194ee433ac84f3efd57cb52944183b/proxmoxer-0.1.6.tar.gz" } ], "0.1.6a": [ { "comment_text": "", "digests": { "md5": "3cf97b86b62f1119159910d134c87e87", "sha256": "e5f0137bef4ffadd51a777614c25efdf3e1969634257e29565380e3baf82812c" }, "downloads": -1, "filename": "proxmoxer-0.1.6a.tar.gz", "has_sig": false, "md5_digest": "3cf97b86b62f1119159910d134c87e87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7481, "upload_time": "2014-11-16T21:33:19", "url": "https://files.pythonhosted.org/packages/2c/6c/17d0d0923d1ac99c1ea35b8c53653b79aef8aa81f0b729d5bab77e42f723/proxmoxer-0.1.6a.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "c2c14e4f36f9fdaf8d15a74e0b45f7ed", "sha256": "ae3749cf05a5e2c79ee22dd3f5c13c498a01e49afe1e3e25e7eb44190b2ebf77" }, "downloads": -1, "filename": "proxmoxer-0.1.7.tar.gz", "has_sig": false, "md5_digest": "c2c14e4f36f9fdaf8d15a74e0b45f7ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7472, "upload_time": "2014-11-16T21:35:49", "url": "https://files.pythonhosted.org/packages/b6/67/4d0f43fffdcbb1d4d57b1db2c79b025c01e75b44ace67d232914cba0bd61/proxmoxer-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "2d55de07a98f2c39e21c168342a3ea70", "sha256": "27e4c6025ef01625dda0676fa811647ca25ff260edf9b00904f940d4093db075" }, "downloads": -1, "filename": "proxmoxer-0.1.8.tar.gz", "has_sig": false, "md5_digest": "2d55de07a98f2c39e21c168342a3ea70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7724, "upload_time": "2015-03-21T21:05:50", "url": "https://files.pythonhosted.org/packages/99/40/78a956d0afd1aabcaa1ec8ecc39b72452411b637e0326da6ee9615b84241/proxmoxer-0.1.8.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f90823bdcbea6500ede56ffe95fc24f5", "sha256": "231baa12742e829409aa87188b203bc9bbcda3d1fcab3941dc8851eb0f9a6697" }, "downloads": -1, "filename": "proxmoxer-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f90823bdcbea6500ede56ffe95fc24f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7819, "upload_time": "2015-03-21T21:20:36", "url": "https://files.pythonhosted.org/packages/8f/7b/270582a61eeddeac59f6fb5e53313ec1efa5af027443691336341ddd5b70/proxmoxer-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6c3454224767df39451d39e7dab871b7", "sha256": "51c2e14ee905d6cd3097905c80d5bb85502dbf0c864a757b273885425c8d9c42" }, "downloads": -1, "filename": "proxmoxer-0.2.1.tar.gz", "has_sig": false, "md5_digest": "6c3454224767df39451d39e7dab871b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8006, "upload_time": "2015-05-02T13:04:45", "url": "https://files.pythonhosted.org/packages/fc/7e/1278b3dab3c788c4c36593bf380971c85356b92e3a3b548a30b69326457c/proxmoxer-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "64b593cc32d4c738a26ac948ab1ed7a4", "sha256": "4457b51050adc32a3d71d4bf46141b1ddccd5a6f93b27249c89009dabd9eb517" }, "downloads": -1, "filename": "proxmoxer-0.2.2.tar.gz", "has_sig": false, "md5_digest": "64b593cc32d4c738a26ac948ab1ed7a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8193, "upload_time": "2016-01-19T21:02:01", "url": "https://files.pythonhosted.org/packages/3b/37/ace5ee7449e166a09bd14cfd8195da6d73dc65271fe501ff88e485c474de/proxmoxer-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "e32cab069de3091b2ab8fb13d1cde0bb", "sha256": "fc6b2dafa68a1fef465b7dc4c5af1aaa7ef0b8fc96802489b8b50c63067a5265" }, "downloads": -1, "filename": "proxmoxer-0.2.3.tar.gz", "has_sig": false, "md5_digest": "e32cab069de3091b2ab8fb13d1cde0bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10337, "upload_time": "2016-01-20T11:24:21", "url": "https://files.pythonhosted.org/packages/8a/79/e9e2f83e8d2716f2dc3d269493703ebfbec3cdf47c06cb0d00f6197849c0/proxmoxer-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "07abd227bde5bac25b61e485898a73f1", "sha256": "1aa2cb214e443382898353573e25b1dcb17eb1849fcfbd4c752ee77192918f8c" }, "downloads": -1, "filename": "proxmoxer-0.2.4.tar.gz", "has_sig": false, "md5_digest": "07abd227bde5bac25b61e485898a73f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10509, "upload_time": "2016-05-02T04:54:19", "url": "https://files.pythonhosted.org/packages/9c/f1/2b442f8623d8b59028a95667647620701ed9b4b4412bcd2e300ceb71a6ff/proxmoxer-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "b15edc4820338009ab4b19a7ed4783f7", "sha256": "95fbe1e37ae779227b11bf15480dbb05208167f87df7997795fbe599a0cff21f" }, "downloads": -1, "filename": "proxmoxer-0.2.5.tar.gz", "has_sig": false, "md5_digest": "b15edc4820338009ab4b19a7ed4783f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10866, "upload_time": "2017-02-12T19:17:08", "url": "https://files.pythonhosted.org/packages/42/29/06fe668c8891a87035b85c27d85b3101f03d46132c4ff029859a2fe318e8/proxmoxer-0.2.5.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "e02ecf53d557ebb015dd92966911600d", "sha256": "6439de89f4783e0cada3673677b4dbd1df97c00c2aa608dfa2e093509a330916" }, "downloads": -1, "filename": "proxmoxer-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e02ecf53d557ebb015dd92966911600d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11608, "upload_time": "2017-11-12T18:42:57", "url": "https://files.pythonhosted.org/packages/ac/7d/7042ed00f532428516fa537b18d9464a76e282acbad8fab1396f3581e583/proxmoxer-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b688b603ea286243066eec30e4f2caac", "sha256": "59e7cee392afdd928ada619a66d2633028f1c07161c62debab616fec378819b7" }, "downloads": -1, "filename": "proxmoxer-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b688b603ea286243066eec30e4f2caac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12525, "upload_time": "2017-12-02T14:58:11", "url": "https://files.pythonhosted.org/packages/a9/52/f6759422d3f83ae15f305d6387ad5f8fdac6895b638e611f78199188dd62/proxmoxer-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "3c31fcd261343e97a0b7ce65fac641a8", "sha256": "2a7b3718e684facc7d3678e6c8f91e1a1c4c78dc1eba8904239970b4c21aeb6e" }, "downloads": -1, "filename": "proxmoxer-1.0.2.tar.gz", "has_sig": false, "md5_digest": "3c31fcd261343e97a0b7ce65fac641a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15025, "upload_time": "2017-12-02T15:09:26", "url": "https://files.pythonhosted.org/packages/a2/66/e42223312d24ba9c41b3865a92dacc89515607a952385134fe62284f6399/proxmoxer-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "d819ffc0f7c05e93ea5f5e5152dd7f93", "sha256": "70c3d4cdfdf98dfec57ee0f7ab345da0c4086cb48d8661b5c17c7fbae1ddb090" }, "downloads": -1, "filename": "proxmoxer-1.0.3.tar.gz", "has_sig": false, "md5_digest": "d819ffc0f7c05e93ea5f5e5152dd7f93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15725, "upload_time": "2018-09-10T20:12:46", "url": "https://files.pythonhosted.org/packages/33/92/0319a36acc8eab45fe0ed20bb19b567ed8fa50b635f5ca2b2098fd531312/proxmoxer-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d819ffc0f7c05e93ea5f5e5152dd7f93", "sha256": "70c3d4cdfdf98dfec57ee0f7ab345da0c4086cb48d8661b5c17c7fbae1ddb090" }, "downloads": -1, "filename": "proxmoxer-1.0.3.tar.gz", "has_sig": false, "md5_digest": "d819ffc0f7c05e93ea5f5e5152dd7f93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15725, "upload_time": "2018-09-10T20:12:46", "url": "https://files.pythonhosted.org/packages/33/92/0319a36acc8eab45fe0ed20bb19b567ed8fa50b635f5ca2b2098fd531312/proxmoxer-1.0.3.tar.gz" } ] }