<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>circuits</name>
<shortdesc>Event framework with a Component architecture</shortdesc>
<description>A Lightweight, Event driven Framework with a strong Component Architecture.

Components communicate with one another by propagating Events on Channels
throughout the System. Each Component has a set of Event Handlers that
can listen for or filter Events on one or more Channels. Components react to Events and in turn expose further Events into the System. Each Component
is capable of managing it's own Events as well as those of other Components.
Complex directed graph structures can be created with Component Registrations,
this gives a level of hierarchy and separation of concern.

Example:
   &gt;&gt;&gt; from time import sleep
   &gt;&gt;&gt; from circuits import Event, Component
   &gt;&gt;&gt;
   &gt;&gt;&gt; class App(Component):
   ...   def hello(self):
   ...      print "Hello World!"
   &gt;&gt;&gt; app = App()
   &gt;&gt;&gt; app.start()
   &gt;&gt;&gt; app.push(Event(), "hello")
   &gt;&gt;&gt; sleep(1)
   Hello World!</description>
<download-page>http://trac.softcircuit.com.au/circuits/downloads/circuits-1.1.1.tar.gz</download-page>
<homepage rdf:resource="http://trac.shortcircuit.net.au/circuits/" />
<maintainer><foaf:Person><foaf:name>James Mills</foaf:name>
<foaf:mbox_sha1sum>aedb4e575e97348eb3ab36ac4a73e29c7d2ef580</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>1.1.1</revision></Version></release>
</Project></rdf:RDF>