Skip to main content

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. Home Page

  2. Issues

  3. Mailing List

  4. Development Snapshot

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

circuits-1.3.3.tar.gz (462.7 kB view details)

Uploaded Source

Built Distributions

circuits-1.3.3-py2.6.egg (373.2 kB view details)

Uploaded Source

circuits-1.3.3-py2.5.egg (371.9 kB view details)

Uploaded Source

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

Hashes for circuits-1.3.3.tar.gz
Algorithm Hash digest
SHA256 eb12a6aca399c2da59145167aaf4a0d39b49c102a93fd8997f16f8925525cffc
MD5 a24b0abb4475d5b03ae525ba3797c332
BLAKE2b-256 a78cc71a9f05c3dd4727bd3141fd54921285e475cfe7d75d285342ad9e207655

See more details on using hashes here.

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

Hashes for circuits-1.3.3-py2.6.egg
Algorithm Hash digest
SHA256 709d77c31710b46f614a60f3221a181763c597f32a1b08790e928d72398ad779
MD5 b8057e51582065c4ef41d26ae4e576a7
BLAKE2b-256 2c21a5b0c66dabc90d6dc9ab5f625fd0e6fe2e70081c6068fe6661a55d74fdaf

See more details on using hashes here.

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

Hashes for circuits-1.3.3-py2.5.egg
Algorithm Hash digest
SHA256 bd76c64f0058655ff0cee7bedd0dcaa4934a29d472d410a01b9a8881bae62503
MD5 baf88d9b2dcd08b345f5b434b71726c8
BLAKE2b-256 b5d130b875b638e1a693e8ea4decb56f496213cc6a65520af1c3b138a7f74676

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page