{ "info": { "author": "Andy Gayton", "author_email": "andy@thecablelounge.com", "bugtrack_url": null, "classifiers": [], "description": "|Vanilla| Welcome to Vanilla!\n=============================\n\n*If Go and ZeroMQ had a baby, and that baby grew up and started dating PyPy,\nand they had a baby, it might look like Vanilla.*\n\nOverview\n--------\n\nVanilla allows you to build concurrent software in Python. Vanilla programs are\nstructured around independent coroutines (greenlets) which communicate with\neach other via Pipes. Pipes are similar to channels in Go programming.\n\nThere's no callback crazyness and no monkey patching. Vanilla strives to be as\nexplict and straightforward as possible.\n\nDocumentation\n-------------\n\n`Read the Docs`_\n\n\nHere's how it looks:\n--------------------\n\nYou spawn coroutines:\n\n.. code:: python\n\n h = vanilla.Hub()\n\n def beat(message):\n while True:\n print(message)\n h.sleep(1000)\n\n h.spawn(beat, 'Tick')\n h.spawn_later(500, beat, 'Tock')\n # Tick / Tock / Tick / Tock\n\nCoroutines communicate via Pipes:\n\n.. code:: python\n\n h = vanilla.Hub()\n sender, recver = h.pipe()\n h.spawn(sender.send, 'Hello World')\n recver.recv()\n # 'Hello World'\n\nPipe-fu; inspired by reactive functional patterns, Pipes can be chained:\n\n.. code:: python\n\n h = vanilla.Hub()\n p = h.pipe().map(lambda x: x*2)\n h.spawn(p.send, 4)\n p.recv()\n # 8\n\nIn Vanilla, everything is a Pipe. Here's how TCP looks:\n\n.. code:: python\n\n h = vanilla.Hub()\n\n server = h.tcp.listen(port=9000)\n # server is a Recver which dispenses new TCP connections\n\n conn = server.recv()\n # conn is a Pipe you can recv and send on\n\n message = conn.recv()\n conn.send(\"Echo: \" + message)\n\nInstallation\n------------\n\nVanilla works with Python 2.6 - 2.9 and PyPy.\n\n::\n\n pip install vanilla\n\nStatus\n------\n\n|Build Status|\\ |Coverage Status|\n\n.. _Read the Docs: http://vanillapy.readthedocs.org/\n.. |Vanilla| image:: https://raw.githubusercontent.com/cablehead/vanilla/master/docs/_static/logo2.png\n.. |Build Status| image:: https://img.shields.io/travis/cablehead/vanilla.svg?style=flat-square\n :target: https://travis-ci.org/cablehead/vanilla\n.. |Coverage Status| image:: https://img.shields.io/codecov/c/github/cablehead/vanilla.svg?style=flat-square\n :target: https://codecov.io/github/cablehead/vanilla?branch=master", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cablehead/vanilla", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "vanilla", "package_url": "https://pypi.org/project/vanilla/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/vanilla/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/cablehead/vanilla" }, "release_url": "https://pypi.org/project/vanilla/0.1.16/", "requires_dist": null, "requires_python": null, "summary": "Straightforward concurrency for Python http://vanillapy.readthedocs.org/", "version": "0.1.16" }, "last_serial": 1845976, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ecc1654b8fee916deac8f968f7ec82e9", "sha256": "47557103203447cbe27472cbe87c8d24e7bf06500b132b0abcdc057f20fcc99e" }, "downloads": -1, "filename": "vanilla-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ecc1654b8fee916deac8f968f7ec82e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19738, "upload_time": "2014-10-03T23:45:01", "url": "https://files.pythonhosted.org/packages/ac/1a/4f987f9618dd817ae07b2119ae3a03960f9803979827b53d3288c7835075/vanilla-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4bba0bfaafe94a2a83d06ebfca951416", "sha256": "4dab9828dc4ddc183e5dd2abe1a68fa213c08f48a511fd948b71a75144ebc402" }, "downloads": -1, "filename": "vanilla-0.0.2.tar.gz", "has_sig": false, "md5_digest": "4bba0bfaafe94a2a83d06ebfca951416", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19856, "upload_time": "2014-10-06T21:08:28", "url": "https://files.pythonhosted.org/packages/d1/db/3e47ace1f3c66159446775227b537d6c44771df27115f004c8ac3b8d638e/vanilla-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "533bee61b5adc20fad7e9658c89b2de8", "sha256": "8a2dd1da1f90941de99ea461baca511d3cd92f5d573736eba1f566a438cc2eef" }, "downloads": -1, "filename": "vanilla-0.0.3.tar.gz", "has_sig": false, "md5_digest": "533bee61b5adc20fad7e9658c89b2de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19891, "upload_time": "2014-10-16T22:14:30", "url": "https://files.pythonhosted.org/packages/af/6a/a40952e30642a1f9599853155a18f622e907fc9761b25c433312d8adfb01/vanilla-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "0bc6e62bd83ab81bdacdd7132e4966af", "sha256": "2335123de8d530b13d761978b330684e7905a8682006da01c903f19dbf6dae11" }, "downloads": -1, "filename": "vanilla-0.0.4.tar.gz", "has_sig": false, "md5_digest": "0bc6e62bd83ab81bdacdd7132e4966af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19983, "upload_time": "2014-10-22T04:43:17", "url": "https://files.pythonhosted.org/packages/91/01/67c4c1c2f55b0399825f488f15356190b35578190082e28c3961547dbb2d/vanilla-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "b5217bce8bb082c5151c4b488e436f82", "sha256": "b1547f18340dd1a112bc2fe900119bdfe6a149a2e86deef60a4d56d9fa667822" }, "downloads": -1, "filename": "vanilla-0.0.5.tar.gz", "has_sig": false, "md5_digest": "b5217bce8bb082c5151c4b488e436f82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18614, "upload_time": "2014-10-31T19:04:19", "url": "https://files.pythonhosted.org/packages/64/e5/bb61fa2c09987c9f512495f02e606a46d4dbef3bc9969ef59fdd68c01026/vanilla-0.0.5.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "a86ab5334b5dfc9a2da7f0d830cd7401", "sha256": "b36015756f0e5bf4af3d6ec67702937e6e85ed24677dc8e42b37b0bd9321c01d" }, "downloads": -1, "filename": "vanilla-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a86ab5334b5dfc9a2da7f0d830cd7401", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19345, "upload_time": "2015-01-03T07:53:30", "url": "https://files.pythonhosted.org/packages/7f/54/dc8d8fad2036f1a595dda92a0293c0cdaba8636a4720053927198f96a8da/vanilla-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c6e7d95d8f864857291a86dcfe8cb418", "sha256": "1deeb8eac4c8fac26ac940cce20fa120b5183d2b16112b0d799069975c9135c6" }, "downloads": -1, "filename": "vanilla-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c6e7d95d8f864857291a86dcfe8cb418", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19404, "upload_time": "2015-01-12T02:35:55", "url": "https://files.pythonhosted.org/packages/4f/60/05cf42fef0b6fa7f666b5dbda43f10432d6ffc41b0dcf5450ff889e1cc84/vanilla-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "77f8e8453df31468498f7150ffc55a0f", "sha256": "0ca9079422cd23d3f3e17d7eb99e2b44b7a662f7882bf989ce9508d11b2bc1a2" }, "downloads": -1, "filename": "vanilla-0.1.10.tar.gz", "has_sig": false, "md5_digest": "77f8e8453df31468498f7150ffc55a0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21801, "upload_time": "2015-05-06T00:25:47", "url": "https://files.pythonhosted.org/packages/17/ec/23a23ac825bb99076aa62368da457b17f1c3903fbcc4fe3123ca5c9d7571/vanilla-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "3b8f66b115f7fb1451cbf063643e3554", "sha256": "c4f2afde80a26ddc9892db68f9de1c1d69437a428af58f9244add32e852cf286" }, "downloads": -1, "filename": "vanilla-0.1.11.tar.gz", "has_sig": false, "md5_digest": "3b8f66b115f7fb1451cbf063643e3554", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21812, "upload_time": "2015-05-06T23:07:47", "url": "https://files.pythonhosted.org/packages/03/38/c77d7826b72fcff952d56937155df8937c0122f843870e381ea5d9359d2d/vanilla-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "2bc7ca17da480e22669ce93919a98c4f", "sha256": "20889e2bd57e594903252421943d1b9b19ee0ca8197ef5eec66fe6a642da3b8a" }, "downloads": -1, "filename": "vanilla-0.1.12.tar.gz", "has_sig": false, "md5_digest": "2bc7ca17da480e22669ce93919a98c4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21898, "upload_time": "2015-06-21T01:43:38", "url": "https://files.pythonhosted.org/packages/d6/bf/b2810663438d3ca65990b4b78aca8c05bb0ebe39d96b2cc0c32864e77719/vanilla-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "f3728a8d9a191d3ff2c21e64225c8aab", "sha256": "287ddc2b799882412fbad6bde5c36eb293e489b04b62f0e03c3db1d4e5a029f8" }, "downloads": -1, "filename": "vanilla-0.1.13.tar.gz", "has_sig": false, "md5_digest": "f3728a8d9a191d3ff2c21e64225c8aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22656, "upload_time": "2015-07-03T23:26:28", "url": "https://files.pythonhosted.org/packages/ec/8a/ae0fdd0b4fa1c2ed9733e1b7e5e45a2b04ccabca6f1ab3a3995a3522673c/vanilla-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "43720c31d0c628794f2f4f1b4c8cb3f8", "sha256": "0287b457a56cc4cafe881b1bab405129b8db5acdea1207cb68f19292a845da31" }, "downloads": -1, "filename": "vanilla-0.1.14.tar.gz", "has_sig": false, "md5_digest": "43720c31d0c628794f2f4f1b4c8cb3f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22608, "upload_time": "2015-10-27T20:35:40", "url": "https://files.pythonhosted.org/packages/1e/59/b590a084af649ef1fdecafd46131c2d56678faa61e25e874f24160709f5c/vanilla-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "aa6a531c339b68cf37dcb7bbbce57e55", "sha256": "0e9bc658096d5b5355a4ca70e2110fa309da93e5f69fffbc38f70b89558227bb" }, "downloads": -1, "filename": "vanilla-0.1.15.tar.gz", "has_sig": false, "md5_digest": "aa6a531c339b68cf37dcb7bbbce57e55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22703, "upload_time": "2015-10-29T22:37:02", "url": "https://files.pythonhosted.org/packages/e2/2d/7bef012bbbec396ab124dbe6f5d4fb215fb4c396e91b68ea0425d0d86c9f/vanilla-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "0b2d187e993fe3833e349cb0c9e69765", "sha256": "cdfcc4519e155cd9dd19bf7b24cfbbe12a36bef223038e73f6acc68df2320828" }, "downloads": -1, "filename": "vanilla-0.1.16.tar.gz", "has_sig": false, "md5_digest": "0b2d187e993fe3833e349cb0c9e69765", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22707, "upload_time": "2015-12-04T02:11:43", "url": "https://files.pythonhosted.org/packages/b7/44/36b17de8c84b4217321de7e12c420632fc24c108611aceea1c471ab5885d/vanilla-0.1.16.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e632e6130ee186d12eddf25bbc0e37ab", "sha256": "581f202bb21cd4cfc9847bf3ed59d2e4447b7221be35a1866f4da3be22535c85" }, "downloads": -1, "filename": "vanilla-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e632e6130ee186d12eddf25bbc0e37ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19506, "upload_time": "2015-02-23T01:05:02", "url": "https://files.pythonhosted.org/packages/f5/fc/46bfce089c0ecb8768d266ed7dae342bc7c6ae9b22ca6409b3c2780c707b/vanilla-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f9fc1d65533458b3d7fb6a093c642057", "sha256": "cdb74d50aafe8fdba88194491c44bf7c15375aebc8ff4772c8b0b1a9b83f2f83" }, "downloads": -1, "filename": "vanilla-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f9fc1d65533458b3d7fb6a093c642057", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19993, "upload_time": "2015-03-20T01:42:06", "url": "https://files.pythonhosted.org/packages/08/c5/485e28f7e4b91f915a71b5c4fe5edbd3110c14d5ed3368c50876ebc33d46/vanilla-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "61e598045511d0442cd1246eb7ab2e3b", "sha256": "8d0143d16badc1f26675ac56e672e4b6a918e8a990b78567ccf000f2cf642cf4" }, "downloads": -1, "filename": "vanilla-0.1.4.tar.gz", "has_sig": false, "md5_digest": "61e598045511d0442cd1246eb7ab2e3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20001, "upload_time": "2015-03-20T18:27:13", "url": "https://files.pythonhosted.org/packages/91/c3/b263427d64990dd89f6f07121179990ebb1f0fbeddeb0f0d788727c1845f/vanilla-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "f3a9ac5fbfd40b77542929b63a4cd9e4", "sha256": "be6955594f30dc235bb27256301d2dd2043e29c5dfc4917902d309b1ce6bb1a7" }, "downloads": -1, "filename": "vanilla-0.1.5.tar.gz", "has_sig": false, "md5_digest": "f3a9ac5fbfd40b77542929b63a4cd9e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20043, "upload_time": "2015-03-20T20:50:36", "url": "https://files.pythonhosted.org/packages/09/9d/6ccc3c9933c1be3c19c95022bf5377f93db47f8496a82206b2b87a74af64/vanilla-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "8b60405d149ba31e0774025433336511", "sha256": "e0af61029de2ec3bbfe0d1d9c2a17e469a6c7d91cea4aaff3135762932452ff4" }, "downloads": -1, "filename": "vanilla-0.1.6.tar.gz", "has_sig": false, "md5_digest": "8b60405d149ba31e0774025433336511", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20091, "upload_time": "2015-03-21T01:05:53", "url": "https://files.pythonhosted.org/packages/13/bd/1d9187b98969eaac87fe77e4f53fa7ee8e3f88914b5fa8ee16506945b49a/vanilla-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "f5100479bb48551c9c5d125e20f5fe30", "sha256": "12846dc9f018dcd4d0861f8f6aca6837027ae41356f3c73a7fe1cec56f0514cb" }, "downloads": -1, "filename": "vanilla-0.1.7.tar.gz", "has_sig": false, "md5_digest": "f5100479bb48551c9c5d125e20f5fe30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20264, "upload_time": "2015-03-31T23:18:08", "url": "https://files.pythonhosted.org/packages/6c/29/5a315effe7cfa3e0059c3adf1f19809f115902e1559a8abfc5d54c35cea7/vanilla-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "48457796bf09c209a33d9bcfbfef16b5", "sha256": "f0deed5ff5e3d55360f765ca68179fbeb47f365d498f35a145330d4f4079f282" }, "downloads": -1, "filename": "vanilla-0.1.8.tar.gz", "has_sig": false, "md5_digest": "48457796bf09c209a33d9bcfbfef16b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20771, "upload_time": "2015-04-03T23:21:44", "url": "https://files.pythonhosted.org/packages/3f/17/0e9eddf855fdb167605ae4bd098da4f999ba55f3e2b5329ec6eaae9a530c/vanilla-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "ef0dc1273befab8af67664ce9dc7cf00", "sha256": "ed69027850eca773fbf20727431a68a1dbbea7b0170bed970ecd9e5f972f8eab" }, "downloads": -1, "filename": "vanilla-0.1.9.tar.gz", "has_sig": false, "md5_digest": "ef0dc1273befab8af67664ce9dc7cf00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21722, "upload_time": "2015-04-21T20:07:18", "url": "https://files.pythonhosted.org/packages/82/de/6956b6d1378fdd24589f4162a8c22c044332c7d80acdeb162de2488ae1d8/vanilla-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0b2d187e993fe3833e349cb0c9e69765", "sha256": "cdfcc4519e155cd9dd19bf7b24cfbbe12a36bef223038e73f6acc68df2320828" }, "downloads": -1, "filename": "vanilla-0.1.16.tar.gz", "has_sig": false, "md5_digest": "0b2d187e993fe3833e349cb0c9e69765", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22707, "upload_time": "2015-12-04T02:11:43", "url": "https://files.pythonhosted.org/packages/b7/44/36b17de8c84b4217321de7e12c420632fc24c108611aceea1c471ab5885d/vanilla-0.1.16.tar.gz" } ] }