I've created a new mailing list for users of the ZConfig configuration
library. (Yes, there was a request for such a beast!) The mailing list is
run using Mailman at Zope.org; the subscription page is available at:
ZConfig is a configuration library intended for general use. It supports a
hierarchical schema-driven configuration model that allows a schema to
specify data conversion routines written in Python. ZConfig's model is very
different from the model support by the ConfigParser module found in Python's
standard library, and is more suitable to configuration-intensive
ZConfig schema are written in an XML-based language and are able to "import"
schema components provided by Python packages. Since components are able to
bind to conversion functions provided by Python code in the package (or
elsewhere), configuration objects can be arbitrarily complex, with values
that have been verified against arbitrary constraints. This makes it easy for
applications to separate configuration support from configuration loading
even with configuration data being defined and consumed by a wide range of
The current version of ZConfig is version 2.2. More information about ZConfig
can be found at the project page:
or in the wiki:
ZConfig is covered by the Zope Public License, version 2.0. See the file
LICENSE.txt in the distribution for the full license text.
Fred L. Drake, Jr. <fdrake at acm.org>
PythonLabs at Zope Corporation
EuroPython news update
EuroPython is the European Python and Zope Conference. This year in
its third edition, we are holding the conference in the beautiful
locale of Göteborg, Sweden. Hundreds of Python users and Zope users
- If you still want to submit a talk, note that the talk submission
deadline is approaching very rapidly. You have until monday the 26th
of april to submit your talk proposal. As an extra incentive, note
that speakers participate at a reduced fee.
- The early bird registration deadline is also very near now; after
may 1st the rate will go up by 60 euros from 160 to 220. We also
still have (very) cheap accomodation available, but this is running
out quickly. So please register now!
- The conference program is really shaping up nicely! We'll have
tracks on topics ranging from core python hacking to social skills,
and of course Zope. There will be tutorials, BoFs, lightning talks
and panel discussions. Many of us are arriving early and/or staying
on after the conference for a couple of days for sprints or other
- Our keynote speakers will be Mark Shuttleworth and Guido van
Mark Shuttleworth was among other things what we think is the first
Python programmer in space. He is also is the sponsor of
the schooltool project to develop an open source school
administration system in Python. More about about him can be found at
If you don't know who Guido van Rossum is, you really need to come
to EuroPython to find out and meet him.
More information can be found at http://www.europython.org. See you at
This is an article I wrote that looks at how to add scripted behaviour
to ant builds. It details the steps to write a custom Ant task in
Jython, compile it and install it into Ant so it can be used as any
other task in an ant build. The article also takes a quick look at an
alternate implementation using Groovy. You can read it here:
I'm pleased to announce the release of my program
mma - Musical MIDI Accompaniment
version: Beta 0.7
MMA is a accompaniment generator -- it creates midi tracks
for a soloist to perform over from a user supplied
file containing chords and MMA directives.
MMA is very versatile and generates excellent tracks. It comes
with an extensive user-extendable library with a variety of
patterns for various popular rhythms, an extensive user manual,
and several demo songs.
MMA is a command line driven program. It creates MIDI files
which need a sequencer or MIDI file play program.
MMA is written in Python. You'll need version 2.2 of Python
for MMA to function.
MMA is supplied in 4 tar.gz archives. Included:
mma-bin -- the main script and library files).
mma-html -- documentation in HTML format.
mma-ps -- documentation in Postscript format.
mma-songs -- a collection of about 120 songs in MMA format.
If you get the entire download package it is well under 1meg in size.
MMA is currently in BETA. We are looking for lots of help in debugging
the program, creating songs for distribution, and new and improved
Best of all, MMA is free. It is released under the terms of the GNU
public license. It has been developed on a Linux platform, but should
be usable on just about any system.
MMA is available on my personal home page:
If you have any questions or comments, please send them
Beta 0.7: new packaging, HTML docs, Solo/Melody tracks, dynamic track
allocation, general cleanups and a few new commands. Also, make
note of the NEW home site and my new email address!
Bob van der Poel ** Wynndel, British Columbia, CANADA **
AsciiDoc is an uncomplicated text document format for writing short
documents, articles, books and UNIX man pages.
AsciiDoc files can be translated to HTML (with or without
stylesheets), DocBook (articles, books and refentry documents)
and LinuxDoc using the asciidoc(1) command.
AsciiDoc is highly configurable: both the AsciiDoc source file syntax
and the backend output markups (which can be almost any type of
SGML/XML markup) can be customized and extended by user.
Python 2.1 or higher.
The latest AsciiDoc version, examples and online documentation can be
found at the AsciiDoc website http://www.methods.co.nz/asciidoc/
AsciiDoc is also hosted at the SourceForge at
Stuart Rackham <srackham(a)methods.co.nz>
SciPy 0.3 has been released and binaries are available from the
Changes since the 0.1 version (0.1 enjoyed a wide release, there was a
version 0.2 that had limited exposure) include the following:
- general improvements: Added utility functions for constructing arrays
by concatenation, intended mainly for command-line use. Added bmat
constructor for easy creation of block matrices. Added mat constructor
for constructing matrices (where * is matrix multiplication). Added many
PIL utility functions so that if the PIL is installed, image loading,
saving, and other operations are available. Added scipy.info, which
handles dynamic docstrings and class help better than python's help command.
- documentation: much improved
- sparse: superLU upgraded to 3.0
- optimize: Added non-linear conjugate gradient algorithm. Improvements
to BFGS algorithm and Wolfe-condition line-search. Added two CONSTRAINED
optimization techniques. Added simulated annealing and brute-force
optimization strategies and Powell's method. Added many very good 1-D
- stats: Added many statistical distributions. Many continuous and
discrete random variables are available with a simple mechanism for
adding new ones. Added several statistical tests.
- special: Added MANY new special functions. |general_function| renamed
to |vectorize| and moved to scipy_base. Improved the way domain errors
are handled (user specified display of problems). More tests on special
- fftpack: replaced with fftpack2--can optionally be configured to
- io: Reading of MATLAB .mat files (version 4 and 5) supported. Writing
version 4 .mat files supported. Added very flexible and general_purpose
text file reader. Added shelving save operation to save variables into
an importable module. Routines for reading and writing fortran-records.
- linalg: Linear algebra is greatly improved over SciPy 0.1. ATLAS is
now optional (but encouraged). Most lapack functions have simplified
interfaces (all lapack and blas available). Matrix exponentials and
other matrix functions added.
- signal: Added support for filter design and LTI system analysis.
- xplt: Updated xplt to use newer pygist so that Windows platform is
supported. Addition of several plotting types.
- integrate: added another ODE integrator. Added romberg integration
and several other integration approaches.
The complete release notes can be found here:
You'll also notice that scipy.org is now a spanking new Plone portal
(http://www.plone.org -- keep up the good work, plone folks).
This is the first binary release in a long time and we hope to increase
the frequency to every 6 months or so.
If you'd like to follow or join the community, you can subscribe to the
mailing lists here:
BTW SciPy is:
SciPy is an open source library of scientific tools for Python. SciPy
supplements the popular Numeric module, gathering a variety of high
level science and engineering modules together as a single package.
SciPy includes modules for graphics and plotting, optimization,
integration, special functions, signal and image processing, genetic
algorithms, ODE solvers, and others.
A C-Python 2.3.3 Patch to Enable Python Function Subclassing.
Experimental Version 1.0
The source code patch and a recompiled python23.dll for win32
can be found at:
(size 64,102 bytes)
(size 500,118 bytes)
For the source code patch the Python 2.3.3 final source code
available at www.python.org and a compatible C compiler.
For the win32 binary the Windows version of Python 2.3.3 .
This is an experimental patch which contains modified python
interpreter source code files that permit function subclassing.
The python def statement is also extended to simplify creation
of subclass instances. Eg.:
from types import FunctionType
def __call__(self, *args, **kwds):
return super(FunctionSubType, self).__call__(*args, **kwds)
def (FunctionSubType) fn(x): # optional '(<class>)' gives subclass
fn(12) # prints 'Hello' then returns 24
The optional class specifier works with any expression that evaluates
to a callable accepting the same five arguments as types.FunctionType.
The parenthesis are mandatory. The above syntax was chosen because
it is easy to implement.
Why Function subclassing?
Function subclassing simplifies special method creation. Normally this
is done using wrapper classes like staticmethod. The following is the
from __future__ import division
from types import FunctionType
def __get__(self, object, type):
# Using it is simple:
# I know this example would be better done with a class method, but
# it is just a simple example. :-)
def __init__(self, x, y):
self.x = x
self.y = y
def (staticfunction) Normal2(x, y): # Special constructor
length = (x**2 + y**2)**0.5
return Vector2(x/length, y/length)
One can write a static method mixin:
"""Make a function a static method"""
def __get__(self, object, type):
"""Ensure all arguments are positive numbers"""
def __call__(self, *args):
for i in args:
if i < 0:
raise TypeError, "Requires positive number arguments"
return super(PosFunction, self).__call__(*args)
class StaticPosIntFunc(StaticMixin, FunctionType): pass
def (StaticPosIntFunc) Normal2(x, y):
It is a matter of opinion whether or not this approach is more elegant
than using wrapper classes. The best way to decide is to try it yourself.
There is less than a week's time left to submit a talk for EuroPython!
If you want to give a talk, you have until next week monday (26th of
april) to submit talks.
Please look here:
for an overview of the tracks available and please submit your talk. A
talk submission just needs a short summary about what your talk is going
to be about.
Note that speakers get a reduced fee for conference admission! Note also
that the early bird registration deadline is not far away either (may 1).
More about EuroPython:
Call for an Impeachment Inquiry of Bush and Cheney,
Get Congress to Take Action
Sign our online Petition and read below for more information:
HEY DUDE WHERE'S MY BUDDY!!!???
COME BACK HOME MICHAEL!!!
Ok Michael, you've had your realpolitik fling with ex-General Wesley
Clark. Your endorsed Presidential candidate in the Democratic Primaries
has withdrawn. It is time for you to come home, to join your buddies and
resume your only genuine role which is that of defiance and resistance.
Compliance and assistance with the Democrats does not accord with your
past, your character, your bold writings and, most memorably, your long
corrosive assaults on the Party that betrayed the working classes and
plunged our country into corporate globalization. Remember, Michael,
you're the flinty man from Flint, Michigan. You've never forgotten your
roots. The heady Hollywood, Manhattan scene with the celebrities and
Academy Awards have never gotten to your head but rather have gotten
into your deserving pockets. How we all recall your standing before one
billion people in Los Angeles at the televised Academy Awards in 2003
and, breaking the customary cant of the awardees, throwing the gauntlet
down to George W. Bush and his "fictitious" war mongering.
Now the War has become a quagmire, with both Republicans and Democrats
complicit (check the votes in Congress). The Draft may be on the way. So
what are you doing going on the Al Franken Show very nearly breaking
down when Al Gore (he of the pro NAFTA/GATT, anti-worker, regime-change,
Iraq-bombing, lethal sanctions on half a million children
Administration) called and thought you were apologizing. You have
nothing to apologize for, Michael. Gore has a lot to apologize
for-blowing the election he won in Florida and the country as a whole
and for blowing, with Bill Clinton, the many opportunities the
rich-booming Nineties and the collapse of the Soviet Union gave this
country to turn a peace dividend into a pro-worker, pro-environment,
pro-consumer and anti-poverty resurgence.
Come back and join our Presidential campaign, Michael. Talk to those
"Reagan Democrats"-those 35% of union members who still vote Republican
and against their own interests-as only you can. Michael, if you go
pumping for the Democratic Party this year, just what are you going to
say to the unemployed steelworkers near Sparrows Point in Maryland? To
the megathousands of laid off textile and furniture workers in North and
South Carolina? To the abandoned auto workers waiting and waiting near
their empty factories that went to repressive countries? To the millions
of blue-collar workers, who fought our wars, only to learn that the two
parties won't fight for their company pensions and health insurance? Are
you going to tell them how the Democratic Party pushed through the WTO,
let their pensions erode or disappear, were too busy collecting checks
from the corporate bosses to pay attention to the corporate crime wave
that looted and drained trillions of dollars from millions of workers,
their retirement and small investments? Will you tell them that the
cowardly Democrats, who couldn't win the fewer elections they are now
not losing without the labor vote, won't even mount a determined drive
to repeal the notorious, union-blocking Taft Hartley Act?
How can you be free to be what you are, or to depress Bush's vote, to
jolt into consciousness the moribund Democratic Party?
Hey Dude, join your real buddies! The ones you may be thinking about
just don't fit either your message, your vision, or our website
Come back home Michael. The workers and the youth of America are looking
P.S. Will you put this invitation on your website and see how your fans
react to Michael Moore returning to the Nader 2004 presidential
campaign? Patti Smith will reserve a big singing spot, for you, on the
stage for the customary finale, PEOPLE HAVE THE POWER.
Wednesday April 14, 2004
Join the Call for an Impeachment Inquiry of Bush and Cheney
Help us Get Congress to Take Action
You can help the call for an impeachment inquiry of President Bush and
Vice President Dick Cheney. Sign our online Petition.
George W. Bush and Dick Cheney should be impeached for two reasons:
They led the United States into an illegal, unconstitutional war in Iraq.
They misled the Congress and the American people with five falsehoods that led to war.
All it takes is one Member of the House of Representatives to call for
an Impeachment Inquiry to start the process to investigate the two
grounds. If the House then votes by a simple majority for Articles of
Impeachment, the Senate would then undertake a trial of the President
and Vice President. They would only be convicted, and impeached, if
two-thirds of the Senate agrees.
Party of Peru (Shining Path/Sender Luminoso) and the Kurdish
Workers Party (PKK) are are closely associated with RIM. (The PKK is no
longer a formal member of RIM; however, it was one of RIM's founders. The
Shining Path is still a member.) Other groups that comprise the
Revolutionary Internationalist Movement are the Communist Party of
Turkey/Marxist-Leninist, the Union of Iranian Communists (Sarbedaran)and the
Nepal Communist Party.
The RIM via its publication A WORLD TO WIN declared its belief in the
Palestinian intifada. The February 28, 2002, edition stated "the
Revolutionary Internationalist Movement once again reaffirms its unwavering
support .and calls on all revolutionary and progressive people to step up
their actions on (the Palestinians') behalf." Another edition advised
Palestinians to "link up with .the parties and organizations that make up
the Revolutionary Internationalist Movement. With the weapon of
Marxism-Leninism-Maoism and its military strategy, people's war, the
Palestinian people's fight will surely become .more integral part of the
world revolution, hastening the day when imperialism, Zionism .meet their
These Maoist terrorist organizations are financing their activities by
trafficking in controlled substances. According to December 13, 2000,
testimony by Frank Cilluffo, to the U.S. House Committee on the Judiciary
Subcommittee on Crime, the Kurdistan Workers Party (PKK) " is heavily
involved in the European drug trade, especially in Germany and France.
French law enforcement estimates that the PKK smuggles 80 percent of the
heroin in Paris." Cilluffo is Deputy Director, Global Organized Crime
Program Counterterrorism Task Force at Washington, D.C.'s Center for
Strategic and International Studies.
This same testimony reveals the Nepal Communist Party, ".turned to drug
trafficking for funding. Nepal serves as a hub for hashish trafficking in
Asia." The CIA Fact Book lists Nepal as a major source for heroin from