I'm happy to announce that ActivePython 184.108.40.206 is now available for
This is a major release that updates ActivePython3 to core Python 3.1.
What is ActivePython?
ActivePython is ActiveState's binary distribution of Python. Builds
for Windows, Mac OS X, Linux, HP-UX and AIX are made freely available.
ActivePython includes the Python core and the many core extensions:
zlib and bzip2 for data compression, the Berkeley DB (bsddb) and
SQLite (sqlite3) database libraries, OpenSSL bindings for HTTPS
support, the Tix GUI widgets for Tkinter, ElementTree for XML
processing, ctypes (on supported platforms) for low-level library
access, and others. The Windows distribution ships with PyWin32 -- a
suite of Windows tools developed by Mark Hammond, including bindings
to the Win32 API and Windows COM. See this page for full details:
As well, ActivePython ships with a wealth of documentation for both
new and experienced Python programmers. In addition to the core Python
docs, ActivePython includes the "What's New in Python" series, "Dive
into Python", the Python FAQs & HOWTOs, and the Python Enhancement
An online version of the docs can be found here:
We would welcome any and all feedback to:
Please file bugs against ActivePython at:
On what platforms does ActivePython run?
ActivePython includes installers for the following platforms:
- Windows/x64 (aka "AMD64")
- Mac OS X
- Linux/x86_64 (aka "AMD64")
ActivePython releases also include the following:
- ActivePython31.chm: An MS compiled help collection of the full
ActivePython documentation set. Linux users of applications such as
xCHM might find this useful. This package is installed by default on
Extra bits are available from:
Thanks, and enjoy!
The Python Team
sridharr at activestate.com
We are glad to announce release 2.5 of the Modular toolkit for Data
MDP is a Python library of widely used data processing algorithms that
can be combined according to a pipeline analogy to build more complex
data processing software. The base of available algorithms includes,
to name but the most common, Principal Component Analysis (PCA and
NIPALS), several Independent Component Analysis algorithms (CuBICA,
FastICA, TDSEP, JADE, and XSFA), Slow Feature Analysis, Restricted Boltzmann
Machine, and Locally Linear Embedding.
What's new in version 2.5?
- New nodes for XSFA, Linear Regression, Histogram, Cutoffs
- The parallel package has grown more features
- Tons of bug fixes
Mailing list: http://sourceforge.net/mail/?group_id=116959
Volen Center for Complex Systems
Waltham, MA, USA
Institute for Theoretical Biology
Bernstein Center for Computational Neuroscience
pyArkansas 2009 is set for Saturday, November 14 and is once again being
hosted by our friends in the Computer Science Department at the University
of Central Arkansas. This year we are planning classes GIS, Image
Processing using Jython, Introduction to Python and Django. More details
will be announced as we continue, but I wanted to get the date announced to
eGenix.com mxODBC Connect
Python Database Interface
Our new client-server product for connecting Python applications
to relational databases - from all major platforms
This announcement is also available on our web-site for online reading:
The mxODBC Connect Database Interface for Python allows users to
easily connect Python applications to all major databases on the
market today in a highly portable and convenient way.
Unlike our mxODBC Python extension, mxODBC Connect is designed
as client-server application, so you no longer need to find production
quality ODBC drivers for all the platforms you target with your Python
Instead you use an easy to install Python client library which
connects directly to the mxODBC Connect database server over the
This makes mxODBC Connect the ideal basis for writing cross-platform
database programs and utilities in Python, especially if you run
applications that need to communicate with databases such as MS SQL
Server and MS Access, Oracle Database, IBM DB2 and Informix, Sybase
ASE and Sybase Anywhere, MySQL, PostgreSQL, SAP MaxDB and many more,
that run on Windows or Linux machines.
By removing the need to install and configure ODBC drivers on the
client side, mxODBC Connect greatly simplifies setup and
configuration of database driven client applications, while at
the same time making the network communication between client and
database server more efficient and more secure.
For more information, please see the product page:
mxODBC Connect 1.0.2 is a patch-level release of our new mxODBC Connect
* More Secure
We have upgraded the server to our latest eGenix pyOpenSSL release
0.9.0-0.9.8k, which includes a number of important bug fixes to both
pyOpenSSL and the used OpenSSL library.
* More Robust
Previous versions had a timeout issue that we have solved with this
release. We have have also added a special case for shutting down the
client with a broken server connection. In such cases, the client will
no longer wait for a timeout and terminate much faster.
* Ideal for Building Bridges
mxODBC Connect Client now works on all major Python platforms. As a
result, connecting from e.g. Linux or Mac OS X to an SQL Server
database has never been easier. You can even keep the data sources you
already have configured on your Windows machine and connect to them as
if your application were running on the database server itself.
You are encouraged to upgrade to this latest mxODBC Connect release.
When upgrading, please always upgrade both the server and the client
installations to the same version - even for patch level releases.
Customers who have purchased mxODBC Connect 1.0 licenses can download
and upgrade their existing installations without having to purchase
new licenses or upgrades. The licenses will continue to work with
Users of our stand-alone mxODBC product will have to purchase new
licenses from our online shop in order to use mxODBC Connect.
You can request 30-day evaluation licenses by visiting our web-site
or writing to sales(a)egenix.com, stating your name (or the name of the
company) and the number of eval licenses that you need.
The download archives as well as instructions for installation and
configuration of the product can be found on the product page:
If you want to try the package, jump straight to the download
Fully functional evaluation licenses for the mxODBC Connect Server are
available free of charge:
mxODBC Connect Client is always free of charge.
Commercial support for this product is available from eGenix.com.
for details about our support offerings.
Professional Python Services directly from the Source (#1, Jun 29 2009)
>>> Python/Zope Consulting and Support ... http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
::: Try our new mxODBC.Connect Python Database Interface for free ! ::::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
Registered at Amtsgericht Duesseldorf: HRB 46611
I am pleased to announce that the Python Software Foundation is
sponsoring 10 students' travel, registration, and accommodation for
the SciPy 2009 conference (Aug. 18-23). The focus of the conference
is both on scientific libraries and tools developed with Python and on
scientific or engineering achievements using Python. If you're in
college or a graduate program, please check out the details here:
About the conference
SciPy 2009, the 8th Python in Science conference, will be held from
August 18-23, 2009 at Caltech in Pasadena, CA, USA. The conference
starts with two days of tutorials to the scientific Python tools.
There will be two tracks, one for introduction of the basic tools to
beginners, and one for more advanced tools. The tutorials will be
followed by two days of talks. Both days of talks will begin with a
keynote address. The first day’s keynote will be given by Peter
Norvig, the Director of Research at Google; while, the second keynote
will be delivered by Jon Guyer, a Materials Scientist in the
Thermodynamics and Kinetics Group at NIST. The program committee will
select the remaining talks from submissions to our call for papers.
All selected talks will be included in our conference proceedings
edited by the program committee. After the talks each day we will
provide several rooms for impromptu birds of a feather discussions.
Finally, the last two days of the conference will be used for a number
of coding sprints on the major software projects in our community.
For the 8th consecutive year, the conference will bring together the
developers and users of the open source software stack for scientific
computing with Python. Attendees have the opportunity to review the
available tools and how they apply to specific problems. By providing
a forum for developers to share their Python expertise with the wider
commercial, academic, and research communities, this conference
fosters collaboration and facilitates the sharing of software
components, techniques, and a vision for high level language use in
For further information, please visit the conference homepage:
* Friday, July 3: Abstracts Due
* Friday, July 10: Announce accepted talks, post schedule
* Friday, July 10: Early Registration ends
* Tuesday-Wednesday, August 18-19: Tutorials
* Thursday-Friday, August 20-21: Conference
* Saturday-Sunday, August 22-23: Sprints
* Friday, September 4: Papers for proceedings due
* Jarrod Millman, UC Berkeley, USA (Conference Chair)
* Gaël Varoquaux, INRIA Saclay, France (Program Co-Chair)
* Stéfan van der Walt, University of Stellenbosch, South Africa
* Fernando Pérez, UC Berkeley, USA (Tutorial Chair)
On behalf of the Python development team, I'm thrilled to announce the first
production release of Python 3.1.
Python 3.1 focuses on the stabilization and optimization of the features and
changes that Python 3.0 introduced. For example, the new I/O system has been
rewritten in C for speed. File system APIs that use unicode strings now handle
paths with undecodable bytes in them. Other features include an ordered
dictionary implementation, a condensed syntax for nested with statements, and
support for ttk Tile in Tkinter. For a more extensive list of changes in 3.1,
see http://doc.python.org/3.1/whatsnew/3.1.html or Misc/NEWS in the Python
To download Python 3.1 visit:
The 3.1 documentation can be found at:
Bugs can always be reported to:
benjamin at python.org
(on behalf of the entire python-dev team and 3.1's contributors)
The version 0.2.0 of the Nagare web framework is now released !
To read about its features:
Release info and download page:
Release info and download page of the examples:
Source and documentation available at the website:
Mailing lists - the place to ask questions:
Nagare is a components based framework: a Nagare application
is a composition of interacting components each one with its
own state and workflow kept on the server. Each component
can have one or several views that are composed to generate
the final web page. This enables the developers to reuse or
write highly reusable components easily and quickly.
Thanks to Stackless Python, Nagare is also a continuation-based
web framework which enables to code a web application like a
desktop application, with no need to split its control flow in
a multitude of controllers and with the automatic handling of
the back, fork and refresh actions from the browser.
Its component model and use of the continuation come from the
famous Seaside Smalltalk framework.
Furthermore Nagare integrates the best tools and standard from
the Python world. For example:
- WSGI: binds the application to several possible publishers,
- lxml: generates the DOM trees and brings to Nagare the full
set of XML features (XSL, XPath, Schemas ...),
- setuptools: installs, deploys and extends the Nagare framework
and the Nagare applications too,
- PEAK Rules: generic methods are heavily used in Nagare, to
associate views to components, to define security rules, to
- WebOb: for its Request and Response Objects.
A complete "guess a number" game to taste how easy web coding
becomes using continuations:
from nagare import component, util
"""A little game to guess a number
def go(self, comp):
"""The game algorithm, using continuation for a pure linear Python code
- ``comp`` -- this component
self.attempt = 1
number = random.randint(1, 20)
comp.call(util.Confirm('I choose a number between 1 and 20. Try to guess
x = comp.call(util.Ask('Try #%d: ' % self.attempt))
if not x.isdigit():
x = int(x)
if x > number:
comp.call(util.Confirm('Choose a lower number'))
if x < number:
comp.call(util.Confirm('Choose a greater number'))
if x == number:
comp.call(util.Confirm('You guessed the number in %d attempts' %
self.attempt += 1
A simple todo list, illustrating the programmatic HTML generation,
the association of view(s) to Python objects and the direct association
of callbacks to HTML form elements and links:
from nagare import presentation
from nagare.namespaces import xhtml
# A plain Python ``TodoList`` class
self.todo = 
def add_todo(self, msg):
# The default HTML view, generated in programmatic HTML
def render(self, h, comp, model):
# ``h`` is a (X)HTML renderer
for msg in self.todo:
h << h.blockquote(msg) << h.hr
h << 'New todo:' << h.br
h << h.textarea.action(self.add_todo) << h.br
h << h.input(type='submit', value='Add')
Python Stackless 2.6.2 is now the recommanded Python version.
- Multiple AJAX updates object added
- Session lock added (distributed lock when memcached is used)
- A session can now contains SQLAlchemy (and Elixir) entities
- LRU management of the sessions and continuations
- ``nagare-admin create-rules`` administrative command added.
Generation of the Apache / lighttpd / ngnix rewrite rules to serve the
contents. See :wiki:`NagareAdmin`
- ``nagare-admin batch`` administrative command added. To execute Python
statements. See :wiki:`NagareAdmin`
- Easy WSGI pipe creation
- An application can now be registered under several urls
- The automatic reloader can be configured with a list of files to watch
- API to logout and change the user identity/password added
- automatic generation of a ``link(rel="canonical" ...)`` in the page header
as an alias without the session and continuation parameters
- ``min_compress_len`` parameter added in the memcached configuration
- YUI AJAX modules updated to 2.7.0
- SQLAlchemy updated to 0.5.x
- Complete refactoring of the AJAX communication. The "wire" format is now
- ``component.Component.init()`` and ``presentation.init_for()`` API
- #19, #23, #26: race condition in the sessions management
- #22: don't clear the registered callbacks when an image is served
- #21: set the security context at the beginning of the request handling
We discovered a couple of bugs in the 1.16 release that we simply had
to fix now. As such...
The Bazaar team is mostly happy & just a little bit embarrassed to
announce availability of a new release of the bzr adaptive version
control system. Bazaar is part of the GNU system <http://gnu.org/>.
End user testing of the 2a format revealed two serious bugs. The
first, #365615, caused bzr to raise AbsentContentFactory errors when
autopacking. This meant that commits or pushes to 2a-format
repositories failed intermittently.
The second bug, #390563, caused the smart server to raise
AbsentContentFactory when streaming 2a stacked 2a-format branches.
This particularly affected branches stored on Launchpad in the 2a
Both of these bugs cause command failures only, neither of them cause
data corruption or data loss. And, of course, both of these bugs are
Thanks in particular to Robert Collins and John Arbash Meinel for
fixing these bugs.
Bazaar is now available for download from
http://bazaar-vcs.org/Download as a source tarball; packages for
various systems will be available soon.
* We now properly request a more minimal set of file texts when fetching
multiple revisions. (Robert Collins, John Arbash Meinel, #390563)
* Repositories using CHK pages (which includes the new 2a format) will no
longer error during commit or push operations when an autopack operation
is triggered. (Robert Collins, #365615)
* ``chk_map.iter_interesting_nodes`` now properly uses the *intersection*
of referenced nodes rather than the *union* to determine what
uninteresting pages we still need to look at. Prior to this,
incrementally pushing to stacked branch would push the minimal data, but
fetching everything would request extra texts. There are some unhandled
cases wrt trees of different depths, but this fixes the common cases.
(Robert Collins, John Arbash Meinel, #390563)
* ``GroupCompress`` repositories now take advantage of the pack hints
parameter to permit cross-format fetching to incrementally pack the
converted data. (Robert Collins)
* ``Repository.commit_write_group`` now returns opaque data about what
was committed, for passing to the ``Repository.pack``. Repositories
without atomic commits will still return None. (Robert Collins)
* ``Repository.pack`` now takes an optional ``hint`` parameter
which will support doing partial packs for repositories that can do
that. (Robert Collins)
* RepositoryFormat has a new attribute 'pack_compresses' which is True
when doing a pack operation changes the compression of content in the
repository. (Robert Collins)
* ``StreamSink`` and ``InterDifferingSerialiser`` will call
``Repository.pack`` with the hint returned by
``Repository.commit_write_group`` if the formats were different and the
repository can increase compression by doing a pack operation.
(Robert Collins, #376748)