Asynchronous Component based Event Application Framework
Project description
circuits is a Lightweight Event driven and Asynchronous Application Framework for the Python Programming Language with a strong Component Architecture. circuits also includes a lightweight, high performance and scalable HTTP/WSGI web server (with some similar features to CherryPy) as well as various I/O and Networking components.
circuits has a clean architecture and has no required external dependencies. It has a small footprint and delivers a powerful set of features for building large, scalable, maintainable applications and systems. circuits comes with a suite of standard components that can be quickly utilized to create applications from a simple tool to a complex distributed web application.
circuits was created by and is primarily maintained by James Mills
Links:
1.3.3 (20110205)
Features
circuits.core.workers: Add import of cpu_count/cpuCount as cpus from the respective multiprocessing/processing modules
circuits.web.app: Two apps newly added. WebConsole and MemoryMonitor See: http://codepad.org/iQwBgfdM for an example
circuits.core.debugger: If the Debugger isn’t logging to a file or logger (we’re logging to sys.stderr) it’s useful to restrict the output for common terminal widths of 80.
circuits.core.debugger: Make chopping long lines when logging to sys.stderr optional with kwarg chop (Default: False).
circuits.web.errors: Make traceback available on the HTTPError Event Object as self.traceback
Bug Fixes
circuits.web.main: Only start multiple processes if multiprocessing is actually available
circuits.core.pollers: Ignore IOError of EINTR (4)
circuits.app: Fixed a bug with loading a Logger instance and loading the Config instance (``circuits.app needs`` to be refactored)
Examples
examples/web/jsonserializer.py: New example showing how to build a simple request filter that intercepts the return values of request handlers before they get added to the response body
examples/web/filtering.py: Fixed example
1.3.2 (20110201)
Bug Fixes
Fixed several Python 2.5 incompatibilities.
circuits.web.wsgi: Fixed a bug with writing to the request.body. (Forgot to rewing the StringIO instnace after writing to it)
1.3.1 (20110131)
Documentation
Fixed documentation generation
Features
circuits.core.manager: Deprecated the use of the sleep parameter/argument in Manager.start(...) and Manager.run(...) in favor of sleeping for the specified circuits.core.manager.TIMEOUT when/iif there are no tick functions to process (eg: Timer, pollers, etc)
- – If aftering processing Tick Functions there are no resulting
events to process then a sleep will occur for circuits.core.TIMEOUT seconds.
circuits.core.Manager: Call self.stop right at the end of normal termination for script-like systems (eg: examples/cat.py)
circuits.core.Manager: If a KeyboardInterrupt or SystemExit exception is raised during a Tick Function, then re-raise it.
Bug Fixes
circuits.web.http: Fixed a bug with HTTP streaming
circuits.io: Fixed exceptions not being caught during shutdown
tests.core.test_bridge: Fixed and passing again :)
circuits.web.wsgi: Fixed a bug discovered when trying to deploy a circuits.web WSGI Application using the uwsgi server. In the case of an empty request body from the client being passed thorugh uwsgi to circuits.web - No Content-Length would be provided, but also any attempt to read from wsgi.input would block causing uwsgi to timeout
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file circuits-1.3.3.tar.gz
.
File metadata
- Download URL: circuits-1.3.3.tar.gz
- Upload date:
- Size: 462.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb12a6aca399c2da59145167aaf4a0d39b49c102a93fd8997f16f8925525cffc |
|
MD5 | a24b0abb4475d5b03ae525ba3797c332 |
|
BLAKE2b-256 | a78cc71a9f05c3dd4727bd3141fd54921285e475cfe7d75d285342ad9e207655 |
File details
Details for the file circuits-1.3.3-py2.6.egg
.
File metadata
- Download URL: circuits-1.3.3-py2.6.egg
- Upload date:
- Size: 373.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 709d77c31710b46f614a60f3221a181763c597f32a1b08790e928d72398ad779 |
|
MD5 | b8057e51582065c4ef41d26ae4e576a7 |
|
BLAKE2b-256 | 2c21a5b0c66dabc90d6dc9ab5f625fd0e6fe2e70081c6068fe6661a55d74fdaf |
File details
Details for the file circuits-1.3.3-py2.5.egg
.
File metadata
- Download URL: circuits-1.3.3-py2.5.egg
- Upload date:
- Size: 371.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd76c64f0058655ff0cee7bedd0dcaa4934a29d472d410a01b9a8881bae62503 |
|
MD5 | baf88d9b2dcd08b345f5b434b71726c8 |
|
BLAKE2b-256 | b5d130b875b638e1a693e8ea4decb56f496213cc6a65520af1c3b138a7f74676 |