Just a reminder that there are only 3 weeks remaining to register for
the Open Technology Group's Python Bootcamp, a 5 day hands-on,
intensive, in-depth introduction to Python. This course is confirmed
and guaranteed to run.
Worried about the costs of air and hotel to travel for training? Don't!
Our All-Inclusive Packages provide round-trip airfare and hotel
accommodations and are available for all students attending from the
Continental US, parts of Canada, and parts of Europe! Best of all,
these packages can be booked up to March 12, 2010!
For complete course outline/syllabus, or to enroll, call us at
877-258-8987 or visit our web site at:
OTG's Python Bootcamp is a 5 day intensive course that teaches
programmers how to design, develop, and debug applications using the
Python programming language. Over a 5 day period through a set of
lectures, demonstrations, and hands-on exercises, students will learn
how to develop powerful applications using Python and integrate their
new found Python skills in their day-to-day job activities. Students
will also learn how to utilize Python's Database API to interface with
This Python course is available for on-site delivery world-wide (we
bring the class to you) for a group as small as 3, for as little as
$8,000 (including instructor travel & per-diem)!
Our course is guaranteed to run, regardless of enrollment, and available
in an "all inclusive" package that includes round-trip airfare, 5 nights
of hotel accommodation, shuttle services (to/from the airport, to/from
our facility, and to/from local eateries/shopping), and our training.
All-inclusive packages are priced from $2,495 for the 5 day course
(course only is $2,295).
For more information - or to schedule an on-site course, please contact
us at 877-258-8987 .
The Open Technology Group is the world leader in the development and
delivery of training solutions focused around Open Source technologies.
Open Technology Group, Inc.
One Copley Parkway, Suite 210
Morrisville, NC 27560
On behalf of Twisted Matrix Laboratories, I am honored to announce the
release of Twisted 10.0.
* Improved documentation, including "Twisted Web in 60 seconds"
* Faster Perspective Broker applications
* A new Windows installer that ships without zope.interface
* Twisted no longer supports Python 2.3
* Over one hundred closed tickets
For more information, see the NEWS file.
It's stable, backwards compatible, well tested and in every way an
improvement. Download it now from:
Many thanks to Jean-Paul Calderone and Chris Armstrong, whose work on
release automation tools and answers to numerous questions made this
possible. Thanks also to the supporters of the Twisted Software
Foundation and to the many contributors for this release.
Version 0.3.8 of the Python config module has been released.
What Does It Do?
The config module allows you to implement a hierarchical configuration
scheme with support for mappings and sequences, cross-references
between one part of the configuration and another, the ability to
flexibly access real Python objects, facilities for configurations to
include and cross-reference one another, simple expression evaluation
and the ability to change, save, cascade and merge configurations. You
can easily integrate with command line options using optparse.
This module has been developed on python 2.3 but should work on
version 2.2 or greater. A test suite using unittest is included in the
A very simple configuration file (simple.cfg):
# starts here
message: Hello, world!
a very simple program to use it:
from config import Config
cfg = Config(file('simple.cfg'))
Configuration files are key-value pairs, but the values can be
containers that contain further values.
A simple example - with the example configuration file:
stream : `sys.stderr`
stream : `sys.stdout`
stream : $messages.stream
a program to read the configuration would be:
from config import Config
f = file('simple.cfg')
cfg = Config(f)
for m in cfg.messages:
s = '%s, %s' % (m.message, m.name)
print >> m.stream, s
except IOError, e:
which, when run, would yield the console output:
The above example just scratches the surface. There's more information
about this module available at
Comprehensive API documentation is available at
As always, your feedback is most welcome (especially bug reports,
patches and suggestions for improvement). Enjoy!
Red Dove Consultants Ltd.
Changes since the last release posted on comp.lang.python[.announce]:
Fixed parsing bug which caused failure for negative numbers in
Improved resolution logic.
itools is a Python library, it groups a number of packages into a single
meta-package for easier development and deployment:
itools.abnf itools.ical itools.srx
itools.core itools.log itools.stl
itools.csv itools.odf itools.tmx
itools.datatypes itools.office itools.uri
itools.fs itools.pdf itools.web
itools.gettext itools.pkg itools.workflow
itools.git itools.python itools.xapian
itools.handlers itools.relaxng itools.xliff
itools.html itools.rest itools.xml
itools.http itools.rss itools.xmlfile
The new package itools.soup is a minimal wrapper around the libsoup 
library. Now the itools web server is based on this library, and so the
API has considerably changed (check the documentation and the upgrade
notes to learn more). This change improves the itools support of the
The itools.vfs package has been renamed to itools.fs, and now includes
a local-file-system (lfs) layer proving the same API as our virtual file
system. This change is to sensibly improve performance, particularly to
the itools.handlers database system.
The new itools.log package offers a simple logging facility. It is
inspired by the logging mechanism available in the Glib  library, and
will eventually become just a wrapper.
The ipkg-install.py and ipkg-cache-list.py scripts have been removed;
now we are using "usine"  to automatize software deployment. The
ipkg-build.py script should now work on Windows.
The itools.core package has seen some additions:
- the 'OrderedDict' class, for forward compatibility with Python 2.7
- the 'lazy' decorator, to make lazy properties (based on an article
by Rick Copeland )
- the 'thingy_type' metaclass: an ongoing experiment to fusion classes
Other minor improvements include slightly better support for the ical
Now the libsoup library is required for the itools.http and itools.web
packages. The minimum supported versions of glib and pygobject are
now 2.20 and 2.18 respectively. Check the upgrade notes to learn more.
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
A new version of ConfigObj has just been released: 4.7.2
This is a bugfix release with several important bugfixes. It is
recommended that all users of ConfigObj 4.7 update.
* Download: http://www.voidspace.org.uk/downloads/configobj-4.7.2.zip
* PyPI Page: http://pypi.python.org/pypi/configobj
* Documentation: http://www.voidspace.org.uk/python/configobj.html
The new version can be installed with::
pip install -U configobj
* BUGFIX: Restore Python 2.3 compatibility
* BUGFIX: Members that were lists were being returned as copies due to
interpolation introduced in 4.7. Lists are now only copies if
changes a list member. (See below.)
* BUGFIX: ``pop`` now does interpolation in list values as well.
* BUGFIX: where interpolation matches a section name rather than a value
it is ignored instead of raising an exception on fetching the item.
* BUGFIX: values that use interpolation to reference members that don't
exist can now be repr'd.
* BUGFIX: Fix to avoid writing '\r\r\n' on Windows when `write` is given
a file opened in text mode ('w').
See below for important details on the change to using list values with
What is ConfigObj?
**ConfigObj** is a simple but powerful config file reader and writer: an
file round tripper*. Its main feature is that it is very easy to use, with a
straightforward programmer's interface and a simple syntax for config files.
ConfigObj has a host of powerful features:
* Nested sections (subsections), to any level
* List values
* Multiple line values
* Full Unicode support
* String interpolation (substitution)
* Integrated with a powerful validation system
- including automatic type checking/conversion
- and allowing default values
- repeated sections
* All comments in the file are preserved
* The order of keys/sections is preserved
* Powerful ``unrepr`` mode for storing/retrieving Python data-types
String Interpolation and List Values
For general information on string interpolation in ConfigObj see:
Since version 4.7 string interpolation is done on string members of list
values. If interpolation changes any members of the list then what you
get back is a /copy/ of the list rather than the original list.
This makes fetching list values slightly slower when interpolation is
on, it also means that if you mutate the list changes won't be reflected
in the original list:
>>> c = ConfigObj()
>>> c['foo'] = 'boo'
>>> c['bar'] = ['%(foo)s']
Instead of mutating the list you must create a new list and reassign it.
Tired of the Winter weather? Make your plans now to
attend our upcoming Florida Python training seminar
in April. This 3-day public class will be held on
April 27-29, in Sarasota, Florida. It is open to
both individual and group enrollments.
For more details on the class, as well as registration
instructions, please visit the class web page:
Note that we have moved to a new domain name. If you
are unable to attend in April, our next Sarasota class
is already scheduled for July 13-15.
Thanks, and we hope to see you at a Python class in
sunny and warm Florida soon.
--Mark Lutz at learning-python.com
March is shaping up to be as busy as ever: planning SciPy 2010 (http://conference.scipy.org/scipy2010
), two great
webinars...and a new release of EPD!
*Enthought Python Distribution 6.1*
In EPD 6.1, NumPy and SciPy are dynamically linked against the MKL
linear algebra routines. This allows EPD users to seamlessly benefit
the highly optimized BLAS and LAPACK routines in the MKL. We were
expecting to observe performance improvements, but we were surprised
how dramatic the optimizations were for applications run on dual and
multi-core Intel® processors. Refer to our benchmarking tests for more
Then try it yourself!
*Enthought March Webinars*
This Friday, Travis Oliphant will lead a webinar on optimization
methods in EPD. Then, on the 19th, we'll host a webinar on Python
for integrating C and C++ code, namely Weave, Cython, and
Enthought Python Distribution Webinar
How do I... optimize?
Friday, March 5: 1pm CST/7pm UTC
Wait-list (for non-subscribers): email amenity(a)enthought.com
Scientific Computing with Python Webinar
Weave, Cython, and ctypes
Friday, March 19: 1pm CST/7pm UTC
The Enthought Team
Open Course Austin, TX: http://www.enthought.com/training/open-austin-sci.php
Python for Scientists and Engineers
• May 17- 19
Interfacing with C / C++ and Fortran
• May 20
Introduction to UIs and Visualization
• May 21
Financial Open Course, London, UK: http://www.enthought.com/training/open-london-fin.php
Python for Quants
• March 8-10
• March 11
Introduction to UIs and Visualization
• March 12
Pricing, licensing, and training inquiries
Didrik and Matt are dedicated to answering your questions and getting
the support you need.
US : Matt Harward
Europe: Didrik Pinte