(aka PythonDoc 2.0 release candidate 1)
PythonDoc is a documentation tool for Python, inspired by JavaDoc.
Like JavaDoc, PythonDoc scans your Python code for doc comments,
and generates API documentation in XML and HTML formats. Python-
Doc supports basic JavaDoc tags like @param and @return, and adds
a few Python-specific tags. You can use PythonDoc comments to
describe module-level variables and constants, functions, classes,
methods, and attributes.
PythonDoc 2.0 is a complete rewrite of my xmltoys/PythonDoc tool
from last year. The new version uses a much improved parser (based
on source code scanning rather than introspection), and is designed
to work with Python 1.5.2 and later.
PythonDoc 2.0 beta 3 provides limited support for additional JavaDoc
tags (@author, @version, etc), uses a slightly modified XML format,
works with ElementTree 1.0, supports filename wildcards on Windows,
and only writes XML files if you use the -x option.
Brief description and examples (for an earlier alpha release):
Sample output (using the default "compact HTML" renderer):
Call for Participation
Lightweight Languages Workshop 2003 (LL3)
Saturday, November 8, 2003
MIT, Room 34-101, Cambridge, Mass.
LL3 will be an intense, exciting, one-day forum bringing together the
best programming language implementors and researchers, from both
academia and industry, to exchange ideas and information, to challenge
one another, and to learn from one another.
If you plan to attend, please register as soon as possible. There is
no cost to attend, but we need to know how much food to order.
The workshop will also be broadcast live on the Internet. We are
grateful to Microsoft Research for sponsoring the workshop and
Session I: 10:00-11:00
ACME: Toward a LL Testing Framework for Large Distributed Systems
Dana Moore and Bill Wright
Interactive Web Programming using WASH/CGI
Session II: 11:30-12:30
XS: Lisp on Lego MindStorms
Posters and demos -- details will be posted on the web site
Session III: 2:00-3:30
Bluespec, Language Support for Next-Generation Hardware Design
Rishiyur S. Nikhil
The Virtual Machine of Lua
Luiz Henrique de Figueiredo
Embedding an interpreted language using higher-order functions and types
Session IV: 4:00-5:00
Functional Reactive Programming in Scheme
Ken Anderson, BBN (co-chair)
Jeremy Hylton, Python Software Foundation (co-chair)
Geoffrey Knauth, BAE Systems
Shriram Krishnamurthi, Brown University
Erik Meijer, Microsoft WebData
Dan Sugalski, Perl Foundation
Greg Sullivan, MIT CSAIL
DirsSync is an application which synchronizes two or more directories.
* Graphical interface
* recurses subdirectories
* multiple directories can be specified
* two-way synchronization
* one-way synchronization ("local" to "remote", or vice versa), with
optional deletion on target directory
* synchronizes according to time or file size
* internationalised in English and Italian
Non-features (i.e. what it doesn't do):
* does not filter according to file type
* does not work over FTP
* not suitable as a command-line driven tool
Requires: Python and wxPython
Development Status: 2 - Pre-Alpha - but is quite usable
Environment: Win32 (MS Windows), X11 Applications
Intended Audience: Developers, End Users/Desktop, System Administrators
License: GNU General Public License (GPL)
Natural Language: English
Operating System: Windows, Linux
Programming Language: Python
* sundry minor bug fixes
python-dev Summary for 2003-10-01 through 2003-10-15
This is a summary of traffic on the `python-dev mailing list`_ from
October 1, 2003 through October 15, 2003. It is intended to inform the
wider Python community of on-going developments on the list. To comment
on anything mentioned here, just post to `comp.lang.python`_ (or email
python-list(a)python.org which is a gateway to the newsgroup) with a
subject line mentioning what you are discussing. All python-dev members
are interested in seeing ideas discussed by the community, so don't
hesitate to take a stance on something. And if all of this really
interests you then get involved and join `python-dev`_!
This is the twenty-seventh summary written by Brett Cannon (about to
turn a quarter century old; so young yet so wise =).
All summaries are archived at http://www.python.org/dev/summary/ .
Please note that this summary is written using reStructuredText_ which
can be found at http://docutils.sf.net/rst.html . Any unfamiliar
punctuation is probably markup for reST_ (otherwise it is probably
regular expression syntax or a typo =); you can safely ignore it,
although I suggest learning reST; it's simple and is accepted for `PEP
markup`_ and gives some perks for the HTML output. Also, because of the
wonders of programs that like to reformat text, I cannot guarantee you
will be able to run the text version of this summary through Docutils_
as-is unless it is from the original text file.
.. _PEP Markup: http://www.python.org/peps/pep-0012.html
The in-development version of the documentation for Python can be found
at http://www.python.org/dev/doc/devel/ and should be used when looking
up any documentation on something mentioned here. PEPs (Python
Enhancement Proposals) are located at http://www.python.org/peps/ . To
view files in the Python CVS online, go to
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/ . Reported bugs
and suggested patches can be found at the SourceForge_ project page.
.. _python-dev: http://www.python.org/dev/
.. _SourceForge: http://sourceforge.net/tracker/?group_id=5470
.. _python-dev mailing list:
.. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python
.. _Docutils: http://docutils.sf.net/
.. _reStructuredText: http://docutils.sf.net/rst.html
.. _last summary:
Python-dev had a major explosion in emails thanks to some proposed
changes to list.sort (summarized in `Decorate-sort-undecorate eye for
the list.sort guy`_). That got covered. Some behind-the-scenes stuff
that would not interest the general Python community was left out for my
It looks like I will not have major issues continuing writing the
Summaries in terms of school interfering. The only big issue will be
how long past their closure date does it take me to get them out. In
other words, unless my schoolwork load suddenly becomes heavy
continuously I should be able to keep doing the Summaries until my
personal sanity gives out.
This summary is brought to you by the songs "Insanity_" by `Liz Phair`_
and "`Harder to Breathe`_" by `Maroon 5`_ (note these links require
iTunes_ to be installed; now available on Windows!).
.. _Liz Phair:
.. _Harder to Breathe:
.. _Maroon 5:
.. _iTunes: http://www.apple.com/itunes/
I gave a talk at PyCon 2004 and all I got was respect and admiration
I summarized this last month, but this is important so I am doing it
again (and will continue to mention it until no more proposals are being
is ramping up for 2004 and is putting out a `Call for Proposals`_.
Since PyCon is meant to be very broad-reaching you can propose anything
from a scientific paper to a tutorial.
If you have any inkling to give a talk please send in a proposal. It
can be rough; the key is that what you want to discuss can be understood
from the proposal. So take a look at the link and consider coming to
PyCon as a speaker and not just a attendee.
.. _PyCon: http://www.python.org/pycon/dc2004/
.. _Call for Proposals: http://www.python.org/pycon/dc2004/cfp.html
`PyCon DC 2004: Call for Proposals
As stated on the SIGs page, "The Python `Web SIG`_ is dedicated to
improving Python's support for interacting with World Wide Web services
and clients." If there is some web-related functionality that you think
Python should, this is the place to discuss it. If you think an
existing Python module could stand a redesign then this is the proper
forum for your ideas.
.. _Web SIG: http://www.python.org/sigs/web-sig/
`Any movement on a SIG for web lib enchancements?
I have seen the future and it includes 2.3.3
Anthony Baxter, release manager for Python `2.3.1`_ and `2.3.2`_, is
already planning a 2.3.3 release in about three months time. He
initially suggested that the goal of this release should be to have
Python build on as many platforms as possible.
Michael Hudson listed "HPUX/ia64, various oddities on Irix" as the major
troublemakers. He suggested that a sustained push to fix these build
problems happen instead of trying to do it last-minute. Michael also
thought it would be a good idea to try to find experts on the trouble
platforms instead of having someone getting access to some machine and
floundering since they don't know the OS.
Skip Montanaro quickly chimed in with
http://www.python.org/cgi-bin/moinmoin/PythonTesters which is a wiki
page that lists people who are available to help with testing on various
OSs. Please have a look and if you think you could help out on an OS
.. _2.3.1: http://www.python.org/2.3.1/
.. _2.3.2: http://www.python.org/2.3.2/
Helping you help us
In response to Martin v. Löwis' email on how to handle patches, Michael
Bartl expressed his disappointment that nothing had happened to his
patches. It was explained to him that because of time restraints on
python-dev that it can take time for people to get to all of the
patches, but that his work was greatly appreciated and would eventually
be looked at. Since the email Martin has managed to take a look at them
(even accepted one).
The question of searching on SourceForge_ through the tracker items also
came up. There is a search box on the left side of the page, but it is
not extensive. Better than nothing.
I also posted an essay I wrote that is meant to act as a guide to how
Python is developed and how anyone can help with the development
regardless of abilities. You can look at the email below in the "Draft
of an essay on Python development" thread referenced below in
"Contributing threads". Hopefully it will end up on python.org once it
is in its final form.
`Patches & Bug help revisited
`Draft of an essay on Python development (and how to help)
Making DLLs fatter for lower file dependency
Thomas Heller suggested adding more modules to the Windows DLL as
built-in so as to cut back on the number of files required to get Python
to run (py2exe_ stands to benefit from this). The issue of having a
larger DLL to have to load into memory was brought up, but Martin v.
Löwis said that DLLs only load into memory what is needed to run and not
the entire DLL.
The issue of making the overall DLL larger in terms of disk space was
brought up, but the worry was partially minimized when the list of
modules to add was limited to small modules that do not have external
But zlib might break that last rule in order to allow importation from
compressed zip files. The idea of integrating the zlib source into the
Python tree was brought up, but shot down for licensing issues on top of
keeping the code synchronized.
.. _py2exe: http://py2exe.sf.net/
`buildin vs. shared modules
Decorate-sort-undecorate eye for the list.sort guy
Raymond Hettinger suggested adding built-in support for the
decorate-sort-undecorate (DSU) sorting idiom to list.sort (see the
Python Cookbook recipe at
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52234 which is
recipe 2.3 in the dead tree version or Tim Peters' intro to chapter 2
for details on the idiom). After a long discussion on the technical
merits of various ways to do this, list.sort gained the keyword
arguments 'key' and 'reverse'.
'key' takes in a function that accepts one argument and returns what the
item should be sorted based on. So running ``[(0,0), (0,2),
(0,1)].sort(key=lambda x: x)`` will sort the list based on the second
item in each tuple. Technically the sort algorithm just runs the item
it is currently looking at through the function and then handles the
sorting. This avoids having to actually allocate another list. If
'key' and 'cmp' are both provided then 'key' is called on the items to
be sorted and the function's return values are then passed to 'cmp'.
'reverse' does what it sounds like based on whether its argument is true
list.sort also became guaranteed to be stable (this include 'reverse').
A discussion of whether list.sort should return self came up and was
*very* quickly squashed by Guido. The idea of having a second method,
though, that did sort and returned a copy of the sorted list is still
New Python 2.3.2 Windows binary
Some invalid DLLs made it into the 2.3.2 Windows binary distribution by
accident. It seems to mostly affect Windows 98 and NT 4 users. The
binary has been fixed and put up online. You can tell if you downloaded
the fixed version by checking the filename; the new one is named
Python-2.3.2-1.exe (notice the "-1").
`Python-2.3.2 windows binary screwed
A call for cool itertools additions
Have an idea for something that should be added to itertools? Read
see if it matches the criteria. If it does send it off to Raymond
pyCatalog is a Python, MySQL, wxPython, Reportlab application
specifically usable in library and information centers. It simply
produces book catalog and card catalog in pdf format rendered using
reportlab. The program takes MARC file as its source data.
pyCatalog is a Python, MySQL, wxPython, Reportlab application
specifically usable in library and information centers. It simply
produces book catalog and card catalog in pdf format rendered using
reportlab. The program takes MARC file as its source data. pyCatalog -
is a combination of Python, wxPython, Reportlab, and python-mysql
application that renders Book and Card Catalog.
Catalog output is one of the core output needed in library software
today. Because open source system for libraries as of this date didn't
have this kind of feature as most other proprietary library software
have today. This includes Koha, Obiblio, and PhpMyLibrary. By making
this generalized solution, those open source system for libraries
mentioned will be able to take advantage from this application because
the software is not centered on one library system. The application
simply needs a MARC file in order to output the desired book and card
catalog. The application was written in Python to make it platform
independent. Thus it will run in Linux, Mac, and Windows environment.
Other utilities added include python-mysqldb, wxPython, reportlab.
The application require MySQL database to manipulate the order of the
catalog. Card catalog is a 3x5 page size output that comprises one
book bibliographic entry. Book catalog is a full page output that
comprise 1 or more bibliograrphic entry. It was named pycatalog,
simply because it is written entirely in python, and catalog wholly
describes the purpose of this application. I wanted to make this
application open source because I believe open source developers will
put this application above all expensive proprietary software for
libraries. And will make this application fully-functional, I may not
have that complete resource to create a world-accepted catalog
generator but I think ideas and contributions from the developers
around the world would help improve this application. I brought this
idea to the public because of the necessity I felt during my project.
I have searched all day long at Google to find a catalog generator but
I find nothing. Hope this application would be able to help small to
large scale libraries around the world.
It simply needs MARC file to output thier desired catalog. MARC means
Machine Readable Catalog (The MARC formats are standards for the
representation and communication of bibliographic and related
information in machine-readable form.) This is simply a machine
readable bibiliographic description of materials like book, newspaper,
Polerio T. Babao III
Open Source Project
SCons is a software construction tool (build tool, or make tool) written
in Python. It is based on the design which won the Software Carpentry
build tool competition in August 2000.
Version 0.93 of SCons has been released and is available for download
from the SCons web site:
Or through the download link at the SCons project page at SourceForge:
RPM and Debian packages and a Win32 installer are all available, in
addition to the traditional .tar.gz and .zip files.
WHAT'S NEW IN THIS RELEASE?
IMPORTANT: Release 0.93 contains the following interface changes:
- Construction variables may now be expanded anywhere within an
argument to a Builder or a construction environment method,
not just in specific places like file prefixes and suffixes.
This may cause variable interpolation if a file name or argument
contained a '$' (dollar sign).
- The long-obsolete GetCommandHandler() and SetCommandHandler()
functions have been removed.
- The ParseConfig() global function has been deprecated in favor
of the new env.ParseConfig() method. The global function will
be removed in some future release.
See the release notes for more information about these changes.
This release adds the following features:
- SCons now supports calling almost all functionality either
through a global function or a construction environment method:
- The following global functions have now had corresponding
construction environment methods added:
Action(), AddPostAction(), AddPreAction(), Alias(), Builder(),
BuildDir(), CacheDir(), Clean(), Configure(), Default(),
EnsurePythonVersion(), EnsureSConsVersion(), Environment(),
Exit(), Export(), FindFile(), GetBuildPath(), GetOption(),
Help(), Import(), Literal(), Local(), Platform(), Repository(),
Scanner(), SConscriptChdir(), SConsignFile(), SetOption(),
SourceSignatures(), Split(), TargetSignatures(), Tool(), Value().
- The following construction environment methods have now had
corresponding global functions added:
AlwaysBuild(), Command(), Depends(), Ignore(), Install(),
InstallAs(), Precious(), SideEffect() and SourceCode().
- The following default Builders have now had corresponding global
CFile(), CXXFile(), DVI(), Jar(), Java(), JavaH(), Library(),
M4(), MSVSProject(), Object(), PCH(), PDF(), PostScript(),
Program(), RES(), RMIC(), SharedLibrary(), SharedObject(),
StaticLibrary(), StaticObject(), Tar(), TypeLibrary() and Zip().
- Package management tools on AIX and Solaris are now used to find
where the C and C++ compilers are installed.
- New $CCVERSION and $CXXVERSION variables record the compiler
version for many C and C++ compilers.
- A new $JARCHDIR variable supports changing to a directory using
the jar -C option.
- SCons now detect Java manifest files when using jar, and
specifies them using the jar m flag.
- Directories may now be used as Builder sources, and correctly
trigger a rebuild when any file underneath the directory changes.
- A new SConsignFile() function allows configuration of a single
file to hold all build signatures, instead of a separate
.sconsign file in each directory.
- The CheckHeader(), CheckCHeader(), CheckCXXHeader() and
CheckLibWithHeader() configure checks can now take a list of
header files when more than one #include line is necessary.
- SCons can now decide if a .tex file is TeX or LaTeX, and will
re-run latex or run bibtex as needed.
- Directories can now be the targets, sources or dependencies of the
Depends(), Ignore(), Precious() and SideEffect() methods.
- The env.WhereIs() method can now take explicit "path" and
The following fixes have been added:
- .S, .spp and .SPP assembly-language files are now properly
scanned for C-preprocessor dependencies.
- The scons.py and scons.bat files now also look for the SCons
modules in the site-packages directory as well.
- SCons now properly re-scans dependencies in generated or
installed header files.
- The -Q option now only suppresses the "Reading" and "Building"
progress messages; it was incorrectly suppressing other messages
- The C scanner now finds dependencies when there is no space
between the #include and the opening double quote or angle bracket.
- EnsurePythonVersion() now handles alphanumeric Python version strings.
- The env.Append() method now suppresses null values when appropriate.
- ParseConfig() now appends values properly regardless of the initial
values of $CCFLAGS, $CPPPATH, $LIBPATH and $LIBS.
- If there were any build errors, the final progress message now says
"...terminated because of errors" instead "...done building targets."
- "rm" on Win32 systems is only used if Cygwin Python is being used.
- Qt is now properly detected on the local system in all cases.
- Configure checks now support BooleanType as a legal return value.
- Attempts to call a Configure check from within a Builder function
now generate an error message.
- Builders can now be called when a Configure context is open.
- Trying to use the -j option under Python versions without parallel
build support (threading) now issues a warning and carries on.
Performance has been improved as follows:
- A new thread pool implementation improves parallel build
performance and handling of keyboard interrupts.
The documentation has been improved:
- The first release of the SCons User's Guide is now available multiple
formats. Follow the appropriate link for your desired format from
the SCons documentation page at:
- The lists of global functions and construction environment methods
in the man page have been combined and alphabetized.
Distinctive features of SCons include:
- a global view of all dependencies; no multiple passes to get
everything built properly
- configuration files are Python scripts, allowing the full use of a
real scripting language to solve difficult build problems
- a modular architecture allows the SCons Build Engine to be
embedded in other Python software
- the ability to scan files for implicit dependencies (#include files);
- improved parallel build (-j) support that provides consistent
build speedup regardless of source tree layout
- use of MD5 signatures to decide if a file has really changed; no
need to "touch" files to fool make that something is up-to-date
- easily extensible through user-defined Builder and Scanner objects
- build actions can be Python code, as well as external commands
An scons-users mailing list is available for those interested in getting
started using SCons. You can subscribe at:
Alternatively, we invite you to subscribe to the low-volume
scons-announce mailing list to receive notification when new versions of
SCons become available:
Special thanks to J.T. Conklin, Charles Crain, Christian Engel, Sergey
Fogel, Ralf W. Grosse-Kunstleve, Stephen Kennedy, John Johnson, Clark
McGrew, Bram Moolenaar, Gary Oberbrunner, Gerard Patel, Marko Rauhamaa,
Anthony Roach and Christoph Wiedemann for their contributions to this
On behalf of the SCons team,
Officially this is an alpha release, but it's actually stable code:
the only reason for the 'alpha' label is that I'm waiting for Jeremy
Hylton to look at RFE http://www.python.org/sf/759792 -- if that needs
interface changes, so will ClientCookie. 0.3.x is no longer
supported. See the following for how to switch from 0.3.x to 0.4.x:
Changes since 0.4.3a:
* Cleaned up MSIECookies delayloading. All methods should now work,
but anything that causes iteration over all cookies will not cause
loading of delayloaded cookies from disk. If you really want to
iterate over *all* cookies (rather than just those currently in
memory), call read_all_cookies.
* Lots of MSIECookieJar bug fixes.
* Corrected domain-blocking documentation ("acme.com" doesn't match
".acme.com"). Also, changed wording (from "x matches y" to "y
matches x"), to agree with the ordering actually used in the code
(since the domain-matching algorithms used are not commutative,
this was confusing).
* Fixed loading from file for cookies with no name (previously, the
name and value were reversed).
* Assorted other bug fixes.
* Split up set_ok and return_ok methods from DefaultCookiePolicy to
make it easier to inherit its implementation.
* Implemented strict_domain argument to DefaultCookiePolicy
Requires Python >= 1.5.2.
ClientCookie is a Python module for handling HTTP cookies on the client
client side, useful for accessing web sites that require cookies to be
set and then returned later. It also provides some other (optional)
useful stuff: HTTP-EQUIV and Refresh handling, automatic adding of the
Referer [sic] header and lazily-seek()able responses. These extras are
implemented using an extension that makes it easier to add new
functionality to urllib2. It has developed from a port of Gisle Aas'
Perl module HTTP::Cookies, from the libwww-perl library.
response = ClientCookie.urlopen("http://foo.bar.com/")
This function behaves identically to urllib2.urlopen, except that it deals
with cookies automatically. That's probably all you need to know.
fauxident is a small Python script that will act as an extremely
naive ident server, answering all ident requests with a consistent
response -- either an ERROR or a USERID response. This can be
advantageous on systems where running a true identd is
unavailable, where it would be a security risk, or when
masquerading firewalls are in use, where multiple machines are
involved behind the firewall and running a proper ident system is
not an option.
Getting the software
The current version of fauxident is 1.2.1.
The latest version of the software is available in a tarball here:
The official URL for this Web site is
fauxident requires Python 2.x or greater and a Unix or Unix-like
This code is released under the GPL.
Release history [since 1.2]
- 1.2.1; 2003 Oct 21. User name permuting was accidentally on by
default; corrected missing -m entry in usage information.
Erik Max Francis && max(a)alcyone.com && http://www.alcyone.com/max/
__ San Jose, CA, USA && 37 20 N 121 53 W && &tSftDotIotE
/ \ We're the stars on Earth
matplotlib is a 2D plotting package for python with a matlab
compatible syntax and output tested under linux and windows platforms.
matplotlib-0.30 is available for download at
http://matplotlib.sourceforge.net, and has many new features since the
last major release.
matplotlib now supports postscript and GD output, as well as the
traditional GTK backend. The postscript backend goes a long way
towards the goal of acheiving publication quality output. The GD
backend allows you to use matplotlib even in environments with no X
server, such as for a web application server serving dynamic charts.
With the help of Andrew Straw, matplotlib now has log axis
capabilities, with new commands semilogx, semilogy and loglog
With the help of Charles R. Twardy, matplotlib now has a matlab
compatible legend command. See
Numerous bug fixes and minor additions
DPI parameter allows multiple output resolutions with correct
Several bug fixes in GTK interactive mode using
Multiple ways to specify colors, including matlab compatible format
strings, RGB tuples, and html-style hex color strings
Rewrite of line class for much greater compatibility with matlab
handle graphics commands and flexibility in choosing line styles and
See http://matplotlib.sourceforge.net/screenshots.html for screenshots
and http://matplotlib.sourceforge.net/whats_new.html for more detailed
information on what's new.