August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
Axon forms the core of Kamaelia. There are two possible introductions you may wish to follow:
It is highly recommend to do the former,
and to read the latter :-). If you are pushed for time, reading
the latter is recommended.
There is comprehensive reference documentation for Axon. This includes detailed explanations and simple examples and is useful both if you are writing components and also if you want to gain a deeper understanding of Axon.
This documentation is regularly automatically rebuilt from our latest
code in the repository.
The following text is adapted from the README bundle that accompanies Axon's separate download...
Axon is the core of Kamaelia. The contents of this directory must be installed before the rest of Kamaelia can be used. It can also be used independently of Kamaelia.
The install procedure is python's usual dance:
Documentation is held in two places: (until this section is complete)
Sample producer/consumber & wrapper component system:
The testComponent creates 2 subcomponents, creates the links in place, and takes the output from the consumer and links it to its own private/internal _input inbox. When it recieves a value from the consumer, it reports this fact and ceases operation.
(It's probably worth noting that an introspection system would be possible to write/nice to see that would be able to derive the above diagram from the running system)
Example code:
NOTE: You are recommended where possible to use Pipeline or it's friend Graphline where-ever possible these days since it is a) efficient b) shows your intention clearer. It also saves with messing around with scheduler.run.runThreads! :-)
Kamaelia provides a pipeline component that provides syntactic sugar for testHarness above. The above shows how you would use Axon by itself without any other components to build a simple producer consumer. We can replace the testComponent (and everything below!) with the following:
Michael, Matt, Lightly updated October 2005, December 2006, April
2007