I'm pleased to announce the release of PyEnchant version 1.2.0. This
version includes some important updates in the underlying enchant
library, and implements basic "filters" to allow skipping of email
addresses, WikiWords, URLs, etc during a spellchecking session.
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:
It also provides extended functionality including classes for tokenizing
text and iterating over the spelling errors in it, as well as a
ready-to-use text interface and wxPython dialog.
Current Version: 1.2.0
Licence: LGPL with exemptions, as per Enchant itself
ChangeLog for 1.2.0:
* Implemented "filters" that allow tokenization to skip common word
forms such as URLs, WikiWords, email addresses etc.
* Now ships with enchant-1.3.0, meaning:
* PWLs can return a useful list of suggestions rather than
the empty list
* Hunspell replaces MySpell as the default Windows backend
* Tokenization doesnt split words at non-alpha characters by default
* GtkSpellCheckerDialog contributed by Fredrik Corneliusson
* Removed deprecated functionality:
* All registry handling functionality from enchant.utils
* enchant.utils.SpellChecker (use enchant.checker.SpellChecker)
* Removed PyPWL, as native enchant PWLs can now suggest corrections
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
GNUmed version 0.2.5 has been polished and released !
For the impatient: Go grab your copy at wiki.gnumed.de.or
Next to bug fixes and code cleanup this release has a nice selection of new
features as well ...
We need testers. Let us know if it works for you.
The GNUmed team worked hard to release yet another stable version.
As features are being added more and more success stories of happy users reach
For this release GNotary support on backup, improved phrasewheel code,
handling of the original filename in the document archive, visual indication
of patient birthday, initial KVK (German health insurance card) handling,
connection pooling (massive speedup over slow network links), a generalized
hooks framework and smart allergies handling has been added.
Localization files were added and updated.
All features have been documented over at wiki.gnumed.de.
Packages are available for Debian unstable, Ubuntu Feisty, MS Windows and any
other GNU/Linux using the archives (tgz).
The latest not yet released GNUmed code has been successfully tested on Mac
OSX. One of the next releases will include support for that OS.
Have fun and please report bugs and success stories. To stay in touch just
head over to blog.gnumed.de every once in a while.
Leipzig / Germany
[www.gnumed.de] -> PGP welcome, HTML ->/dev/null
WERD is a phonetic transliterator that helps users write english text
but read the same in the chosen Devanagari (Indic) font. WERD is
expected to make it easy for Indians wanting to communicate over chat
or email in their native language.
WERD is written in Python and Tkinter, is open source software
under GPL, and is hosted by SourceForge (www.sourceforge.net)
1. Unicode font support
2. Usability enhancements
3. Minor Bug Fixes
Thanks and Regards,
mountpy is a python script for quick automatic mounting and umounting
of external filesystems, especially suited for USB removable devices.
mountpy is developed on linux, and is meant for modern linux systems.
This is version 0.8, changes from previous version:
- add test for removable devices (not very useful)
- add test for devices already mounted elsewhere (very useful)
| Radovan Garabík http://kassiopeia.juls.savba.sk/~garabik/ |
| __..--^^^--..__ garabik @ kassiopeia.juls.savba.sk |
Antivirus alert: file .signature infected by signature virus.
Hi! I'm a signature virus! Copy me into your signature file to help me spread!
For our April meeting, Google have kindly offered to host us.
Thursday, April 5, 2007 6:15-8:30PM
Level 18, Tower 1 Darling Park
201 Sussex St
We will have two presentations:
1. Alec Thomas will give us a debrief on his time at PyCon 2007
2. Andrew Bennets will talk about the Bazaar Distributed Version Control
followed by some lively discussion and for those who want to, we will
continue the gathering
at a local watering hole after 8:30PM.
The room can hold 40 people. To attend this meeting you must RSVP to Alan
Green (alangreen at google dot com)
A group of Sydney based python users who meet on the first thursday of the
I'm pleased to announce the creation of the Gracie project.
What is Gracie?
Gracie is an OpenID server (a "provider" in OpenID terminology) that
serves OpenID identities for the local system PAM accounts. It
authenticates users with a username/password challenge.
The OpenID protocol is documented at <URL:http://openid.net/>.
Gracie is intended for use within trusted environments that have an
existing authentication system available via PAM (e.g. most GNU/Linux
environments), that would like to provide OpenIDs for all local users
instead of maintaining disparate web-based accounts for local
What can Gracie do now?
Gracie 0.2 is still alpha-development software, not intended for use
in production environments. That said, this version does satisfy some
Currently Gracie can serve OpenID 1.1 authentication for local PAM
users. It will authenticate the user with a web form, using the PAM
system where the Gracie server is running. It assumes that any
consumer request for identity is authorised to be given the user's
What improvements are needed?
The current state of Gracie is functional but still needs much
improvement. Please check the TODO.txt file in the source package for
a list of improvements that need to be made.
As of this announcement, Gracie version 0.2 is available.
The project's home page is <URL:http://trac.whitetree.org/gracie/>.
\ "When I turned two I was really anxious, because I'd doubled my |
`\ age in a year. I thought, if this keeps up, by the time I'm six |
_o__) I'll be ninety." -- Steven Wright |
Ben Finney <ben(a)benfinney.id.au>
This is an enhanced version of python-cjson, the fast JSON encoder/decoder.
Qiangning Hong submitted a patch to fix segfault with Python 2.5 on 64 bit
platforms. Version python-cjson 1.0.3x2 released to incorporate this patch.
It's numbered 1.0.3x, where x stands for eXtension.
The main improvement is the ability to extend the JSON encoder and decoder
with extensions functions to serialize/unserialize objects not in the
original JSON specification. This is achieved without sacrificing the speed
and stability of the original implementation. Please send bug reports to
python(a)cx.hu and do not contact the original author (Dan Pascu) about this
Download and more information:
# Encoding Date objects:
assert isinstance(d, datetime.date)
return 'new Date(Date.UTC(%d,%d,%d))'%(d.year, d.month, d.day)
assert json=='[1, new Date(Date.UTC(2007,1,2)), 2]'
# Decoding Date objects:
if not m: raise 'cannot parse JSON string as Date object: %s'%json[idx:]
return (dt,m.end()) # must return (object, character_count) tuple
data=cjson.decode('[1, new Date(Date.UTC(2007,1,2)), 2]',
PyPy 1.0: JIT compilers for free and more
Welcome to the PyPy 1.0 release - a milestone integrating the results
of four years of research, engineering, management and sprinting
efforts, concluding the 28 months phase of EU co-funding!
Although still not mature enough for general use, PyPy 1.0 materializes
for the first time the full extent of our original vision:
- A flexible Python interpreter, written in "RPython":
- Mostly unaware of threading, memory and lower-level target platform
- Showcasing advanced interpreter features and prototypes.
- Passing core CPython regression tests, translatable to C, LLVM and
- An advanced framework to translate such interpreters and programs:
- That performs whole type-inference on RPython programs.
- Can weave in threading, memory and target platform aspects.
- A **Just-In-Time Compiler generator** able to **automatically**
enhance the low level versions of our Python interpreter, leading to
run-time machine code that runs algorithmic examples at speeds typical
Previous releases, particularly the 0.99.0 release from February,
already highlighted features of our Python implementation and the
abilities of our translation approach but the **new JIT generator**
clearly marks a major research result and gives weight to our vision
that one can generate efficient interpreter implementations, starting
from a description in a high level language.
We have prepared several entry points to help you get started:
* The main entry point for JIT documentation and status:
* The main documentation and getting-started PyPy entry point:
* Our online "play1" demos showcasing various Python interpreters,
features (and a new way to program AJAX applications):
* Our detailed and in-depth Reports about various aspects of the
In the next few months we are going to discuss the goals and form of
the next stage of development - now more than ever depending on your
feedback and contributions - and we hope you appreciate PyPy 1.0 as an
interesting basis for greater things to come, as much as we do
the PyPy release team,
Samuele Pedroni, Armin Rigo, Holger Krekel, Michael Hudson,
Carl Friedrich Bolz, Antonio Cuni, Anders Chrigstroem, Guido Wesdorp
Maciej Fijalkowski, Alexandre Fayolle
and many others:
What is PyPy?
Technically, PyPy is both a Python interpreter implementation and an
advanced compiler, or more precisely a framework for implementing dynamic
languages and generating virtual machines for them.
The framework allows for alternative frontends and for alternative
backends, currently C, LLVM and .NET. For our main target "C", we can
can "mix in" different garbage collectors and threading models,
including micro-threads aka "Stackless". The inherent complexity that
arises from this ambitious approach is mostly kept away from the Python
interpreter implementation, our main frontend.
PyPy is now also a Just-In-Time compiler generator. The translation
framework contains the now-integrated JIT generation technology. This
depends only on a few hints added to the interpreter source and should
be able to cope with the changes to the interpreter and be generally
applicable to other interpreters written using the framework.
Socially, PyPy is a collaborative effort of many individuals working
together in a distributed and sprint-driven way since 2003. PyPy would
not have gotten as far as it has without the coding, feedback and
general support from numerous people.
Formally, many of the current developers were involved in executing an
EU contract with the goal of exploring and researching new approaches
to language and compiler development and software engineering. This
contract's duration is about to end this month (March 2007) and we are
working and preparing the according final review which is scheduled
for May 2007.
For the future, we are in the process of setting up structures to help
maintain conceptual integrity of the project and to discuss and deal
with funding opportunities related to further PyPy sprinting and
developments. See here for results of the discussion so far:
1.0.0 Feature highlights
Here is a summary list of key features included in PyPy 1.0:
- The Just-In-Time compiler generator, now capable of generating the
first JIT compiler versions of our Python interpreter:
- More Python interpreter optimizations (a CALL_METHOD bytecode, a method
cache, rope-based strings), now running benchmarks at around half of
CPython's speed (without the JIT):
- The Python interpreter can be translated to .NET and enables
interactions with the CLR libraries:
- Aspect Oriented Programming facilities (based on mutating the Abstract
write AJAX web applications with it. This is still an experimental
technique, though. For demo applications which also showcase various
generated Python and PROLOG interpreters, see:
- Proxying object spaces and features of our Python interpreter:
- Tainting: a 270-line proxy object space tracking and boxing
sensitive information within an application.
- Transparent proxies: allow the customization of both application and
builtin objects from application level code. Now featuring an
initial support module (tputil.py) for working with transparent
For a detailed description and discussion of high level backends and
Python interpreter features, please see our extensive "D12" report:
Funding partners and organisations
PyPy development and activities happen as an open source project and
with the support of a consortium partially funded by a 28 month
European Union IST research grant for the period from December 2004 to
March 2007. The full partners of that consortium are:
Heinrich-Heine University (Germany), Open End (Sweden)
merlinux GmbH (Germany), tismerysoft GmbH (Germany)
Logilab Paris (France), DFKI GmbH (Germany)
ChangeMaker (Sweden), Impara (Germany)
Find a new 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.3.0 2007-03-27
Changes since 2.2.1:
* OpenLDAP 2.3+ required now to build.
* Added support for Cancel operation ext. op. if supported
in OpenLDAP API of the libs used for the build.
* Removed deprecated code for setting options by name
* Added l_ldap_cancel()
* Some modifications related to PEP 353 for
Python 2.5 on 64-bit platforms (see SF#1467529, thanks to Matej)
* Added new function l_ldap_str2dn(), removed functions
l_ldap_explode_dn() and l_ldap_explode_rdn()
(see SF#1657848, thanks to David)
* Added method ldapobject.LDAPObject.cancel()
* ldap.schema.subentry.urlfetch() now can do non-anonymous
simple bind if the LDAP URL provided contains extensions
'bindname' and 'X-BINDPW'. (see SF#1589206)
* ldap.filter.escape_filter_chars() has new a key-word argument
escape_mode now which defines which chars to be escaped
* Various important fixes to ldapobject.ReconnectLDAPObject
* Moved all DN-related functions to sub-module ldap.dn,
import them in ldap.functions for backward compability
* ldap.dn.explode_dn() and ldap.dn.explode_rdn() use the new
wrapper function ldap.dn.str2dn() (related to SF#1657848)
* changetype issue partially fixed (see SF#1683746)