xturtle.py, extended turtle graphics
a new turtle graphics module for Python and Tkinter
Version 0.91 of xturtle.py has been released. A zip file
containing the module and supplementary material can be found at:
xturtle should work properly on all major platforms (Mac, Linux and
Windows) Feedback would be appreciated to take it into account for
polishing xturtle to a final version 1.0.
xturtle.py is a module designed to help you learn and/or teach computer
programming using Python. Turtle graphics provides a means for the
beginning programmers to get immediate visual feedback about the
correct working of her programs. It's main goal is to provide
easy access to a sufficiently rich graphics toolkit.
It needs only the standard distribution of python (incl. Tkinter) and
imho it (or some descendant of it) once (soon?) could (and should?)
replace turtle.py which is contained in the current standard distribution.
xturtle.zip contains xturtle.py and three supplementary elements:
( 0. the module xturtle.py ).
1. set of 25+ sample scripts of great variety to show possible
uses of xturtle.py
2. A simple demoViewer to run and view those sample scripts
3. documentation in form of *.txt files, which also can be viewed
with the demoViewer. Docs are derived from doc strings. thus Python's
help utility works fine with the module xturtle.py
For more information (e.g. some screenshots) see the web page
itools is a Python library, it groups a number of packages into a single
meta-package for easier development and deployment:
itools.catalog itools.i18n itools.uri
itools.cms itools.ical itools.web
itools.csv itools.resources itools.workflow
itools.datatypes itools.rss itools.xhtml
itools.gettext itools.schemas itools.xliff
itools.handlers itools.stl itools.xml
- Add the method "replace" to uri objects (this makes the method
"Request.build_url" from itools.web obsolete).
- Add a datatype for decimal numbers, by Hervé Cauwelier [#330].
- Revert the lazy load patch.
- Now "get_rows" is a generator, by Hervé Cauwelier [#312].
- Various API improvements, by Nicolas Deram [#246].
- Now "stl:content" coerces floats and decimals to strings, by
Hervé Cauwelier [#331].
- Improve error logging, print the whole request headers.
- Don't fail when the "Cookie" header is present with an empty
- Now locks expire in one hour, by Hervé Cauwelier [#250].
- Handler for Restructured Text files, by Hervé Cauwelier [#68].
- Minor user interface improvements, by Hervé Cauwelier [#324,
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
I'm happy to announce the release of lxml 1.0.2 and 1.1alpha. The changes are
listed below. As a brief introduction:
lxml is a Pythonic binding for the libxml2 and libxslt libraries. It provides
safe and convenient access to these libraries using the ElementTree API. It
extends the ElementTree API significantly to offer support for XPath, RelaxNG,
XML Schema, XSLT, C14N and much, much more.
Its goals are:
* Pythonic API.
* Use Python unicode strings in API.
* Safe (no segfaults).
* No manual memory management!
(as opposed to the official libxml2 Python bindings)
lxml 1.0.2 is a maintenance release for the stable and production-ready 1.0
series. Updating and upstream integration into distributions is recommended.
lxml 1.1alpha is a preview release which adds loads of new features, including
a SAX-like iterparse() function, multi-threading and advanced tree iteration.
Bug reports and success stories sent to the mailing list are appreciated.
The source as well as various eggs and installers are available from cheeseshop:
Changes in 1.0.2:
* Support for setting a custom default Element class as opposed to
namespace specific classes (which still override the default class)
* Rare exceptions in Python list functions were not handled
* Parsing accepted unicode strings with XML encoding declaration in
* Parsing 8-bit encoded strings from StringIO objects raised an exception
* Module function initThread() was removed - useless (and never worked)
* XSLT and parser exception messages include the error line number
Features added in 1.1alpha:
* Module level iterwalk() function as 'iterparse' for trees
* ElementTree compatible iterparse() module function
* Element.nsmap property returns a mapping of all namespace prefixes known
at the Element to their namespace URI
* Reentrant threading support in RelaxNG, XMLSchema and XSLT
* Threading support in parsers and serializers:
o All in-memory operations (tostring, parse(StringIO), etc.) free
o File operations (on file names) free the GIL
o Reading from file-like objects frees the GIL and reacquires it for
o Serialisation to file-like objects is single-threaded (high lock
* Element iteration over XPath axes:
o Element.iterdescendants() iterates over the descendants of an
o Element.iterancestors() iterates over the ancestors of an element
(from parent to parent)
o Element.itersiblings() iterates over either the following or
preceding siblings of an element
o Element.iterchildren() iterates over the children of an element in
o All iterators support the tag keyword argument to restrict the
* Element.getnext() and Element.getprevious() return the direct siblings
of an element
Beta 0.22 of MMA - Musical MIDI Accompaniment - is now
available for downloading. Included in this release:
Minor (and not-so-minor) bug fixes, added options to
GROOVE selections, HARMONYVOLUME setting, FORCEOUT
option for keyboard tracks, and some command line
MMA is a accompaniment generator -- it creates midi tracks
for a soloist to perform with. User supplied files contain
pattern selections, chords, and MMA directives. For full details
If you have any questions or comments, please send them
There are two and a half weeks to go to get your paper in for one of the
best Australian conferences this year!
The deadline for proposals is 12th July 2006.
The Open Source Developers' Conference is an Australian conference
designed for developers, by developers. It covers numerous programming
languages across a range of operating systems. We're seeking papers on
Open Source languages, technologies, projects and tools as well as
of interest to Open Source developers.
The conference will be held in Melbourne, Victoria (Monash University's
Caulfield Campus) from the 6th to the 8th of December, 2006. Each day
includes three streams of talks, social events and is fully
catered with buffet lunch and morning, afternoon teas.
For a list of conference presentations from last year visit:
If you have any questions, or have never submitted a paper proposal
before, please read our FAQ page at http://www.osdc.com.au/faq/
If you don't find an answer there, please contact richard <at>
To submit a proposal, follow the instructions at
This year we're also going to run a day of tutorials. See the CFP
for more information.
We are also seeking expressions of interest for people to be part of the
OSDC 2006 Programme Committee. The Committee's primary
assessing the proposals submitted by potential speakers. Please email
richard <at> osdc.com.au if you are interested, indicating your open
We look forward to hearing from you!
All the best,
The OSDC 2006 committee.
This is your last change to submit a talk for the Vancouver Python
Workshop. Talks will be accepted until Friday June 16th.
This is a great opportunity for you to share your project or interests
with the Python community, so please take advantage of it!
To submit a talk, see:
About the Vancouver Python Workshop
The conference will begin with keynote addresses on August 4st by Guido
van Rossum , Jim Hugunin , and Ian Cavén . Further talks (and
tutorials for beginners) will take place on August 5th and 6th. The
Vancouver Python Workshop is a community organized and designed for both
the beginner and for the experienced Python programmer with:
* tutorials for beginning programmers
* advanced lectures for Python experts
* case studies of Python in action
* after-hours social events
* informative keynote speakers
* tracks on multimedia, Web development, education and more
More information see: http://www.vanpyz.org/conference/
or contact Brian Quinlan at: brian(a)sweetapp.com
In addition to the opportunity to learn and socialize with fellow
Pythonistas, the Vancouver Python Workshop also gives visitors the
opportunity to visit one of the most extraordinary cities in the world
. For more information about traveling to Vancouver, see:
Talk proposals accepted: May 15th to June 15th
Early registration (discounted): May 22nd to June 30th
Normal registration: from July 1st
Keynotes: August 4th
Conference and tutorial dates: August 5th and 6th
 Guido van Rossum (Google) is the inventor of Python and has managed
its growth and development for more than a decade. Guido was
awarded the Free Software Foundation Award in 2002 and Dr.Dobb's
1999 Excellence in Programming Award. Guido works at Google and
spends half of his time on Python.
 Jim Hugunin (Microsoft) is the creator of numerous innovations that
take Python into new application domains. Jim's most recent project,
IronPython integrates Python into Microsoft's .NET runtime. Jim's
previous project, Jython is Python for the Java runtime and was the
second production-quality implementation of Python. Before that,
Jim's Numeric Python adapted Python to the needs of number crunching
applications. Jim works at Microsoft adapting the .NET runtime to
the needs of dynamic languages like Python.
 Ian Cavén is the primary developer of the Lowry Digital Images
motion picture restoration system. This Python and Zope-based system
has been used to restore over 150 motion pictures. Highlights
include Citizen Kane, Sunset Boulevard and both the Indiana Jones
and Star Wars trilogies. While Ian was Chief Scientist at Lowry
Digital, his rack of computers grew from a few Macintoshes on his
desktop to over six hundred Macintosh and Linux servers - at
one point earning Lowry the title as the second biggest installation
of parallel processing Maintoshes in the world. In 2005, Lowry
Digital Images was acquired by DTS (the famous movie audio company)
and renamed DTS Digital Images. The motion picture restoration
system has been discussed in publications as diverse as IEEE
Spectrum, USA Today, the BBC NEWS, the New York Times and Apple.com.
Ian has been a Python enthusiast since 1999.
The PyPy development team has been busy working and we've now packaged
our latest improvements, completed work and new experiments as
version 0.9.0, our fourth public release.
The highlights of this fourth release of PyPy are:
**implementation of "stackless" features**
We now support the larger part of the interface of the original
Stackless Python -- see http://www.stackless.com for more. A
significant part of this is the pickling and unpickling of a running
These features, especially the pickling, can be considered to be a
"technology preview" -- they work, but for example the error handling
is a little patchy in places.
The "extension compiler" is a new way of writing a C extension for
CPython and PyPy at the same time. For more information, see its
Most useful in combination with the ext-compiler is the fact that our
translation framework can translate code that uses the
standard-in-Python-2.5 ctypes module. See its documentation for more:
PyPy's interpreter can now be compiled to use a garbage collector
written in RPython. This added control over PyPy's execution makes the
implementation of new and interesting features possible, apart from
being a significant achievement in its own right.
The PyPy interpreter's compatibility with CPython continues improves:
now we support __del__ methods, the __subclasses__ method on types and
weak references. We now pass around 95% of CPython's core tests.
**logic space preview**
This release contains the first version of the logic object space,
which will add logical variables to Python. See its docs for more:
**high level backends preview**
This release contains the first versions of new backends targeting high
level languages such as Squeak and .NET/CLI and updated versions of the
interpreter yet, but they're getting there...
**bugfixes, better performance**
As you would expect, performance continues to improve and bugs continue
to be fixed. The performance of the translated PyPy interpreter is
2.5-3x times faster than 0.8 (on richards and pystone), and is now
stable enough to be able to run CPython's test suite to the end.
py.test, our testing tool, now has preliminary support for doctests.
We now run all our tests every night, and you can see the summary at:
What is PyPy (about)?
PyPy is a MIT-licensed research-oriented reimplementation of Python
written in Python itself, flexible and easy to experiment with. It
translates itself to lower level languages. Our goals are to target a
large variety of platforms, small and large, by providing a
compilation toolsuite that can produce custom Python versions.
Platform, memory and threading models are to become aspects of the
translation process - as opposed to encoding low level details into
the language implementation itself. Eventually, dynamic optimization
techniques - implemented as another translation aspect - should become
robust against language changes.
Note that PyPy is mainly a research and development project and does
not by itself focus on getting a production-ready Python
implementation although we do hope and expect it to become a viable
contender in that area sometime next year.
PyPy is partially funded as a research project under the European
Union's IST programme.
Where to start?
Getting started: http://codespeak.net/pypy/dist/pypy/doc/getting-started.html
PyPy Documentation: http://codespeak.net/pypy/dist/pypy/doc/
PyPy Homepage: http://codespeak.net/pypy/
The interpreter and object model implementations shipped with the 0.9
version can run on their own and implement the core language features
of Python as of CPython 2.4. However, we still do not recommend using
PyPy for anything else than for education, playing or research
Ongoing work and near term goals
The Just-in-Time compiler and other performance improvements will be one of
the main topics of the next few months' work, along with finishing the
logic object space.
PyPy has been developed during approximately 20 coding sprints across
Europe and the US. It continues to be a very dynamically and
incrementally evolving project with many of these one-week workshops
PyPy has been a community effort from the start and it would
not have got that far without the coding and feedback support
from numerous people. Please feel free to give feedback and
contact points: http://codespeak.net/pypy/dist/pypy/doc/contact.html
the pypy team, (Armin Rigo, Samuele Pedroni,
Holger Krekel, Christian Tismer,
Carl Friedrich Bolz, Michael Hudson,
and many others: http://codespeak.net/pypy/dist/pypy/doc/contributor.html)
PyPy development and activities happen as an open source project
and with the support of a consortium partially funded by a two
year European Union IST research grant. The full partners of that
Heinrich-Heine University (Germany), AB Strakt (Sweden)
merlinux GmbH (Germany), tismerysoft GmbH (Germany)
Logilab Paris (France), DFKI GmbH (Germany)
ChangeMaker (Sweden), Impara (Germany)
I can't see a conspicuous evolutionary advantage in being good
at higher mathematics. -- James Riden, asr
As usual, we'll be having our PyGTA meeting on the 4th Tuesday of the
month, this month that's June 27th. We'll be continuing our discussion
and review of web development frameworks. You can read about last
month's reviews (TurboGears, Django and Zope2) here:
If you have lots of experience with another framework, let me know at
the meeting and we'll add that framework to the list being reviewed.
Details available here:
Mike C. Fletcher
Designer, VR Plumber, Coder