On time, and with a minimum of fuss, we've released Python 2.1b2.
Thanks again to the many developers who contributed!
Check it out on the Python website:
or on SourceForge:
As it behooves a second beta release, there's no really big news since
2.1b1 was released on March 2:
- Bugs fixed and documentation added. There's now an appendix of the
Reference Manual documenting nested scopes:
- When nested scopes are enabled by "from __future__ import
nested_scopes", this also applies to exec, eval() and execfile(),
and into the interactive interpreter (when using -i).
- Assignment to the internal global variable __debug__ is now illegal.
- unittest.py, a unit testing framework by Steve Purcell (PyUNIT,
inspired by JUnit), is now part of the standard library. See the
PyUnit webpage for documentation:
Andrew Kuchling has written (and is continuously updating) an
extensive overview: What's New in Python 2.1:
See also the Release notes posted on SourceForge:
We are planning to make the final release of Python 2.1 on April 13;
we may release a release candidate a week earlier.
We're also planning a bugfix release for Python 2.0, dubbed 2.0.1; we
don't have a release schedule for this yet. We could use a volunteer
to act as the bug release manager!
--Guido van Rossum (home page: http://www.python.org/~guido/)
A new release of the `Mahogany' e-Mail and News client has been made.
Source and binaries for a variety of Linux and Unix systems as well
as binaries for Win32 are available at
You can also get to the download page starting from
NB: My sincere excuses to all people who have written me asking for
Win32 binaries and to whom I couldn't reply because there were
so many of them. For personal reasons I couldn't make the Win32
version as soon as I hoped to.
In this message:
1. Announcing Mahogany Version 0.62
2. Changes Against the Previous Release
Announcing Mahogany Version 0.62
Mahogany is an OpenSource(TM) cross-platform mail and news client. It
is available for X11/Unix and MS Windows platforms, supporting a wide
range of protocols and standards, including POP3, IMAP4 and full MIME
support as well as secure communications via SSL. Mahogany can be
extended far beyond its original functionality using its built-in
Python interpreter and/or its loadable modules (plug-ins).
Mahogany's wealth of features and ease of use make it one of the most
powerful clients available, providing a consistent and intuitive
interface across all supported platforms and an ideal GUI email client
for advanced and novice users alike.
Mahogany includes an extendable address book system supporting
hierarchical organisation of entries, group aliases, searching the
database and easy editing, with support for other programs' address
database formats. Currently Mahogany's native format, (X)Emacs' BBDB
address books and PalmOS address books are supported. LDAP support is
planned for future versions.
Mahogany is written using the OpenSource wxWindows application
framework for GUI C++ applications, building on the GTK+ toolkit on
Unix and native Win32 API under Windows and imap-2000 (c-client)
library developed by University of Washington for mail folder access.
Mahogany is constantly being tested on a variety of Linux systems,
Solaris-sparc and MS Windows. It should compile and work on any modern
Changes Since Release 0.60
Key changes are:
- fixes to several fatal crashes with IMAP servers
- significant speed up of some operations (although more
optimizations are to come)
- availability of Win32 version
- Mahogany is now dual licensed under its Artistic License and GPL
- support for marking message as flagged/important
- "Extract all addresses from message" command
- possibility to import all MBOX folders under the given directory
- possibility to set a hard limit for number of messages retrieved
from a (remote) folder
- folders in the tree can now be rearranged, system folders are at
top by default
- messages can now be sorted by status and by size as well
- title and status bar of folder view are customizable strings which
can include information about the number of new/unread/flagged
- show filtering progress in the status bar
- filters dialog is now more convenient to use
- new mail reporting was made less intrusive
- reading newsgroups doesn't crash the program immediately
- parsing of complex MIME structures fixed
- language autodetection fixed
- fixed crash when viewing messages with wrong date
Please see the CHANGES file in the distribution for an even more
detailed list of changes.
Next, we hope to tackle the following:
- improving the message editor (work in progress)
- full HTML message editing/displaying (almost complete)
- multi-threading to allow network operations to happen in
- PGP/GPG support
- LDAP support
Please direct any queries to mahogany-developers(a)lists.sourceforge.net
and don't hesitate to contact us if you would like to participate in
*** Please note that Mahogany/UNIX is officially in beta state while
*** Mahogany/Win32 is still considered to be in alpha stage (although
*** we use both versions on the daily basis).
There are always some, listed on our bugtracker at
http://mahogany.sourceforge.net/bugz/ and we are working on them.
Hoping you will find Mahogany useful,
python HTTP / XML MS-SQL 2000 database access - v0.1 released.
(damn, even i have trouble spelling it. stupid name. whoever picked
version 0.1 uses HTTP Basic Authentication.
Your Microsoft SQL 2000 and IIS Server can be
configured to require user / password access.
btw, the htmlxmlsql2000 module has exactly the same
format as MySQLdb 0.3.0 (with a couple of features
and functions removed, because i was in a hurry
to get this working!)
in other words, other than the differences in the SQL statement
interoperability (such as SELECT IDENT_CURRENT('tablename') instead of
SELECT LAST_INSERT_ID()), you can replace the module name MySQLdb in your
code with the module name httpxmlsql2000db and expect it to work.
- py-xml-0.6.4 (0.6.2 is known to work, too)
- python 2.0 (other versions not tested)
- MS SQL 2000 (we didn't bother trying with SQL-7, just upgraded)
- MS IIS Server with the SQL-2000 XML isapi component enabled.
----- Luke Kenneth Casson Leighton <lkcl(a)samba-tng.org> -----
"i want a world of dreams, run by near-sighted visionaries"
"good. that's them sorted out. now, on _this_ world..."
I am re-announcing this because at the time of the original announcement,
it was not known that the article would be online. This announcement
includes the new URL:
There is a Python article in the April 2001 issue of the Linux Journal,
"Using Mix-ins with Python". It covers the general topic of mix-in
programming with some comments on various languages, and then dives into
Python specifics including examples.
I used these concepts when creating the MiddleKit component of Webware
(http://webware.sourceforge.net/), which includes a mix-in function in
Get web dev at http://webware.sourceforge.net/
Subject: ANNOUNCEMENT: BayPIGgies meeting Wednesday
The Silicon Valley-San Francisco Bay Area Python Users Group
(BayPIGgies.org) is meeting this Wednesday in Mountain View, CA.
We will be going over what happened at the Python9 conference.
March 21, 2001
Topic: Python9 Conference
- News and events from the conference last week in Long Beach
- Some of the more interesting papers in the proceedings
- Upcoming release of Python 2.1
- Python Software Foundation
- Guido's opening keynote: Python Fits Your Brain
- Bruce Eckel's closing keynote: Why I Love Python
Time and directions available at the website:
Hope to see some of you there!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Silicon Valley-SF Bay Area Python users group: http://baypiggies.org
"Core Python Programming", Prentice Hall PTR, December 2000
wesley.j.chun :: wesc(a)baypiggies.org
cyberweb.consulting :: silicon.valley, ca
Title: Metadata for Python Software Packages
Version: $Revision: 1.6 $
Author: A.M. Kuchling <amk1(a)bigfoot.com>
Type: Standards Track
This PEP describes a mechanism for adding metadata to Python
packages. It includes specifics of the field names, and their
semantics and usage.
Including Metadata in Packages
The Distutils 'sdist' command will be modified to extract the
metadata fields from the arguments and write them to a file in the
generated zipfile or tarball. This file will be named PKG-INFO
and will be placed in the top directory of the source
distribution (where the README, INSTALL, and other files usually
Developers may not provide their own PKG-INFO file. The "sdist"
command will, if it detects an existing PKG-INFO file, terminate
with an appropriate error message. This should prevent confusion
caused by the PKG-INFO and setup.py files being out of sync.
The PKG-INFO file format is a single set of RFC-822 headers
parseable by the rfc822.py module. The field names listed in the
following section are used as the header names. There's no
extension mechanism in this simple format; the Catalog and Distutils
SIGs will aim at getting a more flexible format ready for Python 2.2.
This section specifies the names and semantics of each of the
supported metadata fields.
Fields marked with "(Multiple use)" may be specified multiple
times in a single PKG-INFO file. Other fields may only occur
once in a PKG-INFO file. Fields marked with "(optional)" are
not required to appear in a valid PKG-INFO file, all other
fields must be present.
Version of the file format; currently "1.0" is the only
legal value here.
Example: 'Metadata-Version: 1.0'
The name of the package.
Example: 'Name: BeagleVote'
A string containing the package's version number. This
field should be parseable by one of the Version classes
(StrictVersion or LooseVersion) in the distutils.version
Example: 'Version: 1.0a2'
Platform (multiple use)
A comma-separated list of platform specifications, summarizing
the operating systems supported by the package. The major
supported platforms are listed below, but this list is
POSIX, MacOS, Windows, BeOS, PalmOS.
Binary distributions will use the Supported-Platform field in
their metadata to specify the OS and CPU for which the binary
package was compiled. The semantics of the Supported-Platform
are not specified in this PEP.
Example: 'Platform: POSIX, Windows'
A one-line summary of what the package does.
Example: "Summary: A module for collecting votes from beagles."
A longer description of the package that can run to several
paragraphs. (Software that deals with metadata should not
assume any maximum size for this field, though one hopes that
people won't include their instruction manual as the
Example: "Description: This module collects votes from beagles\n
in order to determine their electoral wishes.\n
Do NOT try to use this module with basset hounds;
it makes them grumpy."
A list of additional keywords to be used to assist searching
for the package in a larger catalog.
Example: 'Keywords: dog puppy voting election'
A string containing the URL for the package's home page.
Example: 'Home-page: http://www.example.com/~cschultz/bvote/'
A string containing at a minimum the author's name. Contact
information can also be added, separating each line with
Example: 'Author: C. Schultz
Universal Features Syndicate
Los Angeles, CA'
A string containing the author's e-mail address. It can contain
a name and e-mail address in the legal forms for a RFC-822
'From:' header. It's not optional because cataloging systems
can use the e-mail portion of this field as a unique key
representing the author. A catalog might provide authors the
ability to store their GPG key, personal home page, and other
additional metadata *about the author*, and optionally the
ability to associate several e-mail addresses with the same
person. Author-related metadata fields are not covered by this
Example: 'Author-email: "C. Schultz" <cschultz(a)example.com>'
A string selected from a short list of choices, specifying the
license covering the package. Some licenses result in the
software being freely redistributable, so packagers and
resellers can automatically know that they're free to
redistribute the software. Other licenses will require
a careful reading by a human to determine the software can be
repackaged and resold.
The choices are:
Artistic, BSD, DFSG, GNU PL, Lesser GNU PL, "MIT/X11",
Mozilla PL, "public domain", Python, Qt PL, Zope PL, unknown,
nocommercial, nosell, nosource, shareware, other
The definitions are:
Python Python 1.6 or higher license. Version 1.5.2 and
earlier are under the MIT/X11 license.
public domain Software is public domain, not copyrighted.
unknown Status is not known
nocommercial Free private use but commercial use not permitted
nosell Free use but distribution for profit by arrangement
nosource Freely distributable but no source code
shareware Payment is requested if software is used
other General category for other non-DFSG licenses
Some of these licenses can be interpreted to mean the software is
freely redistributable. The list of redistributable licenses is:
Artistic, BSD, DFSG, GNU PL, Lesser GNU PL, "MIT/X11",
Mozilla PL, "public domain", Python, Qt PL, Zope PL,
Note that being redistributable does not mean a package
qualifies as free software, 'nosource' and 'shareware' being
Example: 'License: MIT/X11'
This document has been placed in the public domain.
Create full-text indexes and search them
A full-text indexer in Python, that may be used either as a stand-alone
utility, or as a module in larger programs (incl. CGI).
Creates a persistent word dictionary with occurrence rates of words in
files. Matches files containing multiple words in search, with optional
ranking of matches.
License: Public Domain
Requires: zlib (recommended), xml_pickle (optional)
Categories: Python Utilities, CGI Scripts
David Mertz (mertz(a)gnosis.cx)
<a href="http://gnosis.cx/download/indexer.py">Indexer module</a> --
Create full-text indexes and search them
Version 0.6 of gdchart-py is available at:
New in this version: annotations, background images, scatter, and support
for WBMP images.
gdchart-py is a Python interface to GDChart, a library for creating
charts and graphs in PNG, JPEG, and GIF format. Visit the GDChart home page
to get an idea of what it can do:
The Python interface builds on Win32, Linux, Solaris, HP-UX, and probably
other Unices. A pre-build Win32 binary is available at the above URL. The
software is free to use and distribute.
Smart caching of function results
This module allows results of Python functions to be made persistent for
subsequent rapid retrieval. Functions are intercepted, evaluated and
their results are compressed and pickled using cPickle. Subsequent
function calls with same arguments are replaced by the cached results.
If the function or its arguments have been modified it will be
recomputed. Recomputation can also be made dependent on the time stamp
of arbitrary files or it can be triggered explicitly.
This form of caching is very useful for time consuming functions that
are called repetitively, such as database or WEB queries but it will
work for any function which returns picklable objects.
The following paper describes the caching module (along with some
others) in more detail: A Toolbox Approach to Flexible and Efficient
Data Mining Ole M. Nielsen, Peter Christen, Markus Hegland, Tatiana
Semenova and Timothy Hancock. Accepted for the PAKDD-2001 Conference,
Hong Kong, April 2001. Available at
ftp://csl.anu.edu.au/pub/dm/papers/pakdd2001.pdf.gz or by emailing
Requires: zlib (recommended but not essential)
Categories: Python Utilities
Ole M. Nielsen (Ole.Nielsen(a)bigfoot.com)
<a href="http://csl.anu.edu.au/ml/dm/dm_software.html">Caching</a> --
Smart caching of function results