{ "info": { "author": "Krys Lawrence", "author_email": "m4us@krys.ca", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Affero General Public License v3", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 2 :: Only", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. This file is part of Message For You Sir (m4us).\n.. Copyright (C) 2009-2012 Krys Lawrence\n..\n.. Message For You Sir is free software: you can redistribute it and/or modify\n.. it under the terms of the GNU Affero General Public License as published by\n.. the Free Software Foundation, either version 3 of the License, or (at your\n.. option) any later version.\n..\n.. Message For You Sir is distributed in the hope that it will be useful, but\n.. WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n.. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public\n.. License for more details.\n..\n.. You should have received a copy of the GNU Affero General Public License\n.. along with Message For You Sir. If not, see .\n\n###########################\nMessage For You Sir! (m4us)\n###########################\n\n.. contents::\n\n.. about\n\nAbout\n=====\n\n*Message For You Sir!* (m4us) is a coroutine-based concurrent programming\nlibrary and framework for Python_. It is heavily inspired by the `BBC\nResearch`_'s brilliant Kamaelia_ project. In fact, it largely intends to be a\nreimplementation of most of Kamaelia_'s core concepts, but be based on Python_\ncoroutines instead of generators. It also aims to be cleaner and simpler.\n\n.. features\n\nFeatures\n========\n\n* Provides coroutine-based inbox/outbox message-passing programming style.\n* Provides simple event loop and message routing mechanisms.\n* Provides single-thread and thread-based concurrency.\n* Promotes loose-coupling and component-based program design.\n* Excellent for pipeline-style data transformation systems.\n* Supports publish/subscribe style message distribution.\n* Works with both plain Python_ 2.6+ coroutines (``value = (yield)``) and\n class-based components.\n* Much more pythonic than Kamaelia_ and with less magic.\n* Clearly defined interfaces for all objects.\n* Complete API documentation and very clean source code.\n* Extensible with custom schedulers, post offices, message filters, etc.\n* Extensible with zope.interface_ adapters and custom interface\n implementations.\n* Easy to extend to support distributed computing.\n* 100% line test coverage and almost 100% branch test coverage.\n* Currently implements equivalents to Kamaelia_'s *Component*,\n *ThreadedComponent*, *Scheduler*, *Pipeline*, *Graphline*, and *Backplane*.\n* Provides several convenience functions and decorators to make creating\n common coroutine types easy.\n\n.. status\n\nStatus\n======\n\nThis project is very young and the code should be considered *Alpha* quality.\nIt has been minimally tested on Linux and Windows, under Python_ 2.6, but has\nnot yet been seriously tested on any platform. That said, it does have an\nextensive test suite with almost 100% branch test coverage.\n\nYou are welcome to use this project if you like it, and contributions are\ncertainly welcome, but if you are looking for a better supported project with a\nstrong community, then Kamaelia_ is a the more responsible choice.\n\n.. installation\n\nInstallation\n============\n\nThe easiest way to install this distribution is::\n\n pip install m4us\n\nor::\n\n easy_install m4us\n\n.. basic_usage\n\nBasic Usage\n===========\n\nDocumentation is still lacking. For now see `A Simple Example`_\n|(in docs/example.py)| for a simple example.\n\nSee also the integration tests for additional examples.\n\n.. documentation_and_support\n\nDocumentation and Support\n=========================\n\n**Home page:**\n http://pypi.python.org/pypi/m4us\n**Downloads:**\n http://pypi.python.org/pypi/m4us#downloads\n**Documentation:**\n http://packages.python.org/m4us\n**Bug/issue tracker:**\n http://bitbucket.org/krys/m4us/issues\n**Source code repository:**\n http://bitbucket.org/krys/m4us\n\n.. contributing\n\nContributing\n============\n\nThere is always room for improvement in this project and contributions are\ncertainly welcome. The easiest way to contribute is simply to file a bug\nreport in the `issue tracker`_ whenever you find a problem or want to suggest\nan improvement.\n\nIf you would like to participate in a more substantial way, check out the\n`issue tracker`_ and the `To Do Items Index`_ |(in docs/source/todo.rst)| to\nfind out about the work still needs to be done.\n\n.. NOTE::\n\n If you submit a bug report, patch or other code, you automatically agree to\n licence the contribution. See the `Licensing Information`_ |(in LICENCE)|\n for details on contribution licensing.\n\n.. licence\n\nLicence\n=======\n\n*Message For You Sir!* is licensed under the `GNU Affero General Public License\nversion 3`_ or later (AGPLv3+). This is free software: you are free to change\nand redistribute it under certain conditions. There is NO WARRANTY, to the\nextent permitted by law. For full licensing information, see the `Licensing\nInformation`_ |(in LICENCE)|.\n\n.. credits\n\nCredits\n=======\n\n*m4us* was created by Krys Lawrence .\n\nThis project is greatly inspired by Kamaelia_. Special thanks goes to the\nauthors of that project.\n\n.. end\n\n.. If you are reading this file in text form, you can ignore everything below.\n.. ----------------------------------------------------------------------------\n\n.. These are hacks get around the fact that PyPI does not properly render links\n.. in substitutions.\n.. |(in docs/example.py)| replace:: \\ \\\n.. |(in docs/source/todo.rst)| replace:: \\ \\\n.. |(in LICENCE)| replace:: \\ \\\n\n.. _A Simple Example: http://packages.python.org/m4us/example.html\n.. _To Do Items Index: http://packages.python.org/m4us/todo.html\n.. _Licensing Information: http://packages.python.org/m4us/licence.html\n\n.. links\n\n.. _Python: http://python.org\n.. _BBC Research: http://www.bbc.co.uk/rd/index.shtml\n.. _Kamaelia: http://www.kamaelia.org/\n.. _zope.interface: http://pypi.python.org/pypi/zope.interface\n.. _issue tracker: http://bitbucket.org/krys/m4us/issues\n.. _GNU Affero General Public License version 3:\n http://www.gnu.org/licenses/agpl.html", "description_content_type": null, "docs_url": "https://pythonhosted.org/m4us/", "download_url": "http://pypi.python.org/pypi/m4us#downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/m4us", "keywords": "m4us concurrency coroutine kamaelia framework message", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "m4us", "package_url": "https://pypi.org/project/m4us/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/m4us/", "project_urls": { "Download": "http://pypi.python.org/pypi/m4us#downloads", "Homepage": "http://pypi.python.org/pypi/m4us" }, "release_url": "https://pypi.org/project/m4us/0.3.0/", "requires_dist": null, "requires_python": null, "summary": "A pythonic coroutine-based concurrent programming framework inspired by Kamaelia.", "version": "0.3.0" }, "last_serial": 794435, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "45a7ebf2b95ed9553445f0b059c399fc", "sha256": "c7f4266644149bef89faf6e644a4a96dc961996475a5c77b4117ffb095ffb8a9" }, "downloads": -1, "filename": "m4us-0.1.tar.gz", "has_sig": false, "md5_digest": "45a7ebf2b95ed9553445f0b059c399fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 135753, "upload_time": "2010-12-21T06:25:26", "url": "https://files.pythonhosted.org/packages/82/a1/e252adfa48ca10f90b5b7690847a08745b2b75477e7a78d134cfbdbfc293/m4us-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a7ca41689f38d94b3c239c2273c0ff29", "sha256": "f48be518bec2a905046068b8494265da473bab6b61d4464152651d4e03b54a0d" }, "downloads": -1, "filename": "m4us-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a7ca41689f38d94b3c239c2273c0ff29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 447597, "upload_time": "2010-12-21T07:04:16", "url": "https://files.pythonhosted.org/packages/ad/b7/25ea8267b8f7d4b7b19da8e4fe9f0ca4362745ebb227b017bb9ae532f5e1/m4us-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "1d57c9f6a1b0fcc7e21804fc24fd04f8", "sha256": "c45876af7ff020e816753a9dea8882370335c72b5fea87c9b71a3e655d5ae894" }, "downloads": -1, "filename": "m4us-0.2.tar.gz", "has_sig": false, "md5_digest": "1d57c9f6a1b0fcc7e21804fc24fd04f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 466754, "upload_time": "2011-04-19T03:19:23", "url": "https://files.pythonhosted.org/packages/d9/fc/03cfec188d82bc0ff2eaafcc06eeefaf0f708ed4f2e4f1413cd179262bac/m4us-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "db9ea58889df613c581d7f1da883d60c", "sha256": "5faf48b65375218f3d9c169e90463b12a3c3542e72a6907ccd803e6fc9c66b85" }, "downloads": -1, "filename": "m4us-0.2.1.tar.gz", "has_sig": false, "md5_digest": "db9ea58889df613c581d7f1da883d60c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 467475, "upload_time": "2012-02-08T06:15:58", "url": "https://files.pythonhosted.org/packages/17/b6/e42ee344f1609fbd5431322facb3ff6a59a5c3b821d68657cb772bd4f723/m4us-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6e2b801acd2c13b552b76f86608b9948", "sha256": "2efc62fcddaa4937d7582648441273e52541e0390ee49d4d2432024beb78cd37" }, "downloads": -1, "filename": "m4us-0.3.0.tar.gz", "has_sig": false, "md5_digest": "6e2b801acd2c13b552b76f86608b9948", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 549306, "upload_time": "2012-02-23T01:21:29", "url": "https://files.pythonhosted.org/packages/d4/5c/f4e6fa4f3fa083899f5ad86cdf444de4375e0e1bb3b19d1818781f0e6cfb/m4us-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6e2b801acd2c13b552b76f86608b9948", "sha256": "2efc62fcddaa4937d7582648441273e52541e0390ee49d4d2432024beb78cd37" }, "downloads": -1, "filename": "m4us-0.3.0.tar.gz", "has_sig": false, "md5_digest": "6e2b801acd2c13b552b76f86608b9948", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 549306, "upload_time": "2012-02-23T01:21:29", "url": "https://files.pythonhosted.org/packages/d4/5c/f4e6fa4f3fa083899f5ad86cdf444de4375e0e1bb3b19d1818781f0e6cfb/m4us-0.3.0.tar.gz" } ] }