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).
After releasing version 1.7 yesterday, I found a bug this afternoon that
could result in incorrect query results if you are doing a regular
expression query against more than one string field. So, I felt like I
needed to get a quick bug-fix version out the door to try to minimize
You can download KirbyBase for Python at:
You can find more information on KirbyBase at:
Sorry about this! I hope the bug did not negatively impact anyone.
Rx4RDF is application stack for building RDF-based applications and web
sites implemented in Python.
Rhizome is a Wiki-like content management and delivery system built on
Rx4RDF that brings the Wiki metaphor to building dynamic web sites.
Major changes since last announced release (0.4.1):
- Support for RDF Schema (subclasses and subproperties)
- Added a UI for adding comments and several other UI improvements
- Added a notion of themes to ease customization of look and feel.
- More security enhancements including sanitizing HTML
and supporting Google's new anti-comment spam standard.
- Smoother installation and command line handling.
- Compatibility with 4Suite 1.0a4 (enables OS X support).
In addition, there have several other enhancements, see
http://rx4rdf.liminalzone.org/changelog.txt for more details.
* Rx4RDF is a set of technologies designed to make RDF more accessible
and easier to use. It includes:
** RxPath provides a deterministic mapping between the RDF abstract
syntax to the XPath data model, allowing you to query, transform and
update a RDF model with languages syntactically indentical to XPath,
XSLT and XUpdate (dubbed RxPath, RxSLT, and RxUpdate respectively).
** ZML is a Wiki-like text formatting language that lets you write
arbitrary XML or HTML (using Python-esque indentation rules), enabling
you to author XML documents with (nearly) the same ease as a Wiki entry.
** RxML is an alternative XML serialization for RDF that is designed for
easy authoring in ZML, allowing novices to author and edit RDF metadata.
* Raccoon is a simple application server that uses an RDF model for its
data store, roughly analogous to RDF as Apache Cocoon is to XML. Raccoon
uses RxPath to translate arbitrary requests (currently HTTP, XML-RPC and
command line arguments) to RDF resources, each of which can be
associated with RxSLT and RxUpdate stylesheets.
* Rhizome is a Wiki-like content management and delivery system built on
Raccoon that takes the concept of the Wiki to the next level: everything
is editable, not just content but its meta-data and behavior, even the
structure of the site itself. Furthermore, Wiki entries are abstract
globally unique RDF resources that can have any kind of content and
whose presentation is contextual.
-- adam (asouzis at user.sf.net)
I'm pleased to announce the first public release of VendorID-1.0.0.
You can download it from
What is it?
VendorID is a Python package, that contains functionality to restrict
the availability of dynamic loadable extension modules to specific
Python interpreters. Only specific Python interpreters are allowed to
import such extension modules. A generic Python interpreter will fail to
import such extensions.
By the term specific Python interpreter, we mean a binary executable
that runs a single specific Python application, something you create
with tools like freeze or py2exe.
The motivation for the VendorID package was the following condition in
Trolltech's commercial Qt license agreement.
"Applications may not pass on functionality which in any way makes it
possible for others to create software with the Licensed Software;"
This software provides a simple mechanism for conforming to this
Because I want to create commercial applications based on Python, Qt
and PyQt, I either had to make the PyQt modules builtin into the
specific interpreter (resulting in huge executables), or I had to find
a solution to prevent the import of these modules from a generic Python
Contents of the Package
The VendorID package contains a distutils setup script that generates
the necessary code and builds a static library and a shared module. The
package also contains a Python script named sib.py that you can use to
create application specific executables. See the documentation in the
doc directory of the package.
VendorID is licensed under the same terms and conditions as Python
itself. See the file LICENSE.txt of the package for more details.
VendorID places no restrictions on the license you may apply to
interpreters and extension modules that make use of the VendorID
If you have any questions or enhancement suggestions, either contact me
directly (ulrich.berning(a)desys.de) or use the PyKDE mailing list.
Thanks to Phil Thompson for hosting the package at
PyComicsViewer-0.9.5 has been released.
What is PyComicsViewer?
Is a comics viewer written in python, PyGTK and PIL. I made it as I
didn't fully like any of the existing viewers and I wanted something
that works the same (nice) way on both Linux and Windows.
Because of the way it was implemented, you can also use it like a kind
of image browser/viewer, but this is not its primary destination.
Browsing images from uncompressed directories is provided because
resulted naturally from the implementation and because I've seen some
people that distribute their scaned comics uncompressed.
Changes in 0.9.5 (2005/01/30)
* solved rotation bug for images that have sizes not divizible by 4
* set the size of the 'Open' dialog in the glade template, not in
* show the number of files detected so far during dir scanning
* set UI to use tear-off menus
* added code to sort files alfa-numerically (that is, the file '5.jpg'
will come before '10.jpg')
* better installation support
PyComicsViewer is released under the GPL.
Where can I get it?
I'm pleased to announce the initial release of cfgparse (V01_00)
cfgparse is a more convenient, flexible, and powerful module for
parsing configuration files than the standard library ConfigParser
module. cfgparse uses a more declarative style modelled after the
popular optparse standard library module.
cfgparse can optionally cooperate with the optparse module to provide
coordination between command line and configuration file options. In
addition, the cooperation can be used to allow the user to control
features of the parser from the command line.
Docs/home page: http://cfgparse.sourceforge.net/
+ Simple ini style configuration syntax
+ Type checking with error handling and help messages
+ Help summary modelled after that in optparse
+ Round trip - read, modify, write configuration files with comment retention
+ Cooperates with optparse for configuration file options that should be
overridden by command line options
+ Supports heirarchically organized option settings
* User may store multiple option settings in a arbitrarily deep
* Application uses a key list to walk into the dictionary to
obtain a setting.
* User controls key list with setting in configuration file.
* Supports adding keys to the list through a command line option or from
+ Supports allowing user control of configuration files used.
* Environment variables may be used to allow user to specify a default
* Command line options to specify configuration file supported.
* Configuration files may include other configuration files where where
sections are read in parallel.
* Configuration files may be nested heirarchically by including
files from within a section or subsection.
+ Configuration files may alternatively be written in Python.
* full power and flexibility of Python available for creation of
* allows options settings to be real Python objects
* this feature is NOT enabled by default
+ May be extended to support syntax such as XML.
KirbyBase is a simple, plain-text, database management system written in
Python. It can be used either embedded in a python script or in a
client/server, multi-user mode. You use python code to express your
queries instead of having to use another language such as SQL.
KirbyBase is disk-based, not memory-based. Database changes are
immediately written to disk.
You can find more information on KirbyBase at:
You can download KirbyBase for Python at:
Wow! It's been almost two years since the initial release of
KirbyBase. Time sure does fly! Version 1.7 includes most of the bug
fixes that have accumulated over the months and a few enhancements that
I hope you will enjoy.
I would like to thank everyone who has emailed me with comments, bug
reports, and enhancement requests/ideas. Hearing from people who
actually use KirbyBase is what makes working on it worthwhile. Please
keep the emails coming!
I would particularly like to thank Pierre Quentel, the author of
Karrigell (http://karrigell.sourceforge.net), for his contribution of
ideas and code for many of the enhancements in version 1.7 of KirbyBase.
For those of you who requested better documentation, the manual has been
completely re-written. I'm not saying it's any better, but at least
it's different. :)
Changes in Version 1.7:
***IMPORTANT - IF YOU ARE UPGRADING THIS COULD BITE YOU!!!***
* Changed the default value for the keyword argument 'useRegExp' to
be false instead of true. This means that, when doing a update,
delete, or select, records being selected on string fields will
be matched using exact matching instead of regular expression
matching. If you want to do regular expression matching, pass
'useRegExp = True' to the method.
* Added a keyword argument to select() called returnType. If set to
'object', the result list returned will contain Record objects
where each field name is an attribute of the object, so you could
refer to a record's field as plane.speed instead of plane. If
set to 'dict', the result list returned will contain dictionaries
where each key is a field name and each value is a field value.
If set to 'list', the default, the result is a list of lists.
* Added a new method, insertBatch. It allows you to insert multiple
records at one time into a table. This greatly improves the speed
of batch inserts.
* Added a new public method called validate. Calling this method
with a table name will check each record of that table and
validate that all of the fields have values of the correct type.
This can be used to validate data you have put into the table by
means other than through KirbyBase, perhaps by opening the table
in a text editor and typing in information.
* Fixed a bug in _closeTable where if an exception occurred it was
blowing up because the variable 'name' did not exist.
* Fixed a bug in _writeRecord where if an exception occured it was
blowing up because the variable 'name' did not exist.
* Fixed a bug in _getMatches where I was referencing
self.field_names as a method instead of as a dictionary.
* Added a new private method, _strToBool, that converts string
values like 'True' to boolean values.
* Added a new private method, _convertInput, and moved to it the
code that ensures that the data on an insert is in proper list
format. I did this so that I did not have duplicate code in both
the insert and insertBatch methods.
* To accomodate the fact that users can now send a large batch of
records to be inserted, I changed _sendSocket so that it first
sends the length of the database command to the server, then it
actually sends the command itself, which can now be any length.
* Changed the code in _getMatches to precompile the regular
expression pattern instead of dynamically compiling every time the
pattern is compared to a table record. This should speed up
queries a little bit.
* Changed the code in select that converts table fields back to
their native types to be more efficient.
* Changed _sendSocket to use StringIO (actually cStringIO) to hold
the result set of a client/server-based query instead of just
capturing the result by concatenating records to one big string.
In informal testing on large result sets, it shaves a few tenths
of a second off the query time.
The old 0.0.x series is no longer supported.
This is a bugfix release. Changes from 0.1.16 to 0.1.17:
* Fix case where FORM action contains a '?' or '#' (again!).
* Fix failure to raise ParseError (!)
* Workaround for failure of sgmllib to unescape attributes (bug
report from Titus Brown).
* Fix image control in case where value is present.
* Hack choose_boundary not to fail on hostname lookup.
* Allow user to supply own Request class.
* Fix ISINDEX action URL (bug only showed up in Python 2.4).
Requires Python >= 1.5.2. Works with Python 2.4.
ClientForm is a Python module for handling HTML forms on the client
side, useful for parsing HTML forms, filling them in and returning the
completed forms to the server. It has developed from a port of Gisle
Aas' Perl module HTML::Form, from the libwww-perl library, but the
interface is not the same.
from urllib2 import urlopen
from ClientForm import ParseResponse
forms = ParseResponse(urlopen("http://www.example.com/form.html"))
form = forms
form["author"] = "Gisle Aas"
# form.click returns a urllib2.Request object
# (see HTMLForm.click_request_data.__doc__ if you're not using urllib2)
response = urlopen(form.click("Thanks"))
PyEnchant version1.0.0_rc1 has been released. It includes several
updates based on user feedback, and with luck will turn into a 1.0.0
release relatively unchanged. Updates include:
* Windows installers for Python2.3 and Python2.4
* Better handling of registry entries in the Windows install/uninstall
* New class "DictWithPWL" which streamlines the management of
dictionaries with an attached personal word list
Enchant (http://www.abisource.com/enchant/) is the spellchecking
package behind the AbiWord word processor, is being considered for
inclusion in the KDE office suite, and is proposed as a
FreeDesktop.org standard. It's completely cross-platform because
it wraps the native spellchecking engine to provide a uniform
PyEnchant brings this simple, powerful and flexible spellchecking
engine to Python:
Current Version: 1.0.0_rc1
Licence: LGPL with exemptions, as per Enchant itself
http://www.rfk.id.au | This message is digitally signed. Please visit
ryan(a)rfk.id.au | http://www.rfk.id.au/ramblings/gpg/ for details