I'm pleased to announce a new "major" release of my Tagged Message
Delivery Agent (TMDA).
New in release 0.10:
* The amkCrypto package is no longer necessary. With this release,
only the core Python language distribution version 1.5.2 or higher
is required to run TMDA. See the `UPGRADE' file if you are
upgrading from a previous TMDA release.
* Many new features added, and some small bugs fixed.
Further release announcements will take place on the tmda-announce
mailing list <http://libertine.org/lists/listinfo/>.
About TMDA:
TMDA is an OSI certified Python application for qmail systems designed
to significantly reduce (or eliminate) the amount of SPAM/UCE you
receive by using unique, cryptographically enhanced (called tagged)
e-mail addresses. TMDA can both filter your incoming e-mail, and tag
your outgoing address.
For more information, download locations, and installation
instructions, visit the TMDA homepage:
<URL:http://tmda.sourceforge.net/>
Enjoy,
Jason R. Mastaler (jason(a)mastaler.com)
<P><A HREF="http://tmda.sourceforge.net">TMDA 0.10</A> -
A qmail-based anti-SPAM system. (30-Apr-2001)
________________________________________________________________________
ANNOUNCING:
eGenix.com mx COMMERCIAL Extension Package for Python
Version 2.0.2
Full Source Python extensions providing important and useful
services for Python programmers.
________________________________________________________________________
WHAT IS IT ?:
The eGenix.com mx COMMERCIAL Package for Python is part of the
eGenix.com mx Extension Series for Python, a collection of
professional quality software tools which enhance Python's usability
in many important areas such as ODBC database connectivity, fast text
processing, date/time processing and web site programming.
The mx COMMERCIAL Extension package includes the well-known "mxODBC"
database interface package which provides cross-platform and
cross-database commercial quality database access for Python 1.5.2,
2.0 and 2.1.
The package comes with full source code, so you can enjoy the benefits
of having access to the source code in case you want to tune the
package to your particular needs.
________________________________________________________________________
WHAT'S NEW ?
We have repackaged the mx BASE Extensions for all major Python
releases (1.5.2, 2.0 and 2.1) including binaries and full source code
for Windows and Linux as well as distutils based installers for all
other platforms.
________________________________________________________________________
SPECIAL OFFER
theKompany.com has licensed the eGenix.com mx Commercial Package
(which includes mxODBC) for inclusion in their brand new Qt-based
Python IDE BlackAdder. It allows developing portable GUI-based
database applications which run on Windows and Linux platforms without
any change to the source code.
BlackAdder includes a 1 CPU license for this package at no extra cost,
so you may want to check out their great new product. See
http://www.lemburg.com/files/python/eGenix-mx-Extensions.html#BlackAdder
for details.
________________________________________________________________________
EGENIX.COM MX COMMERCIAL PACKAGE OVERVIEW:
mxODBC - Generic ODBC 2.0-3.5 interface for Python
mxODBC is an extension package that provides a Python Database
API compliant interface to ODBC capable database drivers and
managers.
In addition to the capabilities provided through the standard DB
API it also gives access to a rich set of catalog methods which
allow you to scan the database for tables, procedures,
etc. Furthermore, it uses the mxDateTime package for date/time
value interfacing eliminating most of the problems these types
normally introduce (other in/output formats are available too).
mxODBC allows you to interface to more than one database from one
process, making inter-database interfacing very flexible and
reliable.
The source version includes a varity of preconfigured setups for
many commonly used databases such as MySQL, Oracle, Informix,
Solid, SAP DB, Sybase ASA and ASE, DBMaker and many more. The
precompiled versions for Windows and Linux include the interfaces
to the standard ODBC manager on these platforms to allow for a
more easily configurable setup.
More details are available at:
http://www.lemburg.com/files/python/mxODBC.html
________________________________________________________________________
WHERE CAN I GET IT ?
The download archives and instructions for installing the packages can
be found at:
http://www.lemburg.com/files/python/
Note that in order to use the eGenix.com mx COMMERCIAL Extension
Package you will also need to install the eGenix.com mx BASE Extension
Package which can be downloaded from the same location.
________________________________________________________________________
WHAT DOES IT COST ?
mxODBC comes with a licenses which allows non-commercial use at no
charge, but costs a moderate fee for commercial and governmental
use. Please see
http://www.lemburg.com/files/python/eGenix-mx-Extensions.html#mxCOMMERCIAL
for details.
________________________________________________________________________
WHERE CAN I GET SUPPORT ?
Commercial quality support for these packages is available from
eGenix.com Software GmbH. Please see
http://www.lemburg.com/files/python/eGenix-mx-Extensions.html#Support
for details about the eGenix support offerings.
________________________________________________________________________
REFERENCE:
<P><A HREF="http://www.lemburg.com/files/python/">eGenix.com mx
COMMERCIAL Extension Package 2.0.2</A> - eGenix.com mx COMMERCIAL
Extension Package 2.0.2 with distutils support and precompiled
binaries for Windows and Linux. (30-Apr-2001)
________________________________________________________________________
Enjoy,
--
Marc-Andre Lemburg
______________________________________________________________________
Company & Consulting: http://www.egenix.com/
Python Software: http://www.lemburg.com/python/
________________________________________________________________________
ANNOUNCING:
eGenix.com mx BASE Extension Package for Python
Version 2.0.1
Open Source Python extensions providing important and useful
services for Python programmers.
________________________________________________________________________
WHAT IS IT ?:
The eGenix.com mx BASE Extensions for Python are a collection of
professional quality software tools which enhance Python's usability
in many important areas such as fast text searching, date/time
processing and high speed datatypes.
Python is an open-oriented Open Source programming language which runs
on all modern platforms (http://www.python.org/). By integrating
ease-of-use, clarity in coding, enterprise application connectivity
and rapid application design, Python establishes an ideal programming
platform for todays IT challenges.
The tools have a proven record of being portable across many Unix and
Windows platforms, e.g. you can write applications which use the tools
on Windows and then run them on Unix platforms without change due to
the consistent platforms independent interfaces.
All available packages have proven their stability and usefulness in
many mission critical applications and various commercial settings all
around the world.
________________________________________________________________________
WHAT'S NEW ?
We have repackaged the mx BASE Extensions for all major Python
releases (1.5.2, 2.0 and 2.1).
The 2.0.1 version now also include the header files needed by third
party software which were forgotten in the 2.0.0 release.
________________________________________________________________________
EGENIX.COM MX BASE PACKAGE OVERVIEW:
mxDateTime - Generic Date/Time Types
mxDateTime is an extension package that provides three new object
types, DateTime, DateTimeDelta and RelativeDateTime, which let
you store and handle date/time values in a much more natural way
than by using ticks (seconds since 1.1.70 0:00 UTC; the encoding
used by the time module).
You can add, subtract and even multiply instances, pickle and
copy them and convert the results to strings, COM dates, ticks
and some other more esoteric values. In addition, there are
several convenient constructors and formatters at hand to greatly
simplify dealing with dates and times in real-world applications.
In addition to providing an easy-to-use Python interface the
package also exports a comfortable C API interface for other
extensions to build upon. This is especially interesting for
database applications which often have to deal with date/time
values (the mxODBC package is one example of an extension using
this interface).
mxTextTools - Fast Text Processing Tools
mxTextTools is an extension package for Python that provides
several useful functions and types that implement
high-performance text manipulation and searching algorithms in
addition to a very flexible and extendable state machine, the
Tagging Engine, that allows scanning and processing text based on
low-level byte-code "programs" written using Python tuples. It
gives you access to the speed of C without the need to do any
compile and link steps every time you change the parsing
description.
Applications include parsing structured text, finding and
extracting text (either exact or using translation tables) and
recombining strings to form new text.
mxStack - Fast and Memory-Efficient Stack Type
mxStack is an extension package that provides a new object type
called Stack. It works much like what you would expect from such
a type, having .push() and .pop() methods and focusses on
obtaining maximum speed at low memory costs.
mxTools - Collection of Additional Builtins
mxTools is an extension package that includes a collection of
handy functions and objects giving additional functionality in
form of new builtins to the Python programmer.
The package auto-installs the new functions and objects as
builtins upon first import. This means that they become
instantely available to all other modules without any further
action on your part. Add the line import NewBuiltins to your
site.py script and they will be available to all users at your
site as if they were installed in the Python interpreter itself.
mxProxy - Generic Proxy Wrapper Type
mxProxy is an extension package that provides a new type that is
suitable to implement Bastion like features without the need to
use restricted execution environments.
The type's main features are secure data encapsulation (the
hidden objects are not accessible from Python since they are
stored in internal C structures), customizable attribute lookup
methods and a cleanup protocol that helps in breaking circular
references prior to object deletion.
The latest version adds a very interesting new feature: weak
references which help you work with circular references in a way
that doesn't cause memory leakage in a Python system. Note that
even though Python 2.1 has its own weak reference implemetation,
this package can be used to write applications which also work on
Python 1.5.2 and 2.0.
mxBeeBase - On-disk B+Tree Based Database Kit
mxBeeBase is a high performance construction kit for disk based
indexed databases. It offers components which you can plug
together to easily build your own custom mid-sized databases (the
current size limit is <CODE>sizeof(long)</CODE> which gives you
an address range of around 2GB on 32-bit platforms).
The two basic building blocks in mxBeeBase are storage and
index. Storage is implemented as variable record length data
storage with integrated data protection features, automatic data
recovery and locking for multi process access. Indexes use a high
performance optimized B+Tree implementation built on top of
Thomas Niemann's Cookbook B+Tree implementation
(http://epaperpress.com/).
________________________________________________________________________
WHERE CAN I GET IT ?
The download archives and instructions for installing the packages can
be found at:
http://www.lemburg.com/files/python/
________________________________________________________________________
WHAT DOES IT COST ?
The BASE packages come with a Python 2.0 style license, which means
that you can use them in both commercial and non-commercial settings
without fee or charge. All packages come with full source code.
________________________________________________________________________
WHERE CAN I GET SUPPORT ?
Commercial quality support for these packages is available from
eGenix.com Software GmbH. Please see
http://www.lemburg.com/files/python/eGenix-mx-Extensions.html#Support
for details about the eGenix support offerings.
________________________________________________________________________
REFERENCE:
<P><A HREF="http://www.lemburg.com/files/python/">eGenix.com mx BASE
Extension Package 2.0.1</A> - eGenix.com mx BASE Extension Package
2.0.1 with precompiled binaries for Windows and Linux. (30-Apr-2001)
________________________________________________________________________
Enjoy,
--
Marc-Andre Lemburg
______________________________________________________________________
Company & Consulting: http://www.egenix.com/
Python Software: http://www.lemburg.com/python/
April 28, 2001
I am pleased to announce the first beta release of JPE,
the Java-Python Extension.
JPE is at once:
- A Python module (named 'java') providing access to all Java
services
from Python
- A Java package (named 'python') providing access to all Python
services
from Java
Computing Paradigm
==================
JPE relies on the following computing paradigm:
One Python VM (PyInterp* pointer) an one Java VM (JavaVM* pointer) are
in the same process.
The virtual machines act as common process resources, shared by the
threads.
Each virtual machine has its own thread-specific execution environment
(PyThreadState* pointer in Python, JNIEnv* pointer in Java).
Each thread is attached to zero or one thread environment
from each virtual machine; each thread environment is attached
to one thread.
The paradigm is generic.
I have not done much research in the literature in this regard,
but I am not aware of a similar pattern.
I'll baptize it the "symmetrical virtual machine" pattern :))
This is different from Jython, for instance, in the sense that Jython
is an emulation of the Python VM, written in Java, and entirely running
within the Java VM.
The advantage of the symmetrical virtual machine approach
over the emulation is that we get to work with the actual,
full-featured Python VM, rather than with an emulation on top of
another virtual machine, emulation which necesseraly suffers
from limitations inherited from the emulating environment.
Object semantics are the same in both environments.
Voila!
Frederic Giacometti
frederic.giacometti(a)arakne.com
The home of JPE is http://www.arakne.com/jpe
JPE can be downloaded directly at http://sourceforge.net/projects/jpe
SOAPy/0.1
---------
SOAP/XML Schema library for Python
SOAPy is a library for accessing SOAP-based web services from Python
applications. Given either a WSDL or SDL document, SOAPy discovers the
published API for a web service and exposes it to Python applications as
transparently as possible. SOAPy is designed to support WSDL 1.0 and
SOAP 1.1, and whatever version of SDL is being used to power Microsoft's
TerraService web service. :)
URL: http://soapy.sourceforge.net/
Download: http://prdownloads.sourceforge.net/soapy/soapy-0.1.tar.gz
License: Python Style
Requires: PyXML, Distutils
Categories: Remote and Distributed
Adam Elman (aelman(a)users.sourceforge.net)
--
<a href="http://soapy.sourceforge.net/">SOAPy/0.1</a> -- SOAP/XML Schema
library for Python
This is a summary of traffic on the python-dev mailing list between
Apr 12 and Apr 25 (inclusive) 2001. It is intended to inform the
wider Python community of ongoing developments. To comment, just
post to python-list(a)python.org or comp.lang.python in the usual
way. Give your posting a meaningful subject line, and if it's about a
PEP, include the PEP number (e.g. Subject: PEP 201 - Lockstep
iteration) All python-dev members are interested in seeing ideas
discussed by the community, so don't hesitate to take a stance on a
PEP if you have an opinion.
This is the sixth summary written by Michael Hudson.
Summaries are archived at:
<http://starship.python.net/crew/mwh/summaries/>
Posting distribution (with apologies to mbm)
Number of articles in summary: 293
40 | [|]
| [|]
| [|] [|] [|]
| [|] [|] [|] [|]
| [|] [|] [|] [|]
30 | [|] [|] [|] [|]
| [|] [|] [|] [|]
| [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|]
20 | [|] [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|] [|] [|] [|] [|]
10 | [|] [|] [|] [|] [|] [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|] [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|] [|] [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|] [|] [|] [|] [|] [|] [|] [|]
| [|] [|] [|] [|] [|] [|] [|] [|] [|] [|] [|] [|] [|] [|]
0 +-019-039-037-038-006-028-018-012-042-016-008-023-003-004
Thu 12| Sat 14| Mon 16| Wed 18| Fri 20| Sun 22| Tue 24|
Fri 13 Sun 15 Tue 17 Thu 19 Sat 21 Mon 23 Wed 25
* Python 2.1 is released! *
After Tim found a bug of staggering subtlety in the dict code:
<http://mail.python.org/pipermail/python-dev/2001-April/014272.html>
And Guido released a release candidate or two:
<http://mail.python.org/pipermail/python-dev/2001-April/014205.html>
<http://mail.python.org/pipermail/python-dev/2001-April/014290.html>
Python 2.1 was unleashed on the world:
<http://mail.python.org/pipermail/python-dev/2001-April/014298.html>
which has already been incorporated into the cygwin distribution:
<http://mail.python.org/pipermail/python-dev/2001-April/014311.html>
* Iterators *
Guido asked whether we thought he should check his prototype iterator
implementation into the main trunk:
<http://mail.python.org/pipermail/python-dev/2001-April/014353.html>
After everyone said "yes!", he did so, so you can play around with
iterators if you build a Python from CVS. Discussion of this feature
is going on the python-iterators list at sourceforge:
<http://lists.sourceforge.net/lists/listinfo/python-iterators>
* Class methods *
Thomas Heller posted another plea for class methods to be included in
some future version of Python:
<http://mail.python.org/pipermail/python-dev/2001-April/014365.html>
Discussion wandered around a bit, drifting onto metaclasses and some
tantalizing hints of Guido's plans for attacking the dreaded
type/class split in Python 2.2.
* Suirprise! *
Tim Peter's posted a surprising consequence of how Python handles
chained comparisons:
<http://mail.python.org/pipermail/python-dev/2001-April/014399.html>
This may elicit a warning from the compiler in 2.2...
Cheers,
M.
ANNOUNCING
mxNumber - Version 0.2.0
Python Interface to GNU MP Number Types
INTRODUCTION
------------
As you all know, Moshe Zadka has been pushing for a new rational
number type recently (at the conference) and also implemented a proof-
of-concept implementation of his rational PEP 239.
Since the GNU Multi-Precision Lib (GMP) already has all these tools
providing what people want most when it comes to numbers (precision
and speed), I thought that wrapping these as Python types would
be a good idea. I know that Alex Martelli has been working
on a similar approach, but that project (gmpy) seems to be inactive.
Anyway, even though the GMP is available for most Unix platforms
and MacOS, there was no relyable port for Windows. This was a show-
stopper for me, so I decided to port GMP to Windows, which was
harder than I thought, but well, it's done now.
There's still no web-page for this package, so I'm providing the
needed information in this posting.
WHAT'S NEW ?
------------
The 0.2.0 release is an alpha release. Everything is still in flux, so
expect bugs, strange behaviour etc.
Still, the package provides some interesting insights into the issues
you run into when dealing with computational representations of
numbers. For now, you should consider the package a pure fun-package
and playground for experiments.
New in this release are a parser for rational strings (formats "1/2"
and "3 1/3"), plus a new constructor FareyRational() which was
inspired by an algorithm written by Scott David Daniels and posted to
the Python Cookbook; see
http://www.activestate.com/ASPN/Python/Cookbook/Recipe/52317
The FareyRational() constructor allows you to convert floating point
numbers to rationals, e.g. 1.3333 to 4/3.
INTERFACE
---------
The package is part of the eGenix.com EXPERIMENTAL package and called
mx.Number. It provides access to three numerical types:
1. Integer(value) -- arbitrary precision integers much like Python
long only faster
2. Rational(nom,denom) -- rational numbers with Integers as
numerator and denominator
3. Float(value[,prec]) -- floating point number with at least
prec bits precision
4. FareyRational(value, maxden)
-- calculate the best rational represenation
n/d of value such that d < maxden
DOWNLOADS
---------
* GMP 3.1.1
- Unix: GMP 3.1.1 must be installed (http://www.swox.com/gmp/)
- Windows: GMP 3.1.1 is included in the download archives for Windows
* Python 2.1
* Optional: egenix-mx-base package available from
http://www.lemburg.com/files/python/
* The "egenix-mx-experimental" package which includes mx.Number:
Source:
http://www.lemburg.com/files/python/egenix-mx-experimental-0.2.0.zip
RPM:
http://www.lemburg.com/files/python/egenix-mx-experimental-0.2.0-1.i386-py2…
Windows installer:
http://www.lemburg.com/files/python/egenix-mx-experimental-0.2.0.win32-py2.…
Usage is simple:
----------------
from mx.Number import *
f = Float(3.141)
r1 = Rational(3.141)
r2 = Rational(2, 3)
r3 = FareyRational(1.33333, 1000)
i = Integer("1231231231231231231231231")
The coercion model will (someday) look like this:
Float
^
|
--------> Python float
| ^
| |
| Rational
| ^
| |
Python long -----> Integer
^ ^
| |
-------- Python integer
Complex numbers are not integrated into the picture since I
think that they should not be auto-coerced.
Some of these arrows are not implemented yet, others are not shown
(e.g. Integer(2) + "3" works as one would expect ;-).
Note that this is still a very rough version. Feedback is welcome.
QUESTIONS
---------
* What do you think about this coercion model ? Shouldn't we
have a PEP for this ?
* Please try out the rational type and see if it fits your
needs -- the results are sometimes surprising (due to the
IEEE representations of floats); I'm sure this proof of
concept will raise a few more questions regarding the
usefulness of switching to rationals for literals like
1.123.
* This implementation also showed that even though the coercion
patches have made integraton of numerical types easier, a full
integration is still hard to achieve. Some issues:
- string formatting cannot be "overridden" to allow formatting
of these new types
- there is no way of providing PyArg_ParseTuple() parser markers
for the types
- there is no way to bind the types to a Python literal, e.g.
by specifying a number literal modifier which is then bound
to the type: 1234L -> long("1234"), 1234.123F -> Float("1234.123"),
2R / 3 -> Rational(2, 3) etc.
Comments ?
--
Marc-Andre Lemburg
______________________________________________________________________
Company & Consulting: http://www.egenix.com/
Python Software: http://www.lemburg.com/python/
I have released an update of my port of Python 2.0 to OS/2, using the
EMX compiler/runtime tools.
Significant changes since the 31 March, 2001 release:
- dynamically loadable modules with module names longer than 8
characters are now handled by silently truncating the name to 8
characters during import.
- I have implemented native popen[234]() interfaces, modelled very
closely on the Win32 implementation. Redirecting Python's stdio &
stderr no longer results in bizarreness with popen[234]().
- DistUtils is now OS/2&EMX aware. I'm not sure whether I've covered
all cases, but it is sufficiently functional to build and install
NumPy v19.0.0, including the extra packages in the Numpy sourceball.
- A variant of the port incorporating Christian Tismer's Stackless Python
patches is now available.
- I have written Python library modules that substitute for the standard
extension modules pwd and grp, located in Lib/plat-os2emx. These
replacement modules fully support Unix style passwd and group database
files, and obey the interface documented in the Python Library
reference for the pwd and grp modules.
Binary installation archives for both standard
(python-2.0-os2emx-bin-010425.zip) and Stackless Python
(python-2.0-os2emx-slbin-010425.zip,
accompanied by an archive containing source patches and makefiles
(python-2.0-os2emx-src-010425.zip, have
been uploaded to the incoming directories at the Hobbes
(http://hobbes.nmsu.edu/) and LEO (http://archiv.leo.org/) OS/2 software
archives, and will hopefully be available for download shortly.
The complete README for this update can be accessed via
http://www.pcug.org.au/~andymac/software.html, along with the above
packages (please get the packages from Hobbes or LEO where possible).
Getting 2.1 ported to OS/2 is now the objective.
--
Andrew I MacIntyre "These thoughts are mine alone..."
E-mail: andrew.macintyre(a)aba.gov.au (work) | Snail: PO Box 370
andymac(a)bullseye.apana.org.au (play) | Belconnen ACT 2616
andymac(a)pcug.org.au (play2) | Australia
Hi,
We're happy to announce the release of version 1.1b4 of Wing IDE. This
includes substantial improvements and new features since 1.1b3. For
example: Python 2.1 support, recent menus for files/projects, online
help, cross-platform project files, configurable menu font/size,
environment variables for debug process, improved debug variable tracking
by symbol or object reference, expanded keyboard/command macros, and many
bug fixes.
Wing IDE provides a full graphical debugger with networked debugging,
interactive shell, and expression evaluator; powerful source code browser;
and source code editor with syntax highlighting, auto-completion,
auto-indentation, source structure menu, zooming to point of definition,
multi-part key bindings, keyboard/command macros, and an emacs
personality.
Version 1.1b4 is available for Windows 98/NT4/2000 and most recent Linux
distributions.
For more information, see http://www.wingide.com/wingide .
Thanks,
- Stephan
------------------------------------------------------------------------
Archaeopteryx Software, Inc. Wing IDE for Python
www.archaeopteryx.com Take Flight!