{
"info": {
"author": "Exosite",
"author_email": "danslimmon@exosite.com",
"bugtrack_url": null,
"classifiers": [],
"description": "Chube: Object-oriented bindings for the Linode API\n============================================================\n\nChube is a Python library providing an object-oriented interface to the\n[Linode API][linode-api], built on top of [linode-python][tjfontaines].\nIt's very easy to use. But don't take my word for it; check out some\n[examples](#examples)!\n\n\nInstallation\n------------------------------------------------------------\n\n**Step 1**: Install the PyPI package:\n\n```bash\n pip install chube\n```\n\n**Step 2** (optional): Give it your API key:\n\n```bash\n echo -e \"---\\napi_key: \" > ~/.chube\n```\n\nThat's it!\n\nTo find your API key, log in to the [Linode Manager][linode-mgr], click\non **My Profile**, and scroll down to the **API Key** section.\n\n\n\nUsage\n------------------------------------------------------------\n\nChube can be used either interactively or as a library.\n\n### Interactive use: chuber\n\nChube is distributed with an executable script called `chuber`, which\njust drops you into a Python interpreter with an API connection ready to\ngo. It requires that you've created the file `~/.chube` as described in\nthe [Installation](#installation) section.\n\n`chuber` should be in your `PATH`; look at the [Examples](#examples)\nsection to see how to use it.\n\n### Library\n\nChube can also be used as a library. It can either load your API key\nfrom `~/.chube` like so:\n\n```python\n from chube import *\n load_chube_config()\n```\n\nOr you can feed it an API key from within the script, like so:\n\n```python\n from chube import *\n chube_api_handler.api_key = \"RXIgbWFoIGdlcmQgQVBJIGtlcno\"\n```\n\n\n\nExamples\n------------------------------------------------------------\n\nIf you're like me, you learn best by reading examples. Here are some.\n\nThey don't run the whole gamut of what Chube can do, but they should\ngive you an idea of the conventions to expect.\n\n### List all Linodes whose names start with a given string\n\n```python\n for node in Linode.search(label_begins='foo-'):\n print node.label\n```\n\nTo list each Linode with its public IP address(es),\n\n```python\n for node in Linode.search(label_begins='foo-'):\n pub_ips = [ip for ip in node.ipaddresses if ip.is_public]\n print node.label + \"\\t\" + pub_ips\n```\n\n### Create a Linode\n\n```python\n p = Plan.find(label=\"Linode 1024\")\n d = Datacenter.find(location_begins=\"dallas\")\n node = Linode.create(plan=p, datacenter=d, payment_term=1)\n```\n\n### Set a node's label\n\n```python\n node = Linode.find(label='foo-host')\n node.label = \"bar-host\"\n node.save()\n```\n\n### Determine whether a node is running\n\n```python\n for node in Linode.search():\n if not node.is_up():\n print \"Node '%s' is NOT running\" % (node.label,)\n```\n\n### Add a disk to a Linode, based on a standard distribution\n\n```python\n node = Linode.find(label_begins='some-unique-linode')\n distro = Distribution.find(label=\"Debian 7\")\n disk = node.create_disk(\n distribution=distro,\n label='foo-disk',\n size=8000,\n root_pass=\"god\")\n```\n\n### Boot a Linode\n\nContinuing the last example,\n\n```python\n kern = Kernel.find(label_begins=\"latest 64 bit\")\n config = Config.create(\n linode=node,\n kernel=kern,\n label=\"foo-config\",\n disks=[disk, None, None, None, None, None, None, None, None])\n job = node.boot(config=config)\n```\n\n### Reboot a Linode in single-user mode\n\n```python\n config = node.config[0]\n # For `init=/bin/bash` you'd use \"binbash\" instead of \"single\"\n config.run_level = \"single\"\n config.save()\n node.reboot()\n```\n\n### Wait for a job to finish\n\nContinuing the last example,\n\n```python\n job.wait()\n```\n\n### Update a Stackscript\n\n```python\n stackscript = Stackscript.find(is_public=False, label=\"my-stack-script\")\n stackscript.script = \"#!/bin/bash\\n\\necho Hurr durr, I'm a stackscript\"\n stackscript.rev_note = \"Commit ID 123456789abcdef\"\n stackscript.save()\n```\n\n### Create a disk based on a Stackscript\n\n```python\n node = Linode.find(label=\"foo-host\")\n distro = Distribution.find(label=\"Debian 7\")\n stackscript = Stackscript.find(is_public=False, label=\"my-stack-script\")\n # This is where you put your UDF responses:\n stack_input = StackscriptInput(param_1=\"blah blah\", param_2=\"yadda yadda\")\n stack_input.param_3 = \"hippity hop\"\n\n disk = Disk.create(linode=node,\n stackscript=stackscript,\n ss_input=stack_input,\n distribution=distro,\n label='foo-disk',\n size=8000,\n root_pass=\"god\")\n```\n\n### List the DNS records in a domain\n\n```python\n domain = Domain.find(domain=\"example.com\")\n for record in domain.search_records():\n print \"%-20s => %s\" % (record.name, record.target)\n```\n\n### Add DNS records to a domain\n\n```python\n domain = Domain.find(domain=\"example.com\")\n domain.add_record(record_type=\"A\", name=\"localhost\", target=\"127.0.0.1\")\n domain.add_record(record_type=\"MX\", name=\"\", target=\"mail.example.com\",\n priority=10)\n```\n\n### Add an IP address to the AXFR transfer list\n\n```python\n domain = Domain.find(domain=\"example.com\")\n domain.axfr_ips.append(\"127.0.0.1\")\n```\n\n### Change a DNS record's TTL\n\n```python\n record.ttl_sec = 600\n record.save()\n```\n\n### Delete a DNS record\n\n```python\n domain = Domain.find(domain=\"example.com\")\n record = domain.find_record(name=\"mail\")\n record.destroy()\n```\n\n### Create a Nodebalancer and name it\n\n```python\n dallas = Datacenter.find(label_begins='dallas')\n balancer = Nodebalancer.create(datacenter=dallas, payment_term=1)\n balancer.label = \"my-kickass-nodebalancer\"\n balancer.save()\n```\n\n### Add a Config to a Nodebalancer\n\nContinuing the example above...\n\n```python\n balancer_config = balancer.add_config()\n balancer_config.protocol = \"http\"\n balancer_config.port = 80\n balancer_config.save()\n```\n\n### Add a Node to a Nodebalancer config\n\n```python\n http_config = balancer.find_config(protocol=\"http\", port=80)\n node = http_config.add_node(label=\"webserver-06\", address=\"192.168.255.255:80)\n```\n\n### Change a node's attributes\n\n```python\n node_to_change = balancer_config.find_node(label=\"webserver-14\")\n node_to_change.weight += 50\n node_to_change.save()\n```\n\n\n[linode-api]: https://www.linode.com/api/\n[tjfontaines]: https://github.com/tjfontaine/linode-python\n[linode-mgr]: https://manager.linode.com",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://pypi.python.org/pypi/chube/",
"keywords": null,
"license": "LICENSE.txt",
"maintainer": null,
"maintainer_email": null,
"name": "chube",
"package_url": "https://pypi.org/project/chube/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/chube/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://pypi.python.org/pypi/chube/"
},
"release_url": "https://pypi.org/project/chube/0.1.21/",
"requires_dist": null,
"requires_python": null,
"summary": "Object-oriented bindings for the Linode API",
"version": "0.1.21"
},
"last_serial": 1479226,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "0034581860339928cdf5f7ed70481e67",
"sha256": "e55806702ee08848dafd9922510dd56569ef19edfa0eea23a8ce7c8a461ce72e"
},
"downloads": -1,
"filename": "chube-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "0034581860339928cdf5f7ed70481e67",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14232,
"upload_time": "2013-06-14T20:12:07",
"url": "https://files.pythonhosted.org/packages/37/3d/9a67e6ef589c641163f7d8a3fd3076d7c280c0251900294488a85617df3b/chube-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "e930d815854691fd9383b1487ed8de3f",
"sha256": "a45a1b8b392cee5cab543ba1fa84d73bd42e26ffba6d16afe47909ef0752a3b2"
},
"downloads": -1,
"filename": "chube-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "e930d815854691fd9383b1487ed8de3f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14273,
"upload_time": "2013-06-14T20:16:32",
"url": "https://files.pythonhosted.org/packages/3d/01/647e89ef1b1d950b92b011229f42c9b8fb8297f99d92c68b17dc6dac354e/chube-0.1.1.tar.gz"
}
],
"0.1.10": [
{
"comment_text": "",
"digests": {
"md5": "6c384d3979dff07f23e298bd6d53af7a",
"sha256": "726a2d1748c86b8101a532689e85d30ac027b5c3051f96ea3237907cf9c262d9"
},
"downloads": -1,
"filename": "chube-0.1.10.tar.gz",
"has_sig": false,
"md5_digest": "6c384d3979dff07f23e298bd6d53af7a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14510,
"upload_time": "2013-06-19T22:04:11",
"url": "https://files.pythonhosted.org/packages/cb/af/ee309b0ce4acc582aa8c04fdd6069131c19ab0dd83403b7639094e5f2ae2/chube-0.1.10.tar.gz"
}
],
"0.1.11": [
{
"comment_text": "",
"digests": {
"md5": "258369f767aab703230924292bc6d559",
"sha256": "0e268fa7e243ab1a43474af2548fe4d388f075959678f22afb84e3a798370101"
},
"downloads": -1,
"filename": "chube-0.1.11.tar.gz",
"has_sig": false,
"md5_digest": "258369f767aab703230924292bc6d559",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14118,
"upload_time": "2013-06-20T20:08:50",
"url": "https://files.pythonhosted.org/packages/88/ab/67e21af2be3078d116db635a4b10d15baedabea1b568b588cf905984272a/chube-0.1.11.tar.gz"
}
],
"0.1.12": [
{
"comment_text": "",
"digests": {
"md5": "b5020b3da0da5a40f696cecb7ecda768",
"sha256": "cd7839ca47dfef9eae2836ef94a38ccaa617a3ad593beca744f4b0918f1ce518"
},
"downloads": -1,
"filename": "chube-0.1.12.tar.gz",
"has_sig": false,
"md5_digest": "b5020b3da0da5a40f696cecb7ecda768",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18184,
"upload_time": "2013-06-28T20:56:50",
"url": "https://files.pythonhosted.org/packages/68/a8/32d263949d407f4ec5c2bbe34867b62c4595acbcbf957081bbe84a0e948d/chube-0.1.12.tar.gz"
}
],
"0.1.13": [
{
"comment_text": "",
"digests": {
"md5": "3d365b7713087c4898c15e4f9356ecb6",
"sha256": "810e0f7d5cda1c7fa303f5995eba0725d147595f721ff7c13c4cd8dc65e6b7b8"
},
"downloads": -1,
"filename": "chube-0.1.13.tar.gz",
"has_sig": false,
"md5_digest": "3d365b7713087c4898c15e4f9356ecb6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18688,
"upload_time": "2013-07-01T21:49:14",
"url": "https://files.pythonhosted.org/packages/51/19/bca58ee545e1fab70bc36c9f7f65f4631ed52574eb45cbe2e43c16a1f653/chube-0.1.13.tar.gz"
}
],
"0.1.14": [
{
"comment_text": "",
"digests": {
"md5": "1fc079e7efaa39c9726201995246e96e",
"sha256": "652271b87e06e6678b5c3cb761d39aaf91ce58e9671b008d06739e9f8192f7a9"
},
"downloads": -1,
"filename": "chube-0.1.14.tar.gz",
"has_sig": false,
"md5_digest": "1fc079e7efaa39c9726201995246e96e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18696,
"upload_time": "2013-07-02T22:58:58",
"url": "https://files.pythonhosted.org/packages/1d/19/69fecbe63738480e5befa11d897d5bf91ed0121914da13d4809be5c1eb33/chube-0.1.14.tar.gz"
}
],
"0.1.15": [
{
"comment_text": "",
"digests": {
"md5": "67a01cea35fcf30f17f65b3aa14c823b",
"sha256": "ebca9bbad784f864f127f9ce0d7f5e34e66a05ff9d6476fc0957c6d17a59aa05"
},
"downloads": -1,
"filename": "chube-0.1.15.tar.gz",
"has_sig": false,
"md5_digest": "67a01cea35fcf30f17f65b3aa14c823b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20226,
"upload_time": "2013-07-19T22:18:53",
"url": "https://files.pythonhosted.org/packages/15/6f/0c3a64fcc82fe2fcfa11728013c0dd3211962cdad88d47228f1978c3da41/chube-0.1.15.tar.gz"
}
],
"0.1.16": [
{
"comment_text": "",
"digests": {
"md5": "745087b618a20fe59b32d29a3b06fda2",
"sha256": "d4612813497d7eae0311586875ecb7131a3b840dfd7e757c3e9868d31e470fce"
},
"downloads": -1,
"filename": "chube-0.1.16.tar.gz",
"has_sig": false,
"md5_digest": "745087b618a20fe59b32d29a3b06fda2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20308,
"upload_time": "2013-07-19T22:28:14",
"url": "https://files.pythonhosted.org/packages/29/87/d65acb3e70a1e18dedfe43a0a5631c639854b1bb6724c1cd27e87c1a0f87/chube-0.1.16.tar.gz"
}
],
"0.1.17": [
{
"comment_text": "",
"digests": {
"md5": "b463f5ea0f4a42543c81d221e0c019c5",
"sha256": "31129dbf434d509217fa3dc934c6af6a995359995ace45d03cd9793bec3c5508"
},
"downloads": -1,
"filename": "chube-0.1.17.tar.gz",
"has_sig": false,
"md5_digest": "b463f5ea0f4a42543c81d221e0c019c5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22484,
"upload_time": "2013-07-24T21:31:29",
"url": "https://files.pythonhosted.org/packages/a1/9e/0021f7e5985040de125048738cf8388694235f101a5961683396e436d206/chube-0.1.17.tar.gz"
}
],
"0.1.18": [
{
"comment_text": "",
"digests": {
"md5": "7e0a5069d58f44798371550d088f3345",
"sha256": "83747325546225063e4e6803243940334430ec11a99bd745b7279f42db599df6"
},
"downloads": -1,
"filename": "chube-0.1.18.tar.gz",
"has_sig": false,
"md5_digest": "7e0a5069d58f44798371550d088f3345",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22704,
"upload_time": "2013-08-09T21:36:59",
"url": "https://files.pythonhosted.org/packages/80/7c/b9c5e45854e3ea4e6086d5cce622d48f780b120f29a9d23a909a495d620e/chube-0.1.18.tar.gz"
}
],
"0.1.19": [
{
"comment_text": "",
"digests": {
"md5": "1e0d07a1bc5a9e305726a93785ad500c",
"sha256": "54206a5879e9e32d4ae9eb2632d2a796f2baf36a350bf52252249c0284052c2f"
},
"downloads": -1,
"filename": "chube-0.1.19.tar.gz",
"has_sig": false,
"md5_digest": "1e0d07a1bc5a9e305726a93785ad500c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 23009,
"upload_time": "2015-03-10T16:25:32",
"url": "https://files.pythonhosted.org/packages/96/eb/a125d508aea5eab4eceab82845df2db9024e6f0f0caedd8278be5fea1430/chube-0.1.19.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "a65b879e9826fcb0983f60285e6fd62e",
"sha256": "2b66e8134f37701c884dd591ac9033909d581c624565aba260a3cf6ebd5ea731"
},
"downloads": -1,
"filename": "chube-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "a65b879e9826fcb0983f60285e6fd62e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14291,
"upload_time": "2013-06-14T20:40:37",
"url": "https://files.pythonhosted.org/packages/47/89/6045268c21edb969b77d703089de2d5520772a4e676bc93d035c1d0c3311/chube-0.1.2.tar.gz"
}
],
"0.1.20": [
{
"comment_text": "",
"digests": {
"md5": "8a1f9952eb4cabefdec345747d8fc76b",
"sha256": "613b7b545422e05517e107b9879812b8e5d1e714501846e9df03e78b78b00faa"
},
"downloads": -1,
"filename": "chube-0.1.20.tar.gz",
"has_sig": false,
"md5_digest": "8a1f9952eb4cabefdec345747d8fc76b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 23028,
"upload_time": "2015-03-26T20:51:57",
"url": "https://files.pythonhosted.org/packages/59/7c/3107c8e129f773c4a9d503d1533b483ed521a01625d1d4f6668cda155638/chube-0.1.20.tar.gz"
}
],
"0.1.21": [
{
"comment_text": "",
"digests": {
"md5": "5ac3ae09f18db61f553a0f68c4d6592d",
"sha256": "135241e446d49bd722ee46fae29f446f2ed89c1fc60b967aa1f8d4daf1d55cdf"
},
"downloads": -1,
"filename": "chube-0.1.21.tar.gz",
"has_sig": false,
"md5_digest": "5ac3ae09f18db61f553a0f68c4d6592d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 23016,
"upload_time": "2015-03-26T20:57:39",
"url": "https://files.pythonhosted.org/packages/d8/00/7a3aa8a31820b18224e678ed4bd50b856f8db1336c4f7f629279caea2ec5/chube-0.1.21.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "85ea07c6d4424ed8fea9f1d3a5521ef3",
"sha256": "6bb86ce9b0fb45b38bed31694248d2f6480da5ecd06883934e7baa1ea04ccd0a"
},
"downloads": -1,
"filename": "chube-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "85ea07c6d4424ed8fea9f1d3a5521ef3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14280,
"upload_time": "2013-06-14T20:44:08",
"url": "https://files.pythonhosted.org/packages/a2/e8/8c8914b28015680930c7387a0ec538bb9a42d5b665b83a41fed40523dd1c/chube-0.1.3.tar.gz"
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "bd3f53790e08fea21f648115598a3a64",
"sha256": "bdd7e5d2605f68c21dc9ecf83bad3a7ddbd33164595e452eb704349cd7eb774c"
},
"downloads": -1,
"filename": "chube-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "bd3f53790e08fea21f648115598a3a64",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14327,
"upload_time": "2013-06-14T20:53:19",
"url": "https://files.pythonhosted.org/packages/b6/03/737c7bd989c6625a5bc0c6b50660c13a2d5b89132ebbb00fa88a3a5fc26f/chube-0.1.4.tar.gz"
}
],
"0.1.5": [
{
"comment_text": "",
"digests": {
"md5": "212aaa6c511d3ed10a2e562d2a220722",
"sha256": "13dff903d6cff471a02266038d82b7655254f20daac6d341578760ec4c89f381"
},
"downloads": -1,
"filename": "chube-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "212aaa6c511d3ed10a2e562d2a220722",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14091,
"upload_time": "2013-06-17T19:53:42",
"url": "https://files.pythonhosted.org/packages/8a/e3/3feec793b85feb6d0d92ef4a529bee6a9d554c5da5bfe4c70bd71e3f038d/chube-0.1.5.tar.gz"
}
],
"0.1.6": [
{
"comment_text": "",
"digests": {
"md5": "9d8f657c172ef40e2a12fd572db645ab",
"sha256": "ed0c80284875ad09bae79040ccab7cb44c7b387db016009b7cbb2a09e8ceb8f0"
},
"downloads": -1,
"filename": "chube-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "9d8f657c172ef40e2a12fd572db645ab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14093,
"upload_time": "2013-06-17T20:03:20",
"url": "https://files.pythonhosted.org/packages/90/be/6a72a887eae4517cc61f5e976de990e488b6656b1cc5fe1c54818a3ee3f5/chube-0.1.6.tar.gz"
}
],
"0.1.7": [
{
"comment_text": "",
"digests": {
"md5": "82a921a13f3bc9c8b0fac35851878277",
"sha256": "6d6850a0aa641229d6477a860ad4a489e0f7dd1782fa18774355daa4a5008b04"
},
"downloads": -1,
"filename": "chube-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "82a921a13f3bc9c8b0fac35851878277",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14104,
"upload_time": "2013-06-17T20:08:25",
"url": "https://files.pythonhosted.org/packages/8a/1d/3f55ef1a9aa40305fe27bdcbdf12992bc50cb0433ba1282b835dac4d3237/chube-0.1.7.tar.gz"
}
],
"0.1.8": [
{
"comment_text": "",
"digests": {
"md5": "cb6bab1c66cd8b93cffc478b29e66c51",
"sha256": "3c8bec8868a56df52fa06f06018e9654b2f68ffc192a6d2d255860dcf7ad5d9a"
},
"downloads": -1,
"filename": "chube-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "cb6bab1c66cd8b93cffc478b29e66c51",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14429,
"upload_time": "2013-06-18T22:57:46",
"url": "https://files.pythonhosted.org/packages/cc/23/8d4f42f53e7dba439634c21d9d18676eefd7bc9caa0f3968cf5e79cc7a2e/chube-0.1.8.tar.gz"
}
],
"0.1.9": [
{
"comment_text": "",
"digests": {
"md5": "c20f853ebdba8015aeee2bccda76047b",
"sha256": "8ecca4954797d2244cfad2586043a4b27cea93b181cde8640f02e4838ba40a0d"
},
"downloads": -1,
"filename": "chube-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "c20f853ebdba8015aeee2bccda76047b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14440,
"upload_time": "2013-06-19T21:33:19",
"url": "https://files.pythonhosted.org/packages/fe/8e/b19756833dba14dd1c7dc9586104f7c656f7e04eeb86fe63d926a2815fe5/chube-0.1.9.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "5ac3ae09f18db61f553a0f68c4d6592d",
"sha256": "135241e446d49bd722ee46fae29f446f2ed89c1fc60b967aa1f8d4daf1d55cdf"
},
"downloads": -1,
"filename": "chube-0.1.21.tar.gz",
"has_sig": false,
"md5_digest": "5ac3ae09f18db61f553a0f68c4d6592d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 23016,
"upload_time": "2015-03-26T20:57:39",
"url": "https://files.pythonhosted.org/packages/d8/00/7a3aa8a31820b18224e678ed4bd50b856f8db1336c4f7f629279caea2ec5/chube-0.1.21.tar.gz"
}
]
}