See http://gmpy.sourceforge.net/ for details.
What is it: a wrapper for the GMP library, to provide multi-precision
arithmetic for Python. Multi-precision floats, and unbounded-precision
rationals, are not present in stock Python; multi-precision integers
('long') are, but gmpy's version of multi-precision integers is faster
for some operations (NOT all -- used to be, but Python 2.3 did serious
enhancements to some operations on longs) and provides lots of nifty
pre-packaged additional functions.
Minor changes and bug-fixes since the latest 0.9 pre-alpha; support for
Python 2.3. The Windows binary release is now for Python 2.3 _only_ (if
you're stuck with Python 2.2 on Windows, you can keep using gmpy 0.9
pre-alpha and not really suffer from that). Known bug on Windows: the
scan0 and scan1 functions appear broken (perhaps related to the lack of
a GMP 4.0 library for Windows -- haven't found one around yet).
The Cation application framework (version 1.0.14) is now available and
in the public domain. Get it at svn://casadeamor.com/cation/trunk
Cation is a generic, lightweight application framework. Use it to build
the "View" in an MVC application. This release, however, only provides
tools for web applications.
Supported web servers: IIS+ASP, Apache2+mod_python, and WSGI
1. Thread-safe application state management
2. Built-in Logging
3. Configuration data management
4. Workers for getting things done on a schedule, possibly recurring
5. Startup/shutdown functions
6. Registry of active user interfaces
7. Simple but powerful HTML Assembly mechanism (or use your own!)
Cation welcomes your use and feedback as an application developer.
Cation also welcomes framework developers. New code for additional
webservers, GUI's, dispatch algorithms, log styles, configuration
parsers, and standard Workers will be gladly reviewed for inclusion in
future releases. Drop me an email if you feel so inclined.
Announcing urwid 0.8.1
Urwid home page:
New in this release:
- Support for monochrome terminals
(and for terminals that think they are monochrome *cough*OSX)
- Interactive terminal input and output testing
(Please let me know if urwid's not catching your terminal's keycodes)
- Unit testing used in original development
- Fix for browse example program under OSX with python2.2
Urwid is a curses-based UI/widget library for Python. It features fluid
interface resizing, multiple text layout options, simple markup for
attributes, powerful scrolling list boxes and flexible edit boxes.
Urwid maximizes the use of your available screen real estate. It does
*not* provide code for box drawing or simulated drop shadows. It aims to
make writing professional, responsive console applictions easier.
Urwid is licensed under the GNU GPL.
Ian Ward <ian#excess,org>
<P><A HREF="http://excess.org/urwid/">urwid 0.8.1</A> - curses-based UI/widget library (29-Oct-04)
ctypes 0.9.2 released - Oct 28, 2004
ctypes is a ffi (Foreign Function Interface) package for Python
2.3 and higher.
ctypes allows to call functions exposed from dlls/shared libraries
and has extensive facilities to create, access and manipulate
simple and complicated C data types in Python - in other words:
wrap libraries in pure Python. It is even possible to implement C
callback functions in pure Python.
ctypes runs on Windows, MacOS X, Linux, Solaris, FreeBSD, OpenBSD.
It may also run on other systems, provided that libffi supports
On windows, ctypes contains a ctypes.com package which allows to
call and implement custom COM interfaces.
If you download the source distribution, please choose the ZIP
file for Windows, and the .tar.gz file for other systems.
These archive have different contents!
Changes in 0.9.2
Fixed several bugs and memory leaks.
ctypes is now tested on Windows, Linux (x86 and x86_64), OpenBSD
and Mac OS X.
Implemented some helper functions: memmove, memset, string_at, wstring_at.
The former act as their C library counterpart, the latter two allow
to read a zero-terminated (wide) strings at a certain address.
Implemented a cast(cobj, ctype) function, which creates a new object
of the specified ctype from an existing object.
ctypes now explicitely allocates executable memory for the callbacks
it creates, this makes it work correctly on platforms where
executing data is normally forbidden (OpenBSD, Win XP SP2 on AMD 64).
Fixed the unicode handling on non-windows platforms.
Bit fields in structures and unions are now implemented.
For a bit field, one would specify the width in bits as the third
part in the _fields_ list like this:
_fields_ = [("anInt", c_int),
("aBitField", c_int, 3)]
POINTER(None) now returns c_void_p. This change was made for easier
code generation, and makes sense since 'None' is the ctypes way to
Detailed changelogs are in CVS:
The ultimate purpose of the 0.9 release series is to shake out the
remaining bugs, especially on platforms I have no access to, and
to target a rock stable ctypes 1.0 release.
When ctypes 1.0 is released, the com framework will be split off
into a separate framework named 'comtypes'.
Downloads are available in the sourceforge files section
Separate source distributions are available for windows and non-windows systems.
Please use the .zip file for Windows (it contains the ctypes.com framework),
and use the .tar.gz file for non-Windows systems (it contains the
complete cross-platform libffi sources).
Binary windows installers, which contain compiled extension
modules, are also available, be sure to download the correct one
for the Python version you are using.
This is a quick note to let you know that registrations for the Australian
Open Source Developers' Conference are now open. This conference will be
run on the 1st - 3rd of December 2004 at Monash University, Caulfield in
The cost is AUD $230 and if you register before 31st October 2004, you will
receive a conference t-shirt and financial discount. The t-shirts look
You can register at http://www.osdc.com.au/
OSDC is a grassroots-style conference designed by developers for developers,
covering open source languages, tools, libraries, operating systems,
licences and business models. We're booking 3 lecture rooms each day for
the 3 days and every single slot is filled with a talk. There are 60
different talks by 45 different speakers, not including the keynotes.
Talks topics range from dealing with hardware in Perl, to designing cochlear
implants with Python, to writing large-scale PHP. We also have talks on
the Firebird Database, Mozilla XUL, Lego Micromouse (and maze solving),
You can find the list of speakers and talk titles at http://www.osdc.com.au
papers/index.html. Speaker names listed as "unavailable" means that that
speaker opted to have their paper refereed. Their names will appear once
the refereeing process is over.
Because there are so many good talks, you can be certain that there will be
something that interests you in every talk session. In our initial
timetable, it was impossible to put the most interesting talks into
sequential timeslots as we had too many "most interesting" talks for the
time available. Each day will start with a 1.5 hour keynote by our
excellent keynote speakers. These include Damian Conway, Nathan Torkington,
Anthony Baxter, Luke Welling and Con Zymaris. The rest of the day will be
filled with 5 hours of talks and plentiful food breaks.
Our catering choices should result in you being extraordinarily well fed
throughout the days of the conference.
There will also be a key-signing, several BOFs (yet to be organised), lots
of opportunities to socialise, a semi-formal dinner, a partners' programme
and other usual conference stuff.
If you have any other questions about what is happening, please don't
hesitate to ask: mailto:firstname.lastname@example.org
Graeme Cross, on behalf of the OSDC organising committee
Graeme Cross <graeme(a)osdc.com.au>
http://www.osdc.com.au - Open Source Developers Conference
Optik is a powerful, flexible, extensible, easy-to-use command-line
parsing library for Python. Using Optik, you can add intelligent,
sophisticated handling of command-line options to your scripts with very
Here's an example of using Optik to add some command-line options to a
from optik import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
(options, args) = parser.parse_args()
With these few lines of code, users of your script can now do the
"usual thing" on the command-line:
<yourscript> -f outfile --quiet
<yourscript> --file=outfile -q
<yourscript> --quiet --file outfile
all of which result in the 'options' object looking like this:
options.filename == "outfile"
options.verbose == 0
Even niftier, users can run one of
and Optik will print out a brief summary of your script's options:
usage: <yourscript> [options]
-h, --help show this help message and exit
-f FILE, --file=FILE write report to FILE
-q, --quiet don't print status messages to stdout
That's just a taste of the flexibility Optik gives you in parsing your
command-line. See the documentation included in the package for
REQUIREMENTS & INSTALLATION
Optik requires Python 2.2 or greater.
Installing Optik is easy; just use the standard incantion for installing
python setup.py install
As of Python 2.3, Optik is included in the Python standard library as
'optparse'. Python 2.3 included Optik 1.4.1 plus a few small bug fixes.
If you want to use the new features in Optik 1.5 (see CHANGES.txt),
you'll need to "import optik" in your source code. Otherwise, you can
"import optparse", and your code will work with Python 2.3 and up
without additional requirements.
The latest version of Optik can be found at
CHANGES SINCE 1.5a1
* Remove the old, broken "ignore" option conflict handler -- was
only needed for compatibility with Optik 1.1.
* Move documentation into docs/ directory, and write a script
(mkpydoc) to automatically convert it to LaTeX for the Python
standard library manual. Many documentation improvements.
* SF #997100: attempt to avoid triggering a FutureWarning in
__repr__() when using id() with "%x" (1.5a2).
* SF #1048725: fix typo in Values.__eq__() introduced in 1.5a1.
* Fix test script so it plays nice when being run with other test
scripts (as in the Python test suite) (1.5a2).
OTHER CHANGES SINCE 1.4.1
* Optik now requires Python 2.2 or later.
* Add expansion of default values in help text: the string
"%default" in an option's help string is expanded to str() of
that option's default value, or "none" if no default value.
* SF bug #955889: option default values that happen to be strings are
now processed in the same way as values from the command line; this
allows generation of nicer help when using custom types. Can
be disabled with parser.set_process_default_values(False).
* SF bug #960515: don't crash when generating help for callback
options that specify 'type', but not 'dest' or 'metavar'.
* SF feature #815264: change the default help format for short options
that take an argument from e.g. "-oARG" to "-o ARG"; add
set_short_opt_delimiter() and set_long_opt_delimiter() methods to
HelpFormatter to allow (slight) customization of the formatting.
* SF patch #736940: internationalize Optik: all built-in user-
targeted literal strings are passed through gettext.gettext(). Also
added po/ directory for message catalog and translations, so that
Optik-based applications have a single place to go for translations
of Optik's built-in messags. Include translations for Danish and
German (thanks to Frederik S. Olesen and Martin v. Löwis
respectively), and partial translations for French (by me).
* SF bug #878453 (Python): respect $COLUMNS environment variable for
wrapping help output.
* SF feature #964317: allow type objects to specify option types;
allow "str" as an alias for "string".
* SF feature #988122: expand "%prog" in the 'description' passed
to OptionParser, just like in the 'usage' and 'version' strings.
(This is *not* done in the 'description' passed to OptionGroup.)
* Added HTML-formatted docs to the source distribution (in addition
to the reStructuredText source files).
* Added three new examples: custom_source.py, custom_type.py, and
Greg Ward <gward(a)python.net> http://www.gerg.ca/
And I wonder ... will Elvis take the place of Jesus in a thousand years?
-- Dead Kennedys
Find a new pre-release of python-ldap:
python-ldap provides an object-oriented API to access LDAP directory
servers from Python programs. It mainly wraps the OpenLDAP 2.x libs for
that purpose. Additionally it contains modules for other LDAP-related
stuff (e.g. processing LDIF, LDAPURLs and LDAPv3 schema).
Released 2.0.4 2004-10-27
Changes since 2.0.3:
* Applied some fixes for 64-bit platforms to LDAPObject.c
* Constants ldap.TLS_AVAIL and ldap.SASL_AVAIL will indicate
whether python-ldap was built with support for SSL/TLS
setup.py and Modules/:
* Applied some fixes for building under Win32
I would like to announce version 0.3 of PyODB a Python unixODBC API binding.
This release contains improvements to the connection handling and now
transaction handling for commit and rollback.
PyODB is a Python module and provides a simplified set of bindings to
(http://www.unixodbc.org) allowing fast and easy development of open
The module supports multiple data source connections with the following
methods; execute(), fetch(), disconnect(), begin(), commit() and
The software has been developed on a Linux environment using Python 2.3
and SWIG (http://www.swig.org). The module has been tested on Linux and
Solaris platforms using databases PostgreSQL and Informix, but should work
on any platform supporting unixODBC and an ODBC database driver.
To download the release visit https://sourceforge.net/projects/pyodb
I'm happy to announce the release of version 0.14 of Task Coach.
Task Coach is a simple task manager that allows for hierarchical
tasks, i.e. tasks in tasks. Task Coach is open source (GPL) and uses
wxPython. You can download Task Coach from:
A binary installer is available for Windows XP, in addition to the
I'm specifically solliciting feedback on: 1) how portable is Task
Coach? Can your run it on your platform, and if not, can you help me
sort out the problem(s)? And 2) what features would you like to see
XIST 2.6 has been released!
What is it?
XIST is an extensible HTML/XML generator written in Python. XIST is
also a DOM parser (built on top of SAX2) with a very simple and
Pythonesque tree API. Every XML element type corresponds to a Python
class, and these Python classes provide a conversion method to transform
the XML tree (e.g. into HTML). XIST can be considered "object oriented XSL".
What's new in version 2.6?
* A new API named XFind has been added for iterating through XML
trees. XFind expressions look somewhat like XPath expressions but
are pure Python expressions. For example finding all images inside
links in an HTML page can be done like this:
from ll.xist import parsers
from ll.xist.ns import html
node = parsers.parseURL("http://www.python.org/", tidy=True)
for img in node//html.a/html.img:
* ToNode now tries iterating through the value passed in, so it's
now possible to pass iterators and generators (and generator
expressions in Python 2.4) to Frag and Element constructors.
* Parsing broken HTML is now done with the HTML parser from libxml2.
* The parser now has the option to ignore illegal elements,
attributes, processing instructions and entities.
* A new class ll.xist.xsc.NSPool has been added. An NSPool contains
a pool of namespaces from which the parser selects the appropriate
namespace once an xmlns attribute is encountered.
* Other minor changes and updates.
For changes in older versions see:
Where can I get it?
XIST can be downloaded from http://ftp.livinglogic.de/xist/
Web pages are at http://www.livinglogic.de/Python/xist/
ViewCVS access is available at http://www.livinglogic.de/viewcvs/
For information about the mailing lists go to