*** Call for Participation ***
10th International Python Conference - Tools Track
February 4-7, 2002
The Hilton Alexandria Mark Center
Alexandria, Virginia
Proposal submission deadline: Friday, October 12th
Notification : Monday, October 29th
The tools track of the 10th International Python Conference is
currently seeking presentation proposals. The primary focus of the
tools track is to allow developers of tools for Python programmers to
present new products & technologies, and to gather feedback from the
audience. Any project, product or technology aimed at Python
developers is appropriate to present here, whether aimed at the
design, coding, testing, deployment, or other phases of software
development. Possible topics of interest include, but are not limited
to the following:
- Commercial products based on Python.
- Python IDEs and development tools.
- Python extension modules.
- Mini-tutorials on a specific programming topic or tool.
- Work in progress reports on existing Python tools.
To submit a proposal to the tools track, send an email message to
tools(a)python10.org. In your message, include the following
information:
- Speaker name and affiliation
- Contact address
- Presentation title
- A one paragraph abstract
- Approximate presentation time (if known).
Presentations should be aimed at a technical audience. Proposals that
blatantly focus on sales or marketing will be rejected. Also,
proposals will be given preference based on the order in which they
are received. Please submit your proposal now while time slots are
available!
You will receive a confirmation when your proposal is received. If you
hear nothing or already submitted a proposal, please make sure you
reconfirm your submission.
Additional information about the Python conference can be found at
http://www.python10.org.
David Beazley - Tools track chair
beazley(a)cs.uchicago.edu
__________________________________________________________________
Announcing: LazyPython v0.5
deep_reload v0.5
Tools for the interactive Python prompt.
__________________________________________________________________
WHAT ARE THEY?
LazyPython is an exception hook for Python versions 2.1 and later that brings
shell escapes, auto-parenthesizing and auto-quoting to the python interactive
prompt.
deep_reload is an import hook for Python versions 1.5.2 and above that causes
the reload() command to act recursively, reloading all of the modules that a
given module imports.
Together they enhance the convenience of the Python prompt as an
interactive environment like, for example, Matlab.
HOW DO I USE THEM?
Here's an example LazyPython session:
>>> import LazyPython
Welcome to Lazy Python. Type "help LazyPython" for help.
>>> sys.excepthook = LazyPython.LazyPython()
>>>
>>> # '!' is the shell escape character
>>> !pwd
/home/n8gray/python
>>> !ls
CVS gracePlot.py n8utils.pyc
Clex.py gracePlot.py.bak pythonstartup.py
Heller_inline_message.txt gracePlot.py.bck pythonstartup.py.bck
... snip listing ...
>>>
>>> # '/' is the auto-paren escape character
>>> import gracePlot
>>> /reload gracePlot # Look Ma, no parens!
--> reload(gracePlot)
>>> # When LazyPython rewrites your command line it notifies you with
>>> # the line "--> <new-cmd-line>\n\n"
>>>
>>> # Since reload is a callable, you don't really even have to escape it!
>>> reload gracePlot # No '/' or parens
--> reload(gracePlot)
>>> # ',' is the auto-quote escape character
>>> ,some_function arg1 arg2 arg3
--> some_function("arg1", "arg2", "arg3")
>>> # You can also specify a list of auto-quote functions that you don't
>>> # need to escape. Assuming we have a convenience function 'cp'
>>> # that we've specified as an auto-quote function:
>>> cp somefile someotherfile # Yes, you could also use a shell escape
--> cp("somefile", "someotherfile")
>>>
Here's how you use deep_reload:
>>> import __builtin__, deep_reload
>>> __builtin__.reload = deep_reload.reload
>>> import Numeric
>>> reload Numeric # LazyPython auto-parenning :-)
--> reload(Numeric)
Reloading Numeric
Reloading numeric_version
Reloading multiarray
Reloading umath
... snip a bunch of other modules ...
Reloading copy
Reloading org
<module 'Numeric' from '/usr/local/[snip...]/Numeric.pyc'>
>>>
WHY ARE THEY USEFUL?
The interactive capability of Python is one of its shining strengths. However,
it seems that the interactive prompt was not intended to be the primary
working environment for Python programmers and it lacks certain convenience
features, like shell escapes, that would enable this usage. As packages such
as Matlab demonstrate, though, an interactive prompt can be a very effective
working environment, and thanks to advances such as pydoc, Python is achingly
close to providing an interactive prompt that one can work at for hours at a
time. These files aim to bring the Python prompt closer to dedicated
interactive environments such as Matlab in terms of convenience and
productivity.
Working interactively is much different than writing a program. Every
keystroke is precious. This is why the syntax of shells are so different from
that of most programming languages. This, plus the utility of shell escapes,
is the motivation for LazyPython.
Also, when working interactively there are many times when one wishes to reload
his entire project at once rather than one module at a time. This is when
deep_reload comes in useful.
Using these utilities I have successfully and comfortably used Python as an
interactive scientific computing environment.
WHERE CAN I GET THEM?
Both files can be obtained at:
http://www.idyll.org/~n8gray/code/index.html
__________________________________________________________________
Cheers,
-n8
--
Nathaniel Gray
California Institute of Technology
Computation and Neural Systems
--
__________________________________________________________________
Announcing: gracePlot.py v0.5
An interactive, user-friendly python interface to the
Grace plotting package.
__________________________________________________________________
* WHAT IS IT?
gracePlot.py is a high-level interface to the Grace plotting package available
at: http://plasma-gate.weizmann.ac.il/Grace/ The goal of gracePlot is to offer
the user an interactive plotting capability similar to that found in commercial
packages such as Matlab and Mathematica, including GUI support for modifying
plots and a user-friendly, pythonic interactive command-line interface.
* WHAT FEATURES DOES IT OFFER?
Since this package is in the early stages of development it does not yet provide
high-level command-line access to all of Grace's plotting functionality. It
does, however, offer:
* Line Plots (with or without errorbars)
* Histograms (with or without errorbars)
* Multiple graphs (sets of axes) per plot
* Multiple simultaneous plots (grace sessions)
* Overlaid graphs, using a 'hold' command similar to Matlab's
* Legends, titles, axis labels, and axis limits
* Integration with Numerical Python and Scientific Python's Histogram
object
Note that all advanced features and customizations are available through the
Grace UI, so you can compose rough plots in Python and then polish them up in
Grace.
* HOW DO I USE IT?
Here is an example session that creates a plot with two sets of axes, putting
a line plot in one and a histogram in the other:
Python 2.1.1 (#2, Jul 31 2001, 14:10:42)
[GCC 2.96 20000731 (Linux-Mandrake 8.0 2.96-0.48mdk)] on linux2
Type "copyright", "credits" or "license" for more information.
>>> from gracePlot import gracePlot
>>> p = gracePlot() # A grace session opens
>>> p.plot( [1,2,3,4,5], [10, 4, 2, 4, 10], [1, 0.7, 0.5, 1, 2],
... symbols=1 ) # A plot with errorbars & symbols
>>> p.title('Funding: Ministry of Silly Walks')
>>> p.ylabel('Funding (Pounds\S10\N)')
>>> p.multi(2,1) # Multiple plots: 2 rows, 1 column
>>> p.xlimit(0, 6) # Set limits of x-axis
>>> p.focus(1,0) # Set current graph to row 1, column 0
>>> p.histoPlot( [7, 15, 18, 20, 21], x_min=1,
... dy=[2, 3.5, 4.6, 7.2, 8.8]) # A histogram w/errorbars
>>> p.xlabel('Silliness Index')
>>> p.ylabel('Applications/yr')
>>> p.xlimit(0, 6) # Set limits of x-axis
The result of this session can be found at:
http://www.idyll.org/~n8gray/code/index.html
* WHERE DO I GET IT?
gracePlot is available here:
http://www.idyll.org/~n8gray/code/index.html
___________________________________________________________
Cheers,
-n8
--
Nathaniel Gray
California Institute of Technology
Computation and Neural Systems
--
pyproxy
--------
A combined TCP and ICP to ICMP mapping proxy in Python.
pyproxy is a combined TCP and ICP to ICMP mapping proxy implemented in
Python. The TCP proxy is a basic TCP forwarding proxy. The ICP to ICMP
mapping proxy converts incoming ICP queries to ICMP pings, returning ICP
MISS responses when the ping returns. pyproxy is designed primarily to allow
Squid to use ICP load balancing to upstream proxies that don't allow or
support ICP or UDP echo.
This was announced some time ago on freshmeat and put on Parnassus. At the
time of posting on Parnassus, I thought I requested it be announced on
python-announce, but it doesn't seem to have happened. It is in active use,
though it is still in beta. It is a simple example of how to use the Python
asyncore module.
URL: http://freshmeat.net/projects/pyproxy/
License: GPL
Platform: Linux
Requires:
Categories: Net Applications, Sockets, Proxy
Donovan Baarda (abo(a)minkirri.apana.org.au)
http://sourceforge.net/users/abo
--
<a href="http://freshmeat.net/projects/pyproxy/">pyproxy</a> -- A combined
TCP and ICP to ICMP mapping proxy in Python
I have updated Python in the standard Cygwin distribution to 2.1.1-2.
Python is located in the contrib/python directory on the Cygwin mirrors.
Cygwin's setup.exe will automatically install or update Python the next
time one installs or updates from a mirror.
If interested, see the following for a copy of the original announcement:
http://www.cygwin.com/ml/cygwin-announce/2001/msg00118.html
I kindly request that people post to python-list(a)python.org or
cygwin(a)cygwin.com as appropriate instead of emailing me directly.
Thanks,
Jason
colorize.py
-----------
Color printing to console.
colorize.py can print colorized text to console, including background,
using terminal codes. No curses needed.
URL: http://silmarill.org/colorize.py
License: GPL
Platform: Linux
Categories: Text Based UI
andrei kulakov
--
<a href="http://silmarill.org/colorize.py">colorize.py</a> -- Color
printing to console.
Sendmail Milters in Python
Milter is a python module providing an interface to sendmail-8.11
libmilter. A Python milter lets python code work with sendmail to
remove spam, scan for viruses, and otherwise monitor and/or alter mail
messages as they are received by sendmail. This is more efficient than
procmail solutions because messages are handled as they are received by
sendmail. Thus, a message with a subject containing '$$$' can be rejected
before it is fully received.
Version 0.3.1 of milter has been extensively tested on a production
aix-4.1.5 mail server with python-2.1.1 and sendmail-8.11.5. Lots
of threading bugs and memory leaks were fixed. It should even still
work on linux! :-)
For more information, visit:
http://www.bmsi.com/python/milter.html
____________________________________________
<P><A HREF="http://www.bmsi.com/python/milter.html">milter-0.3.1</A>
Python interface to sendmail libmilter API. (25-Sep-01)
--
Stuart D. Gathman <stuart(a)bmsi.com>
Business Management Systems Inc. Phone: 703 591-0911 Fax: 703 591-6154
"Confutatis maledictis, flamis acribus addictis" - Mozart background
song for the Microsoft "Where do you want to go from here?" commercial.
________________________________________________________________________
ANNOUNCING:
eGenix.com mx EXPERIMENTAL Extension Package for Python
Version 0.5.0
Experimental Python extensions providing important and useful
services for Python programmers.
________________________________________________________________________
WHAT IS IT ?:
The eGenix.com mx EXPERIMENTAL Extensions for Python are a collection
of alpha and beta quality software tools for Python which will be
integrated into the other mx Extension Packages after they have
matured to professional quality tools.
Python is an object-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.
________________________________________________________________________
WHAT'S NEW ?
This release fixes a serious bug in the mxTidy package which made
it unusable for most non-ASCII content.
In addition to this bug some minor tweaks were done, mostly
to the distutils setup.
________________________________________________________________________
EGENIX.COM MX EXPERIMENTAL PACKAGE OVERVIEW:
mxNumber - Python Interface to GNU MP Number Types
mxNumber provides direct access to the high performance numeric
types available in the GNU Multi-Precision Lib (GMP). This
library is licensed under the LGPL and runs on practically all
Unix platforms. eGenix.com has ported the GMP lib to Windows, to
also provide our Windows users with the added benefit of being
able to do arbitrary precision calculations.
The package currently provide these numerical types:
1. Integer(value) -- arbitrary precision integers much like
Python longs 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
mxTidy - Interface to HTML Tidy (HTML/XML cleanup tool)
mxTidy provides a Python interface to a thread-safe, library
version of the HTML Tidy. command line tool.
HTML Tidy helps you to cleanup coding errors in HTML and XML
files and produce well-formed HTML, XHTML or XML as output. This
allows you to preprocess web-page for inclusion in XML
repositories, prepare broken XML files for validation and also
makes it possible to write converters from well-known word
processing applications such as MS Word to other structured data
representations by using XML as intermediate format.
________________________________________________________________________
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 EXPERIMENTAL packages uses different licenses in its subpackages.
Please refer to the subpackage documentation for details. Some of them
may be integrated into the BASE package, others will be integrated
into the COMMERCIAL package.
The package comes with full source code
________________________________________________________________________
WHERE CAN I GET SUPPORT ?
There currently is no support for these packages, since they are
still in alpha or beta. Feedback is welcome, though, so don't
hesitate to write us about the quirks you find.
________________________________________________________________________
REFERENCE:
<P><A HREF="http://www.lemburg.com/files/python/">eGenix.com mx
EXPERIMENTAL Extension Package 0.5.0</A> - eGenix.com mx EXPERIMENTAL
Extension Package 0.5.0 with precompiled binaries for Windows and
Linux. (24-Sep-2001)
________________________________________________________________________
Enjoy,
--
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Company & Consulting: http://www.egenix.com/
Python Software: http://www.lemburg.com/python/
PEP 247 specifies a standard Python API for cryptographic hashing
algorithms such as MD5 or SHA, to make it easier to switch between
different implementations. After a round of comments from the gang on
the python-crypto list, I believe the PEP is complete, and am
requesting one last round of comments on it. The HTML version is at:
http://python.sourceforge.net/peps/pep-0247.html
If no one points out any problems with the text, then the PEP can be
considered finished, and we can begin checking that hash modules
comply with the API.
--amk
Since I last announced it here, I've improved my Tagged Message
Delivery Agent, making it much easier for legitimate, but unknown
senders to get mail through to you. It now validates these messages
using a simple challenge/response process similar to SpamCop's.
* TMDA Summary:
TMDA is an OSI certified Python application for qmail systems
designed to significantly reduce the amount of SPAM/UCE you receive.
A "whitelist" filter allows known contacts immediately into your
mailbox, and all others must reply to a simple confirmation to
validate their message. Once they respond to the confirmation,
their original message is delivered to you.
For more information including download locations and installation
instructions, visit the TMDA homepage:
<URL:http://tmda.sourceforge.net/>
Enjoy,
Jason R. Mastaler
<P><A HREF="http://tmda.sourceforge.net/">TMDA 0.37</A> -
SPAM reduction system for qmail. (20-Sep-2001)