This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

About

Message For You Sir! (m4us) is a coroutine-based concurrent programming library and framework for Python. It is heavily inspired by the BBC Research’s brilliant Kamaelia project. In fact, it largely intends to be a reimplementation of most of Kamaelia’s core concepts, but be based on Python coroutines instead of generators. It also aims to be cleaner and simpler.

Features

  • Provides coroutine-based inbox/outbox message-passing programming style.
  • Provides simple event loop and message routing mechanisms.
  • Provides single-thread and thread-based concurrency.
  • Promotes loose-coupling and component-based program design.
  • Excellent for pipeline-style data transformation systems.
  • Supports publish/subscribe style message distribution.
  • Works with both plain Python 2.6+ coroutines (value = (yield)) and class-based components.
  • Much more pythonic than Kamaelia and with less magic.
  • Clearly defined interfaces for all objects.
  • Complete API documentation and very clean source code.
  • Extensible with custom schedulers, post offices, message filters, etc.
  • Extensible with zope.interface adapters and custom interface implementations.
  • Easy to extend to support distributed computing.
  • 100% line test coverage and almost 100% branch test coverage.
  • Currently implements equivalents to Kamaelia’s Component, ThreadedComponent, Scheduler, Pipeline, Graphline, and Backplane.
  • Provides several convenience functions and decorators to make creating common coroutine types easy.

Status

This project is very young and the code should be considered Alpha quality. It has been minimally tested on Linux and Windows, under Python 2.6, but has not yet been seriously tested on any platform. That said, it does have an extensive test suite with almost 100% branch test coverage.

You are welcome to use this project if you like it, and contributions are certainly welcome, but if you are looking for a better supported project with a strong community, then Kamaelia is a the more responsible choice.

Installation

The easiest way to install this distribution is:

pip install m4us

or:

easy_install m4us

Basic Usage

Documentation is still lacking. For now see A Simple Example for a simple example.

See also the integration tests for additional examples.

Contributing

There is always room for improvement in this project and contributions are certainly welcome. The easiest way to contribute is simply to file a bug report in the issue tracker whenever you find a problem or want to suggest an improvement.

If you would like to participate in a more substantial way, check out the issue tracker and the To Do Items Index to find out about the work still needs to be done.

Note

If you submit a bug report, patch or other code, you automatically agree to licence the contribution. See the Licensing Information for details on contribution licensing.

Licence

Message For You Sir! is licensed under the GNU Affero General Public License version 3 or later (AGPLv3+). This is free software: you are free to change and redistribute it under certain conditions. There is NO WARRANTY, to the extent permitted by law. For full licensing information, see the Licensing Information .

Credits

m4us was created by Krys Lawrence <m4us at krys ca>.

This project is greatly inspired by Kamaelia. Special thanks goes to the authors of that project.

Release History

Release History

0.3.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
m4us-0.3.0.tar.gz (549.3 kB) Copy SHA256 Checksum SHA256 Source Feb 23, 2012

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting