This is a Content Management System built on Python & itools, among
other features ikaaro provides:
- content and document management (index&search, metadata, etc.)
- multilingual user interfaces and content
- high level modules: wiki, forum, tracker, etc.
This is the first release of ikaaro as a separate package (before it
was distributed as a sub-package of the "itools"  library).
>From a functional and visual point of view, the changes of this release
- Now we have a friendlier user interface to manage multilingual web
- Following the W3C recommendations , type extensions have been
drop from the URI, so for example "http://.../index.html" becomes
However, the most important changes concern the architecture and the
programming interface, and are strongly related to the changes in the
latest itools version.
This is the (new) architecture diagram:
4) The Content Management System (ikaaro)
2) File Handlers & Database (itools.handlers) | 3) Web Framework
---------------------------------------------- | (itools.web)
1) Virtual File System (itools.vfs) |
Summarizing: now the distinction between the different layers is
Another important change from the architecture point of view, we have
decentralized three different aspects:
- the definition of the fields to be indexed
- the definition of the metadata fields
- the upgrade logic
Before these three aspects were defined globally, now they are centered
on the objects. This means, for instance, that now it should be much
more easy to develop third-party modules.
Please check the upgrade notes for a more detailed description of what
J. David Ibáñez
Itaapy <http://www.itaapy.com> Tel +33 (0)1 42 23 67 45
9 rue Darwin, 75018 Paris Fax +33 (0)1 53 28 27 88
PyPy Leysin Winter Sprint (12-19th January 2008)
.. image:: http://www.ermina.ch/002.JPG
The next PyPy sprint will be in Leysin, Switzerland, for the
fifth time. This is a fully public sprint: newcomers and
topics other than those proposed below are welcome.
Goals and topics of the sprint
* Like previous winters, the main side goal is to have fun in winter
sports :-) We can take a couple of days off for ski; at this time of
year, ski days end before 4pm, which still leaves plenty of time
to recover (er, I mean hack).
* the overall idea of the sprint is to continue working on making PyPy
ready for general use. A few more specific tasks:
- app-level ctypes: getting to a basically usable point
would be really nice.
- JIT: there is a long-standing timeshifter refactoring,
towards making the JIT be more interpreter-like. Starting
it during the sprint might be a good way to share some of
the knowledge of how the JIT really works. Alternatively,
we can work on supporting ootype in the timeshifter.
- Testing: e.g. we run various nightly test runs but the
results are not summarized in a single page yet.
- LLVM: llvm 2 is now at version 2.1 and nicely stable
again. Our llvm backend has improved in the last few
months, but refactoring it together with the genc backend
to share code more directly would be a nice task.
* We are open to all sorts of other tasks during the sprint, just
Location & Accomodation
Leysin, Switzerland, "same place as before". Let me refresh your
memory: both the sprint venue and the lodging will be in a very spacious
pair of chalets built specifically for bed & breakfast:
http://www.ermina.ch/. The place has a good ADSL Internet connexion
with wireless installed. You can of course arrange your own lodging
anywhere (so long as you are in Leysin, you cannot be more than a 15
minute walk away from the sprint venue), but I definitely recommend
lodging there too -- you won't find a better view anywhere else (though
you probably won't get much worse ones easily, either :-)
I made pre-reservations in the Chalet, so please *confirm* quickly that
you are coming so that we can adjust the reservations as appropriate.
The rate so far has been around 60 CHF a night all included in 2-person
rooms, with breakfast. There are larger rooms too (less expensive) and
maybe the possibility to get a single room if you really want to.
Please register by svn:
or on the pypy-sprint mailing list if you do not yet have check-in rights:
You need a Swiss-to-(insert country here) power adapter. There will be
some Swiss-to-EU adapters around - bring a EU-format power strip if you
Officially, 12th-19th January 2008. Both dates are flexible, you can
arrive or leave earlier or later. We will give introductions and
tutorials depending on who needs them, either on the 13th or the 14th.
what is it
A Python package to parse and build CSS Cascading Style Sheets.
main changes since 0.9.4a4
for full details for 0.9.4b1 see the relevant CHANGELOG:
- **FEATURE**: Added ``csscombine`` script which currently resolves
@import rules into the input sheet. No nested @imports are resolved yet
and @namespace rules do not work yet though!
+ **BUGFIX**: Serializing escape sequences add a single SPACE after
each escape. This was not present until now so a sequence like "\\74 a"
did come out as "\\000074a" which was not as intended. Also as a SPACE
is inserted in any case all escapes are not padded to 6 digits anymore
but are only as long as needed.
+ **BUGFIX**: Handling of illegal selectors is now same as the W3C
CSS validator (and according the selector spec - I hope ;). Illegal
selectors result the complete rule being dropped. Fixed are the
following (edge) cases:
Meant was probably a space between a and b (plus maybe the
comment) but it MUST be inserted. IE and Safari nevertheless seem to
parse this rule as ``a b`` so as if a space would be present. cssutils
now parses this selector as intented by the spec as ``ab``.
Again spaces around the UNIVERSAL ``*`` were probably meant by
the author. IE and Safari seem to parse this **invalid** selector as ``a
b``. cssutils ignores this rule completely!
+ BUGFIX: ``css.CSSRuleList`` is still a Python list but setting
methods like ``__init__``, ``append``, ``extend`` or
``__setslice__`` are added later on instances of this class if so
desired. E.g. CSSStyleSheet adds ``append`` which is not available in a
simple instance of this class! This has been changed as no validation is
possible in CSSRuleList itself.
+ IMPROVEMENT: Added better ``str`` and ``repr`` to
+ IMPROVEMENT: Added position information to some error reportings
+ some internal changes
cssutils is published under the LGPL.
for download options for see http://cthedot.de/cssutils/
cssutils needs Python 2.4 or higher (tested with Python 2.5 on Vista only)
bug reports, comments, etc are very much appreciated!
We've now begun posting talks from PyCon 2007, hosted at
You can subscribe to the RSS feed, download individual talks from the
feed, or listen to talks from your browser using a Flash-based MP3
player. You can also find the PyCon 2007 podcast on the iTunes store;
search for 'PyCon' to find it.
The currently posted talks include:
Studying Internet Censorship: A Python Case Study
What Every Open Source Developer Must Know About Intellectual Property
Becoming an Open Source Developer: Lessons from the Django Project
Python and wxPython for Experimental Economics
IronPython: Present and Future
PyDX: Mathematics Is Code
Web Frameworks Panel
Iterators in Action
New talks will be posted at least once per week.
Andrew M. Kuchling
Director, Python Software Foundation
Gluon 1.15 is out. This is a free open source framework for agile
development of secure database driven web applications, written in
Python, programmable in Python. Stable API and supported since
October 1st 2007.
http://mdp.cti.depaul.eduhttp://www.vimeo.com/428474 (video tutorial)
http://mdp.cti.depaul.edu/appliances (free plugin apps for gluon with
no installation (it is a single executable), no configuration files,
no shell commands, all development, deployment and maintenance is
done via a web interface
built-in ticketing system; if your app has a bug it is logged, the
user is notified and ticket is issued so that the administrator can
retrieve the event via the administrative interface.
Example of a COMPLETE working gluon app:
---------- model: db.py ------------
---------- controller: default.py ---------
if form.accepts(request.vars,session): response.flash='image
what does it do?
it creates the database, creates the table (if it does not exists) or
alters the table (if description does not match), creates a web page
called index with an upload form for the image.
When the visitor clicks submit, the file is uploaded, renamed in a
safe way, stored in a file serverside, the name is stored in the
database, and the user is a notified. It also creates a session and
handles it via a cookie. It also writes a web based administrative
interface for the newly created database.
ANNOUNCING twill v0.9.
twill is a simple language for browsing the Web. It's designed for
automated testing of Web sites, but it can be used to interact with
Web sites in a variety of ways. In particular, twill supports form
submission, cookies, redirects, and HTTP authentication.
This release of twill is officially "Pretty Dang Stable".
A twill script to use the "I'm feeling lucky" button on Google looks
setlocal query "twill Python"
fv 1 q $query
submit btnI # use the "I'm feeling lucky" button
(Note that using this script abuses Google's Terms of Service. So don't.)
You can install the latest release of twill with easy_install,
or download this release at
Documentation is included in the .tar.gz and is also online at
twill is implemented in Python and uses pyparsing and mechanize. In
addition to the existing simple command language, twill can easily be
extended with Python. twill also provides a fairly simple and
well-documented wrapper around mechanize.
Significant changes with 0.9:
- many small bugs were fixed, of course!
- patched subprocess pipe problem (Chris Abraham). This fixes problems
with long-running twill processes.
- twill now "plays nice" with other versions of mechanize and ClientForm
(good for including it in distributions).
- Corrected license information => MIT in all files.
- new 'info' command gives human-readable page summary.