This website is the home of the Expert Python Programming book and the Atomisator project.
The book
The errata for the book are located here : Errata If you have any feedback on the book, please fill a ticket (log in first).
You need to login with the feedback account to do so, using feedback for the password
The code
You can browse the code here in trac, or use the Mercurial server http://hg-atomisator.ziade.org/
You can also browse the source code to get the code presented in the book. An errata page will be mainainted as soon as I get some feedback. The code will be changed as well in case of a problem.
Atomisator
Atomisator is a data aggregator framework. Its purpose is to provide an engine to build any kind of data by merging several sources of data.
The big picture
Let's take a simple use case : let's build a Planet, where RSS feeds are merged. See it in action at Radar Francophone Python
Building a feed is done by two processes :
- 1, 2, 3 : Reading and filtering data
- 4, 5, 6 : Building the feed
Reading and filtering data is done in three steps :
- read the data sources
- filter the collected data
- store them into a dedicated database
Building the feed is done in three steps :
- read the database
- enhance the entries with dynamic data
- render the feed
The nice thing about readers, filters and enhancers is that they are plugins. This means you can write your own plugins and use Atomisator to build your own custom feed generator.
Installation
Use easy_install :
$ easy_install Atomisator
Quick Start
To use it, create a configuration file somewhere, using the -c option:
$ atomisator -c atomisator.cfg
A default configuration file will be generated, that looks like this:
[atomisator]
# put here the feeds you wish to parse
sources =
rss http://tarekziade.wordpress.com/atom
rss http://digg.com/rss2.xml
# put here the filters you want to use
filters =
doublons
# put here the enhancers you want to use
enhancers =
# put here the database location
database = sqlite:///atomisator.db
# put here the outputs
outputs =
rss atomisator.xml http://atomisator.ziade.org/example "Meta Feed." Automatic feed created by Atomisator."
You can then build your feed by using this configuration file with the -f option:
$ atomisator -f /path/to/atomisator.cfg Reading source http://tarekziade.wordpress.com/atom 10 entries read. Reading source http://digg.com/rss/index.xml 40 entries read. 50 total. Writing feed in atomisator.xml Feed ready.
You can specify the path as a free argument as well:
$ atomisator /path/to/atomisator.cfg
Atomisator will then generate an atomisator.xml file, after reading the sources.
You can also call separately the process that fills the database:
$ atomisator -r -f /path/to/atomisator.cfg
In this case the feed generation will not occur.
The -g option can be used to generate the xml file on its own:
$ atomisator -g -f /path/to/atomisator.cfg
This is useful to read sources and generate the feed within different process and different time basis.
For other useful options, run:
$ atomisator --help
Available plugins
XXX to be written
How to write a plugin
XXX to be written

