{ "info": { "author": "Joe Cross", "author_email": "joe.mcross@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: Communications :: Chat", "Topic :: Communications :: Chat :: Internet Relay Chat", "Topic :: Software Development :: Libraries" ], "description": ".. image:: https://readthedocs.org/projects/bottom-docs/badge?style=flat-square\n :target: http://bottom-docs.readthedocs.org/\n.. image:: https://img.shields.io/travis/numberoverzero/bottom/master.svg?style=flat-square\n :target: https://travis-ci.org/numberoverzero/bottom\n.. image:: https://img.shields.io/codecov/c/github/numberoverzero/bottom/master.svg?style=flat-square\n :target: https://codecov.io/gh/numberoverzero/bottom/branch/master\n.. image:: https://img.shields.io/pypi/v/bottom.svg?style=flat-square\n :target: https://pypi.python.org/pypi/bottom\n.. image:: https://img.shields.io/github/issues-raw/numberoverzero/bottom.svg?style=flat-square\n :target: https://github.com/numberoverzero/bottom/issues\n.. image:: https://img.shields.io/pypi/l/bottom.svg?style=flat-square\n :target: https://github.com/numberoverzero/bottom/blob/master/LICENSE\n\nasyncio-based rfc2812-compliant IRC Client (3.5+)\n\nbottom isn't a kitchen-sink library. Instead, it provides a consistent API\nwith a small surface area, tuned for performance and ease of extension.\nSimilar to the routing style of bottle.py, hooking into events is one line.\n\nInstallation\n============\n::\n\n pip install bottom\n\nGetting Started\n===============\n\n(the full documentation is available here: http://bottom-docs.readthedocs.io/)\n\nCreate an instance:\n\n.. code-block:: python\n\n import asyncio\n import bottom\n\n host = 'chat.freenode.net'\n port = 6697\n ssl = True\n\n NICK = \"bottom-bot\"\n CHANNEL = \"#bottom-dev\"\n\n bot = bottom.Client(host=host, port=port, ssl=ssl)\n\n\nSend nick/user/join when connection is established:\n\n.. code-block:: python\n\n @bot.on('CLIENT_CONNECT')\n async def connect(**kwargs):\n bot.send('NICK', nick=NICK)\n bot.send('USER', user=NICK,\n realname='https://github.com/numberoverzero/bottom')\n\n # Don't try to join channels until the server has\n # sent the MOTD, or signaled that there's no MOTD.\n done, pending = await asyncio.wait(\n [bot.wait(\"RPL_ENDOFMOTD\"),\n bot.wait(\"ERR_NOMOTD\")],\n loop=bot.loop,\n return_when=asyncio.FIRST_COMPLETED\n )\n\n # Cancel whichever waiter's event didn't come in.\n for future in pending:\n future.cancel()\n\n bot.send('JOIN', channel=CHANNEL)\n\n\nRespond to ping:\n\n.. code-block:: python\n\n @bot.on('PING')\n def keepalive(message, **kwargs):\n bot.send('PONG', message=message)\n\n\nEcho messages (channel and direct):\n\n.. code-block:: python\n\n @bot.on('PRIVMSG')\n def message(nick, target, message, **kwargs):\n \"\"\" Echo all messages \"\"\"\n # don't echo self\n if nick == NICK: return\n # respond directly\n if target == NICK: target = nick\n bot.send(\"PRIVMSG\", target=target, message=message)\n\n\nConnect and run the bot forever:\n\n.. code-block:: python\n\n bot.loop.create_task(bot.connect())\n bot.loop.run_forever()\n\nAPI\n===\n\nThe full API consists of 1 class, with 8 methods:\n\n.. code-block:: python\n\n # manage connections\n\n async Client.connect()\n async Client.disconnect()\n\n # send, receive, and wait for rfc-2812 messages\n\n Client.send(command, **kwargs)\n @Client.on(event)\n Client.trigger(event, **kwargs)\n async Client.wait(event)\n\n # send and receive anything newline-terminated,\n # provided for eg. IRCv3 extensions\n\n Client.send_raw(message)\n Client.handle_raw(message)\n\n\nContributors\n============\n\n* `fahhem `_\n* `thebigmunch `_\n* `tilal6991 `_\n* `AMorporkian `_\n* `nedbat `_\n* `Coinkite Inc `_\n* `Johan Lorenzo `_\n* `Dominik Miedzi\u0144ski `_\n* `Yay295 `_\n* `Elijah Lazkani `_\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/numberoverzero/bottom", "keywords": "irc bot asyncio client", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bottom", "package_url": "https://pypi.org/project/bottom/", "platform": "any", "project_url": "https://pypi.org/project/bottom/", "project_urls": { "Homepage": "https://github.com/numberoverzero/bottom" }, "release_url": "https://pypi.org/project/bottom/2.1.3/", "requires_dist": null, "requires_python": "", "summary": "asyncio-based rfc2812-compliant IRC Client", "version": "2.1.3" }, "last_serial": 3314545, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "3580679d8f70ec10ad38adc299fbfc8d", "sha256": "99bf0b77674ef8fdd66c2e0f72c4e025f90175c00d6700cb20bc2a864f57e601" }, "downloads": -1, "filename": "bottom-0.9.0.tar.gz", "has_sig": false, "md5_digest": "3580679d8f70ec10ad38adc299fbfc8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8895, "upload_time": "2014-10-13T07:02:02", "url": "https://files.pythonhosted.org/packages/93/25/cbd255f8083ff039bd8402e73e6420e1baa6343dfe32cf8010c02f5185fe/bottom-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "22c2ea3f537532b6b1716b952a114408", "sha256": "bdf6c6373323f027ff84299cb609c28f68174439409a1e88000fa573386d6ea9" }, "downloads": -1, "filename": "bottom-0.9.1.tar.gz", "has_sig": false, "md5_digest": "22c2ea3f537532b6b1716b952a114408", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15297, "upload_time": "2014-10-19T19:23:39", "url": "https://files.pythonhosted.org/packages/10/c6/47a783043459ee8d91c971a4cf43d96dfafec1af414a5280cdd3b7c4063e/bottom-0.9.1.tar.gz" } ], "0.9.11": [ { "comment_text": "", "digests": { "md5": "3995f2bdf98ace31c5bc37b492049333", "sha256": "41d81e6cb52084ff8ddd6c8d1ca9da8e9bc26808a6fc69f93ee35ebbadd3fc64" }, "downloads": -1, "filename": "bottom-0.9.11.tar.gz", "has_sig": false, "md5_digest": "3995f2bdf98ace31c5bc37b492049333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19094, "upload_time": "2015-02-10T06:28:38", "url": "https://files.pythonhosted.org/packages/9a/e1/580f88c15baa72256f362548edbfe78f932ecbe1c7b99c39388c784685b6/bottom-0.9.11.tar.gz" } ], "0.9.12": [ { "comment_text": "", "digests": { "md5": "39d9a35e020d69c087ac6dfa6cdf3214", "sha256": "1b10b088f60be13e811467dddef61e270f1a277f94cc955d317f96d79662d497" }, "downloads": -1, "filename": "bottom-0.9.12.tar.gz", "has_sig": false, "md5_digest": "39d9a35e020d69c087ac6dfa6cdf3214", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19139, "upload_time": "2015-02-11T10:40:22", "url": "https://files.pythonhosted.org/packages/2e/70/3ae8f7f65b9a28e7a86807cf10b6b485847e014e6fb392e310440c029aa4/bottom-0.9.12.tar.gz" } ], "0.9.13": [ { "comment_text": "", "digests": { "md5": "8080e980a05e717a2cfd2e4fe69f8b9a", "sha256": "aa817d6c50ff2f8a9d2330076b6710df06cb768cb1e5fa0341cb74b4bb293f33" }, "downloads": -1, "filename": "bottom-0.9.13.tar.gz", "has_sig": false, "md5_digest": "8080e980a05e717a2cfd2e4fe69f8b9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19217, "upload_time": "2015-02-12T03:04:34", "url": "https://files.pythonhosted.org/packages/49/26/01b6a1d8e94b2fe9a1f07156a982f19216015fc08131edcd2eb75c823577/bottom-0.9.13.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "68d769de6a1bd9b6c1647b8fc18cb5b1", "sha256": "7b8a2a4b50cf0fea9c43d8b83a7cb2e653513df3e9dca87291e37d7f27f830fa" }, "downloads": -1, "filename": "bottom-0.9.3.tar.gz", "has_sig": false, "md5_digest": "68d769de6a1bd9b6c1647b8fc18cb5b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15554, "upload_time": "2014-10-26T18:23:54", "url": "https://files.pythonhosted.org/packages/83/c0/b389505990792328f62ba0a9088544b4e07f3f801b0c212ebc9bdafb3875/bottom-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "1ea0a428723e647e0902a0819d3d14ea", "sha256": "258b846683173b4c9f98fb767d41c0e7e0a87bbed6b1eacf8d7d1a9c0642699c" }, "downloads": -1, "filename": "bottom-0.9.4.tar.gz", "has_sig": false, "md5_digest": "1ea0a428723e647e0902a0819d3d14ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15686, "upload_time": "2014-10-29T06:54:44", "url": "https://files.pythonhosted.org/packages/61/41/93145daa400730cf8ee4dcead88cb875dcbf99cbbacccecebb435ec9a299/bottom-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "fd4dfd9f284f009465326ab5492831e6", "sha256": "12ebfe14605ae57d589280ea117703c4cb0662017d230ed4ed334bbcc5fd8e7a" }, "downloads": -1, "filename": "bottom-0.9.5.tar.gz", "has_sig": false, "md5_digest": "fd4dfd9f284f009465326ab5492831e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17273, "upload_time": "2014-10-30T04:20:52", "url": "https://files.pythonhosted.org/packages/f5/e3/95f624a86ddae5084a12bde014c3ec3636c4ce369f00e86170b02850273c/bottom-0.9.5.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "a0a690c6af3d7d683ee1036ee13a2c84", "sha256": "2e8001e95167f08c8ece092fc7326a68988fe6729da372fd4a02d4f73025622f" }, "downloads": -1, "filename": "bottom-0.9.8.tar.gz", "has_sig": false, "md5_digest": "a0a690c6af3d7d683ee1036ee13a2c84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18288, "upload_time": "2015-01-13T04:43:14", "url": "https://files.pythonhosted.org/packages/30/4c/18cbe363fc0a69f87bae0e69a4d52178af3f016ff07d3c41b3dd290d9df3/bottom-0.9.8.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "40255156f08552c10f45040d7f6d5ccd", "sha256": "bf96ecd6c0323c001811a3d4a0dd5f5a64f961b19f551cc246ad258e37ee6143" }, "downloads": -1, "filename": "bottom-0.9.9.tar.gz", "has_sig": false, "md5_digest": "40255156f08552c10f45040d7f6d5ccd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18267, "upload_time": "2015-01-14T04:02:32", "url": "https://files.pythonhosted.org/packages/9a/f7/9fe38c1a77bdbfcbb24e3b24bef58d283cd1e15b39ab207fac5118cf4589/bottom-0.9.9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "57484efe6301b930d912e79a53adcb70", "sha256": "7d81c581a4ac0238ba9444ea2537fcb028d73c47ce4a63b5f97265b643dff758" }, "downloads": -1, "filename": "bottom-1.0.0.tar.gz", "has_sig": false, "md5_digest": "57484efe6301b930d912e79a53adcb70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21424, "upload_time": "2016-02-01T08:12:14", "url": "https://files.pythonhosted.org/packages/72/1a/3010946c383aa093c9a7c38a77d82b400dd4fa8641da687cf22a2fa9723c/bottom-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "cbe20ee8f8dab08470b4bdfa6cb4a8bc", "sha256": "8d8d445d8bed2ed958bca01c2a94ca44b62064477edc24cefbedc090d869d376" }, "downloads": -1, "filename": "bottom-1.0.1.tar.gz", "has_sig": false, "md5_digest": "cbe20ee8f8dab08470b4bdfa6cb4a8bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21454, "upload_time": "2016-03-26T20:51:43", "url": "https://files.pythonhosted.org/packages/e8/f2/d95c3093712a3a2965c7700bbac1dcbb7503a885275810d465e6bf205165/bottom-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ac1313c18909b9f4c4d11d941ecc389b", "sha256": "7fafb72fc1646ce4f975c7618b00e0a8c91d811e8ef0024262b94b3d920208ca" }, "downloads": -1, "filename": "bottom-1.0.2.tar.gz", "has_sig": false, "md5_digest": "ac1313c18909b9f4c4d11d941ecc389b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21800, "upload_time": "2016-06-16T06:05:39", "url": "https://files.pythonhosted.org/packages/c7/ca/4cee0e94bcd8784224495e1db6083b65cb45fac3438cebbe863afc0918a9/bottom-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "0f6e421d2341942056ad517e9a073fb1", "sha256": "58dc69cdfd084a0d223fe2af8e04502c36a4f5f87a3d17ab50cb454a1e10e324" }, "downloads": -1, "filename": "bottom-1.0.3.tar.gz", "has_sig": false, "md5_digest": "0f6e421d2341942056ad517e9a073fb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21831, "upload_time": "2016-08-04T20:06:27", "url": "https://files.pythonhosted.org/packages/46/ce/63d91cb4cfc05cd632107023fac1b41d34466bf823354c7a0885cb47a8aa/bottom-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "02b8e9894e9e5d38bb5bc0fe87b2edbc", "sha256": "1b40a289c1ecaf04a29dbe5b86720eb07c9d3b5a8f11dd69e24f9f77a5d233af" }, "downloads": -1, "filename": "bottom-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "02b8e9894e9e5d38bb5bc0fe87b2edbc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14931, "upload_time": "2017-04-08T09:49:52", "url": "https://files.pythonhosted.org/packages/b1/55/37943706280a35896768d3cd9510a5d62775a308e0951c4325c1d063305a/bottom-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d475da1cb510504de43261af009d2a7", "sha256": "6ad30410cda21533e33e62e67829060c36b6125e7a0d3c74000f6c32f72225ba" }, "downloads": -1, "filename": "bottom-1.0.4.tar.gz", "has_sig": false, "md5_digest": "0d475da1cb510504de43261af009d2a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13110, "upload_time": "2016-10-09T02:52:49", "url": "https://files.pythonhosted.org/packages/82/56/fa6600617ff27046dc8cd4bd2c997d6242252166b61ae2677306e6d1ac32/bottom-1.0.4.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "84063771b2e627302dbf38bf8aa5c07d", "sha256": "8bd585fd0ca121049c7bafdab6f67c81d195bc79d2fb0f8f64da2652c4e79fee" }, "downloads": -1, "filename": "bottom-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "84063771b2e627302dbf38bf8aa5c07d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15100, "upload_time": "2017-02-28T18:34:22", "url": "https://files.pythonhosted.org/packages/97/95/e27ea29efbcd381627ae81732581f437009ac9f343c85ca53b507e07e5fe/bottom-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8aad4def5b91047207bb49a298d95cc0", "sha256": "f7a78ea7f2c1a80051f565f693f8d229b551265c211e892ff7c996a3a98e9e35" }, "downloads": -1, "filename": "bottom-1.1.0.tar.gz", "has_sig": false, "md5_digest": "8aad4def5b91047207bb49a298d95cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13278, "upload_time": "2017-02-28T18:34:12", "url": "https://files.pythonhosted.org/packages/bd/ff/2cbf01ec25285855ce965283c29d7d1e6f398cc162479045617b27741252/bottom-1.1.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "c484d4e11cd637237796f0ae047096c8", "sha256": "593882a78275e957fdc6be80d9ddaa49372566e7f316430307802272c27eca1d" }, "downloads": -1, "filename": "bottom-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c484d4e11cd637237796f0ae047096c8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14370, "upload_time": "2017-04-08T09:50:29", "url": "https://files.pythonhosted.org/packages/ea/8d/d39d4551f753e10c6c4bab7a12f495b738e9f57a8f8032ef4f0dfc43bb7d/bottom-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b647198d0f97040a43f586fd7e77a59f", "sha256": "8a1bb08981aa1dfb088462cd10251a9148a81cc04c9ef0dce0c86378c0fa21f0" }, "downloads": -1, "filename": "bottom-2.0.0.tar.gz", "has_sig": false, "md5_digest": "b647198d0f97040a43f586fd7e77a59f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12973, "upload_time": "2017-04-08T09:50:30", "url": "https://files.pythonhosted.org/packages/87/d7/7b3d2f90ea11cf9192d09acb02f022b6996c589d13e8d61466b61fef44d9/bottom-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "b2100dbdfb96cfc93e1ce5c116814067", "sha256": "243c22a0aa24b9967f186518f7a5d51a633dac3ba2e18ba30b045b2669bf8159" }, "downloads": -1, "filename": "bottom-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b2100dbdfb96cfc93e1ce5c116814067", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14366, "upload_time": "2017-04-14T06:48:25", "url": "https://files.pythonhosted.org/packages/b2/16/a2bc16acc764f77f7a62972ed62787ce345d6587a758f35f7df90807c729/bottom-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "247b9b77d6b4d40eb78c2c18774006c4", "sha256": "fb1d8ed7c834d255c8e30f8ab77d1b0f4fccbeb3de2d057c10646625cd213d5d" }, "downloads": -1, "filename": "bottom-2.0.1.tar.gz", "has_sig": false, "md5_digest": "247b9b77d6b4d40eb78c2c18774006c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12973, "upload_time": "2017-04-14T06:48:27", "url": "https://files.pythonhosted.org/packages/ee/e2/3b7dc847fa0e5e2f70abcadcd5efe3500b44995d271c782a2cc3c29a0db0/bottom-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "3786b921ad0fd1f33ac6579369b1fd88", "sha256": "fdfae027694c2a7a15aa20333ffc02208b181b4dd3feb946a2c92fb25e252fdb" }, "downloads": -1, "filename": "bottom-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3786b921ad0fd1f33ac6579369b1fd88", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14895, "upload_time": "2017-06-03T11:32:45", "url": "https://files.pythonhosted.org/packages/6b/80/81ec9104fb6e20541aa03163b6fbb5ec8de1d426eaf14de52b8e3a644152/bottom-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fcbf4aa58c3975a52cc43108eeed0f29", "sha256": "c190b7a980cb3fba40fc48a6e3813230a872fb4540e6651fe9703065efdfe3ea" }, "downloads": -1, "filename": "bottom-2.1.0.tar.gz", "has_sig": false, "md5_digest": "fcbf4aa58c3975a52cc43108eeed0f29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13455, "upload_time": "2017-06-03T11:32:47", "url": "https://files.pythonhosted.org/packages/4d/0c/90e2c241c6571ec9d5f355c968e0c743751596f24db2b5e4ef1397e93b9c/bottom-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "0251db9435097a40224f7b341096f520", "sha256": "8bcb5b855b7c84f40af50cabba8bebd9b6ca1529f74f51e2e301c3e66123f27b" }, "downloads": -1, "filename": "bottom-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0251db9435097a40224f7b341096f520", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14897, "upload_time": "2017-09-18T04:24:41", "url": "https://files.pythonhosted.org/packages/0f/cd/48d4e226bfabfdd2587024107b665764709d71f732ee8b1e53424b6c22bc/bottom-2.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33bf022c3f3a4a55a62d765172f54542", "sha256": "172218efb467d6f7291715bb77b819e0c3a36b5ee68f7f81cdadf3a7f3d37dd9" }, "downloads": -1, "filename": "bottom-2.1.1.tar.gz", "has_sig": false, "md5_digest": "33bf022c3f3a4a55a62d765172f54542", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13497, "upload_time": "2017-09-18T04:24:42", "url": "https://files.pythonhosted.org/packages/b9/82/bfc7b0459bd81272c9edf14bd6f6e043a335aedb165db918bda5c51382b8/bottom-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "919e3395b3a89f7ec2d47e2d0c5172e9", "sha256": "e734bfd6a5711565754da31e9f2615ebcdc41d52db9c27f0ebf0bb0cd24dba3c" }, "downloads": -1, "filename": "bottom-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "919e3395b3a89f7ec2d47e2d0c5172e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15037, "upload_time": "2017-10-07T03:01:51", "url": "https://files.pythonhosted.org/packages/54/3f/22181e17c57aa89c05d48d57a265b0d21f640d4b9a4058c03ebc8ca6b09b/bottom-2.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3dfa17a4ba3dcea34c37b665a265a236", "sha256": "f7ea72da7c5da3cfe4065ceb12cfa84705ac6a7ada7f59c228dcf5e82eb0dfca" }, "downloads": -1, "filename": "bottom-2.1.2.tar.gz", "has_sig": false, "md5_digest": "3dfa17a4ba3dcea34c37b665a265a236", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13627, "upload_time": "2017-10-07T03:01:54", "url": "https://files.pythonhosted.org/packages/26/53/f521e39b2e6110ff4b3fdd94bfec02c7a7d056b29b43f0b307b5af782da8/bottom-2.1.2.tar.gz" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "416b4576b5a92be7bff67cba315ec8fd", "sha256": "78fbc51520d9c7c8c715db1603cfd9a3ce24b0a350b5f7b1a17ce7364100e3b7" }, "downloads": -1, "filename": "bottom-2.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "416b4576b5a92be7bff67cba315ec8fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15280, "upload_time": "2017-11-08T01:26:56", "url": "https://files.pythonhosted.org/packages/ff/cc/a2ed079e3ba09597f55b861808fcf25ce0a9e123cd4d252529928168cdb9/bottom-2.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9f8a729351f493bad21a30bf39d76d8", "sha256": "0e9624110f28530581b98a9c231a9cafc61513addfa40f19b7e9de1abf7546c7" }, "downloads": -1, "filename": "bottom-2.1.3.tar.gz", "has_sig": false, "md5_digest": "f9f8a729351f493bad21a30bf39d76d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13892, "upload_time": "2017-11-08T01:26:58", "url": "https://files.pythonhosted.org/packages/fe/1e/f78f35f6f24b1bff9455bca83548a02739f081e33710f74a134dfe7f6859/bottom-2.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "416b4576b5a92be7bff67cba315ec8fd", "sha256": "78fbc51520d9c7c8c715db1603cfd9a3ce24b0a350b5f7b1a17ce7364100e3b7" }, "downloads": -1, "filename": "bottom-2.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "416b4576b5a92be7bff67cba315ec8fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15280, "upload_time": "2017-11-08T01:26:56", "url": "https://files.pythonhosted.org/packages/ff/cc/a2ed079e3ba09597f55b861808fcf25ce0a9e123cd4d252529928168cdb9/bottom-2.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9f8a729351f493bad21a30bf39d76d8", "sha256": "0e9624110f28530581b98a9c231a9cafc61513addfa40f19b7e9de1abf7546c7" }, "downloads": -1, "filename": "bottom-2.1.3.tar.gz", "has_sig": false, "md5_digest": "f9f8a729351f493bad21a30bf39d76d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13892, "upload_time": "2017-11-08T01:26:58", "url": "https://files.pythonhosted.org/packages/fe/1e/f78f35f6f24b1bff9455bca83548a02739f081e33710f74a134dfe7f6859/bottom-2.1.3.tar.gz" } ] }