From max@alcyone.com Tue Oct 1 03:28:36 2002 From: max@alcyone.com (Erik Max Francis) Date: Mon, 30 Sep 2002 19:28:36 -0700 Subject: ANN: empy 2.0 -- Embed Python in template text as markup Message-ID: Summary empy is a system for embedding Python expressions and statements in template text; it takes an empy source file, processes it, and produces output. This is accomplished via expansions, which are special signals to the empy system and are set off by a special prefix (by default the at sign, '@'). empy can expand arbitrary Python expressions and statements in this way, as well as a variety of special forms. Textual data not explicitly delimited in this way is sent unaffected to the output, allowing Python to be used in effect as a markup language. Also supported are "hook" callbacks, recording and playback via diversions, and dynamic, chainable filters. The system is highly configurable via command line options and embedded commands. Expressions are embedded in text with the '@(...)' notation; variations include conditional expressions with '@(...?...:...)' and the ability to handle thrown exceptions with '@(...$...)'. As a shortcut, simple variables and expressions can be abbreviated as '@variable', '@object.attribute', '@function(arguments)', '@sequence[index]', and combinations. Full-fledged statements are embedded with '@{...}'. Forms of conditional and repeated expansion are available via '@[...]'. A '@' followed by a whitespace character (including a newline) expands to nothing, allowing string concatenations and line continuations. Comments are indicated with '@#' and consume the rest of the line, up to and including the trailing newline. '@%' indicate "significators," which are special forms of variable assignment intended to specify per-file identification information in a format which is easy to parse externally. C-style escape sequences can be specified with '@\...', and finally a '@@' sequence expands to a single literal at sign. Getting the software The current version of empy is 2.0. The latest version of the software is available in a tarball here: "http://www.alcyone.com/pyos/empy/empy-latest.tar.gz", http://www.alcyone.com/pyos/empy/empy-latest.tar.gz. The official URL for this Web site is "http://www.alcyone.com/pyos/empy/", http://www.alcyone.com/pyos/empy/. Requirements empy should work with any version of Python from 1.5.x onward. License This code is released under the "GPL", http://www.gnu.org/copyleft/gpl.html. ... Release history [since 1.x] - 2.0; 2002 Sep 30. Parsing system completely revamped and simplified, eliminating a whole class of context-related bugs; builtin support for buffered filters; support for registering hooks; support for command line arguments; interactive mode with -i; significator value extended to be any valid Python expression. -- Erik Max Francis / max@alcyone.com / http://www.alcyone.com/max/ __ San Jose, CA, US / 37 20 N 121 53 W / ICQ16063900 / &tSftDotIotE / \ To be adult is to be alone. \__/ Jean Rostand Crank Dot Net / http://www.crank.net/ Cranks, crackpots, kooks, & loons on the Net. From ilya@glas.net Tue Oct 1 13:19:01 2002 From: ilya@glas.net (Ilya Etingof) Date: Tue, 01 Oct 2002 16:19:01 +0400 Subject: ANN: the first beta of PySNMP 3.x has been released Message-ID: This is the first beta release of 3.x branch of PySNMP software, a SNMP framework aimed at developing a highly extensible, modular and standards compliant SNMP implementation purely in Python programming language. Features of the 3.0.0 release: * The ASN.1 code has been re-written to become a more generic framework for building and handling ASN.1 data types. * The BER code has been split off the ASN.1 code and re-written as a set of classes that can be mixed-into ASN.1 ones to provide BER functionality to the resultant object. The idea behind this design aims at allowing many concurrent ASN.1 objects serialization methods. * A highly flexible, low-level interface to SNMP functionality has been introduced. * Compatibility APIs to previous PySNMP versions have been added. * Package documentation has been re-worked and extended. The source code of pysnmp-3.0.0.tar.gz can be downloaded from SourceForge: http://sourceforge.net/project/showfiles.php?group_id=14735&release_id=113926 Bug fixes and design improvements are very welcome! ;-) Thanks, ilya From barry@python.org Tue Oct 1 19:18:27 2002 From: barry@python.org (Barry A. Warsaw) Date: Tue, 1 Oct 2002 14:18:27 -0400 Subject: RELEASED email package version 2.4 Message-ID: I've just released the (standalone) email package version 2.4. This is identical to the version that is in the current cvs development tree for Python 2.3. It is also the version that I plan to back port to Python 2.2.2. I've also done a massive update to the web site documentation. Thanks to Fred Drake, the latter is actually in a usable format. :) email 2.4 is made available as a distutils package for installing in earlier versions of Python. It is compatible with Python 2.1.3, Python 2.2.1, and Python 2.3 cvs. email 2.4 is backward compatible with email version 1, which was released as part of Python 2.2.1. The email package is a library for parsing, handling, and generating email messages and other RFC 2822 style documents. It conforms to most of the email related RFCs including 2045-2047 (the MIME RFCs) and 2231. It is intended to replace several older modules in the standard distribution, such as rfc822, mimetools, multifile, mimify, and MIMEWriter, and such non-standard modules as mimecntl. email-2.4.tar.gz is available from the mimelib project on SourceForge: http://sf.net/projects/mimelib More information, as well as on-line documentation is available on the home page: http://mimelib.sf.net As this is the version I plan to back port to Python 2.2.2 in a few days, feedback, either on the code or the documentation, will be welcome. Enjoy, -Barry From pinard@iro.umontreal.ca Tue Oct 1 22:33:23 2002 From: pinard@iro.umontreal.ca (=?iso-8859-1?q?Fran=E7ois?= Pinard) Date: Tue, 01 Oct 2002 17:33:23 -0400 Subject: RELEASE: Recodec 0.1 Message-ID: Hello, everybody. Recodec is a Python (2.2.1 or better) clone of Free `recode', and as such, it converts strings or files between character sets and usages. Version 0.1 is now at `http://www.iro.umontreal.ca/~pinard/recodec/Recodec.tar.gz'. See `http://www.iro.umontreal.ca/~pinard/recodec/' for a copy of `README'. Pretesters may gently report problems, suggestions or other comments to `mailto:pinard@iro.umontreal.ca'. `recode'-related discussions go to `mailto:recode-forum@iro.umontreal.ca', which is opened to subscribers. Python specific discussions might go to `mailto:python-list@python.org'. User visible changes since last release: .. `Unicode-Escape-X' (`ue') charset, according to Java documentation. .. `flat' and `Texinfo' are better connected to more charsets. .. `--find-subsets' (`-T') results are automatically sorted. .. `--list=codings' (`-lc') shows the handiest alias for each coding. Most changes are internal. -- François Pinard http://www.iro.umontreal.ca/~pinard From rjones@ekit-inc.com Wed Oct 2 07:15:06 2002 From: rjones@ekit-inc.com (Richard Jones) Date: Wed, 2 Oct 2002 16:15:06 +1000 Subject: SC-Track Roundup 0.5.0 - an issue tracking system Message-ID: ================================================= SC-Track Roundup 0.5.0 - an issue tracking system ================================================= Note: If you are upgrading, you *must* read doc/upgrading.txt! Roundup requires python 2.1.1 for correct operation. Support for dumbdbm requires python 2.1.2 or 2.2. 2.1.3 and 2.2.1 are recommended. A lot has been done since 0.4.4: - new backend for metakit (thanks Gordon McMillan) - new backend for sqlite - new backend for gadfly (it's as done as it's going to get) - added Boolean and Number types - fixed the journal bloat, re-enabling useful link journal events - full-text search may also search certain String properties - entire database export and import (including files) - implemented new per-user access control mechanisms (Permissions, Roles) - switched templating to use Zope's PageTemplates giving much more flexibility - made web interface more generic, robust, give nicer errors, ... - revamped look and feel in web interface including cleaned up CSS usage - switched to cookie-based sessions for web authentication - saving of named search queries - lots of documentation cleanups including an updated customisation document with los of examples and a new maintenance guide - roundup-server may be a daemon now (fork, logfile, pidfile) - many, many more bug fixes, cleanups and minor improvements (see CHANGES.txt) This final 0.5.0 release fixes the following problems: - fixed style for alternating rows in user lists - a couple of other minor bugs - updated demo to use 0.5 codebase Source and documentation is available at the website: http://roundup.sourceforge.net/ Release Info (via download page): http://sourceforge.net/projects/roundup Mailing lists - the place to ask questions: http://sourceforge.net/mail/?group_id=31577 About Roundup ============= Roundup is a simple-to-use and -install issue-tracking system with command-line, web and e-mail interfaces. It is based on the winning design from Ka-Ping Yee in the Software Carpentry "Track" design competition. Note: Ping is not responsible for this project. The contact for this project is richard@users.sourceforge.net. Roundup manages a number of issues (with flexible properties such as "description", "priority", and so on) and provides the ability to: (a) submit new issues, (b) find and edit existing issues, and (c) discuss issues with other participants. The system will facilitate communication among the participants by managing discussions and notifying interested parties when issues are edited. One of the major design goals for Roundup that it be simple to get going. Roundup is therefore usable "out of the box" with any python 2.1+ installation. It doesn't even need to be "installed" to be operational, though a disutils-based install script is provided. It comes with two issue tracker templates (a classic bug/feature tracker and a minimal skeleton) and six database back-ends (anydbm, bsddb, bsddb3, sqlite, metakit and gadfly). From kjetilja@cs.uit.no Wed Oct 2 10:34:41 2002 From: kjetilja@cs.uit.no (Kjetil Jacobsen) Date: 2 Oct 2002 02:34:41 -0700 Subject: ANN: PycURL 7.10 released! Message-ID: pycurl -- A Python interface to the cURL library What is it? ----------- The pycurl package is a Python interface to the curl library (http://curl.haxx.se/libcurl/). pycurl has been successfully built and tested with Python versions from 1.5.2 to 2.2.1. The curl library s a client-side URL transfer library supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. The cURL library also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploads, proxies, cookies, basic authentication, file transfer resume of FTP sessions, HTTP proxy tunneling and more. For information on how the curl library works, please consult the curl library web pages (http://curl.haxx.se/libcurl/using/). All the functionality provided by the curl library can used through the pycurl interface. Download -------- The latest version of pycurl (7.10) can be obtained at: http://pycurl.sourceforge.net/ Changes since the last version ------------------------------ * Added commandline options to setup.py for specifying the path to 'curl-config' (non-windows) and the curl installation directory (windows). See the 'INSTALL' file for details. * Added CURLOPT_ENCODING, CURLOPT_NOSIGNAL and CURLOPT_BUFFERSIZE from libcurl-7.10. Licence ------- Copyright (c) 2001-2002 by Kjetil Jacobsen Copyright (c) 2001-2002 by Markus F.X.J. Oberhumer PycURL is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. From drifty@bigfoot.com Wed Oct 2 20:58:40 2002 From: drifty@bigfoot.com (Brett C.) Date: 2 Oct 2002 12:58:40 -0700 Subject: Python-dev Summary for 2002-09-16 through 2002-09-30 Message-ID: This is a summary of traffic on the `python-dev mailing list`_ between September 16, 2002 and September 30, 2002 (inclusive). It is intended to inform the wider Python community of ongoing developments on the list that might interest the wider Python community. To comment on anything mentioned here, just post to python-list@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 (or anything else for that matter) if you have an opinion. And if all of this really interests you then get involved and join Python-dev! This is the third summary written by Brett Cannon (with no more wisdom teeth). Summaries by me (2002-09-15 to ... when I burn out) are archived at: http://www.ocf.berkeley.edu/~bac/python-dev/summaries/index.php You can find summaries by Michael Hudson (2002-02-01 to 2001-07-05) at: http://starship.python.net/crew/mwh/summaries/index.html Summaries by A.M. Kuchling (2000-12-01 to 2001-01-31) are at: http://www.amk.ca/python/dev/ Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sourceforge.net/rst.html . Any unfamiliar punctuation is probably markup for reST; you can safely ignore it (although I suggest learning reST; its nice and is accepted for PEP markup). Also, because of the wonders of reformatting thanks to whatever you are using to read this, I cannot guarantee you will be able to run this text through DocUtils as-is. If you want to do that, get the original text from the archive. Since not a single person sent me an email about my idea of compiling a list of nicknames of people on Python-dev I won't bother. .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _reST: .. _reStructuredText: http://docutils.sf.net/ ======================================== `flextype.c -- extended type system`__ ======================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028736.html (continuation from `last summary`_) To clarify what Christian Tismer's metatype patch basically implements, he said that his "additions support a subset of C++ virtual methods". And in response to a question from me about how this might affect magic methods, he said he "*could* support any magic slot and put it into the extended type object with a Python name. And even better, this version could have full type checking, as my other methods have as well!" Martin v. Loewis doesn't see the use of this because extensions in C are usually just wrappers and C++ extensions already have the functionality. Thomas Heller, though, likes it because he wants a way "to add additional C accessible structure fields to types". As an aside, a suggestion to David about having to put instance-specific info in __dict__, Thomas said "You can (but you probably know this already) replace the type's tp_dict by a custom subclass of PyDict_Object, which adds additional fields." .. _last summary: http://www.ocf.berkeley.edu/~bac/python-dev/summaries/2002-09-01--2002-09-15.html ================================== `Moratorium on changes to IDLE`__ ================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028776.html Guido said that he would "like to put a stop to all changes to the version of IDLE in the Python source tree (`Tools/idle/*`_ -- let's call it Python-idle)". All changes should go through IDLEfork_ . It will then get merged into CVS before 2.3 is released. Currently Idlefork is working with 2.2 and Guido would like to keep it that way so that more people use IDLE. .. _Tools/idle/*: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Tools/idle/ .. _IDLEfork: http://idlefork.sf.net/ =========================================== `Weeding out obsolete modules and Demos`__ =========================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028718.html (continuation from `last summary`_) Guido removed the obsolete SGI demos from Demo_ as mentioned from the last summary. If anyone else out there has any demos that they think are no longer needed, submit a `SF patch`_ mentioning what you think should be removed and why. .. _Demo: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Demo/ .. _SF patch: http://sourceforge.net/tracker/group_id=5470&atid=305470 ======================= `ReST-ing Misc/NEWS`__ ======================= __ http://mail.python.org/pipermail/python-dev/2002-September/028799.html Skip changed `Misc/NEWS`_ into a reST document. Hopefully this will end up somewhere on http://www.python.org so people can be kept very up-to-date on what changes have been made in CVS_ . .. _Misc/NEWS: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Misc/NEWS .. _CVS: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/ ==================================== `mysterious hangs in socket code`__ ==================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028555.html (continued from `last summary`_) People are still trying to weed out issues with threaded code that seems to act single-threaded. The suspect is still glibc's getaddrinfo() implementation; POSIX says it is supposed to be thread-safe but not everyone is believing that. ===================================================== `ATTENTION! Releasing Python 2.2.2 in a few weeks`__ ===================================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028806.html Guido announced that he would like to get Python 2.2.2 out the door by October 8. PythonLabs is busy as it is and thus do not have time to thoroughly make sure everything gets done. What can you do to help? Glad you asked: "the best thing you can do is take your favorite set of modules or core files and systematically backport anything that's clearly a bugfix and backports easily. Or you could simply make sure that your favorite bugfix is backported". If you don't have checkin, either team up with someone who does or request checkin rights (decision will be based on reputation). SF should not be used for saying what should and shouldn't be backported. This should all be done through Python-dev. Michael McLay suggest a wiki to handle all of this (thank goodness; the amount of traffic this would have generated would have killed me). Skip said he could set one up rather quickly and he did at http://manatee.mojam.com/py222wiki/ . Laura Creighton mentioned what she planned to do for Python-in-a-Tie (Py-tie). Looks like the current plan is to make Python 2.2.2 the initial release and add in things from there based on developer feedback instead of taking future releases and removing what they don't need. Perhaps Py-tie will end up taking the place of the elusive `Sumo distro`_? Ralf W. Grosse-Kunstleve brought up how a bug report about C++ compatibility had not been handled yet. Both Tim and Guido said that if he wanted a solution put in they would need a patch; neither of them are C++ users (Ralf subsequently provided a patch that Neal Norwitz has assgined to himself and will apply and backport at http://www.python.org/sf/607253 ). C++ uses should keep that in mind when trying to get C++ stuff into the core. Gustavo Niemeyer said that he has a script for adding moin pages using your favorite editor. He also has a syntax highlight file for Vim. All of this can be found at http://moin.conectiva.com.br/EditMoin . .. _Sumo distro: http://www.python.org/peps/pep-0206.html ================================ `Built-in functions, kw args`__ ================================ __ http://mail.python.org/pipermail/python-dev/2002-September/028811.html Jp Calderone brought up the question of whether ParseTupleAndKeywords should be used more often then ParseTuple in the core. Guido pointed out that ParseTupleAndKeywords did not exist since the beginning of time, it's slower, and much harder to use. Guido basically ended up saying use it if you want, it isn't required. ======================= `Python for OpenVMS`__ ======================= __ http://mail.python.org/pipermail/python-dev/2002-September/028814.html Skip Montanaro announced that Jean-Francois Pieronne had ported Python 2.1.3 over to OpenVMS_ . Skip has also informed me that Jean-Francois has submitted some patches against the 2.3 tree. .. _OpenVMS: http://www.openvms.org/ ================ `-zcombreloc`__ ================ __ http://mail.python.org/pipermail/python-dev/2002-September/028822.html In Andrew Koenig's continual quest to get Python to build with Binutils 2.13 under Solaris, Andrew discovered through discussions with the Binutils developers "that -zcombreloc just plain doesn't work in any release of binutils". Andrew thinks this will get fixed in Binutils 2.13.1 . But what about until then? Well, you are out of luck on Solaris with Binutils 2.13 . There is a test you can run to see if you will be affected by this bug in this email at http://mail.python.org/pipermail/python-dev/2002-September/028822.html . =================================================== `Need advice: cloning python cvs for CE project`__ =================================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028842.html Brad Clements of the "python ce" project asked for advice on how to "maintain a single working directory that can be checked into two different CVS systems". Guido said they could have a branch in the CVS tree if they were all Python developers "or can be sworn in easily". The other option Guido presented was for them to start their own SF project and do a vendor branch checking; this is how IDLE-fork does it. Martin gave some instructions on how to do this in an email which can be reached at http://mail.python.org/pipermail/python-dev/2002-September/028852.html . ============================= `Assign to errno allowed?`__ ============================= __ http://mail.python.org/pipermail/python-dev/2002-September/028868.html Thomas Heller was patching selectmodule.c_ for Windows to deal with the fact that it does not set errno. Thomas wondered if it would be okay to set errno himself. Everyone in the end said it was fine (even the man page for errno). Through the discussion over whether not setting errno was proper, it was pointed out by Thomas that the entire reason he was fixing this was for asyncore_ to work; apparently it has always been broken on Windows. Guido suggested a simple fix to the module to make it work. The other point that came up that Windows CE and NetWare don't allow for direct signing to errno; ``errno = 0`` is an error on those platforms. Brad Clements submitted a patch to add a macro to Python for setting errno. Well, Tim pointed out that it is an ISO C requirement that errno be assignable. This led Guido to "have a very strong urge to tell [Brad's patch] to go away". Let me say that from my personal experience on Python-dev I have noticed that Python-dev does not like work-arounds for things that don't work because something does not follow a standard; this is especially true for anything dealing with ISO C. So if you have a problem and it is because your platform is not standards-compliant, I would not expect to get much sympathy from Python-dev (unless it is a Windows desktop OS =). In the end it was suggested to the CE guys to just keep a branch of the CVS where they fixed the whole errno issue. That way they can just sync with the core and not have to go through and change all of the errno lines every time they sync. This thread even split into another one entitled `Reserved keywords in source`_ in which Brad Clements pointed out that ``finally`` is a reserved word on Windows CE. This, once again, flies in the face of ISO C. .. _selectmodule.c: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Modules/selectmodule.c .. _asyncore: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Lib/asyncore.py .. _Reserved keywords in source: http://mail.python.org/pipermail/python-dev/2002-September/028912.html ============= `sorted()`__ ============= __ http://mail.python.org/pipermail/python-dev/2002-September/028925.html Francois Pinard brought up the point that most beginners don't realize that ``.sort()`` does not return anything; the sorting is done in-place. He thought that adding a ``.sorted()`` method to lists that would work just like ``.sort()`` but also return the list would be nice. Would not only possibly simplify some code by allowing a sort method to be called in the header of a ``for`` loop, but possibly prevent newbie errors as previously mentioned. Greg Ewing suggested a ``sorted()`` function instead that would basically do what Francois wanted. This causeed Timothy Delaney to suggest possible magic methods ``__sort__`` and ``__isort__``. Guido responded saying that "this is a problem that should not be addressed by changes to the language, builtins or library". So there you go, the BDFL has spoken. ============================== `Lib/plat-xxxx directories`__ ============================== __ http://mail.python.org/pipermail/python-dev/2002-September/028933.html In case people are interested, the Lib/plat-xxx directories are "for platform-specific modules". Most of them, apparently, "are collections of system constants generated by Tools/scripts/h2py.py" . .. _Tools/scripts/h2py.py: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Tools/scripts/h2py.py ================================== `How to add an encoding alias?`__ ================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028936.html For the spambayes_ project, Guido asked how to add an encoding to ``encodings.aliases``. He wondered if there was an official API or if:: import encodings.aliases encodings.aliases.aliases['ansi-x3-4-1968'] = 'ascii' # This is wrong! Read on for why... was the way to do it. M.A. Lemburg pointed responded that the above-mentioned way is the only way to do it in 2.2 . He also mentioned that hyphens must be changed to underscores for names. MAL suggested that all non-alphanumeric characters be mapped to underscores before referring to the aliases dictionary. Guido voted +1 for the change and +1 to backporting to 2.2.2 . .. _spambayes: http://spambayes.sf.net ======================================== `User extendable literal modifiers?!`__ ======================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028945.html M.A. Lemburg asked what everyone thought of having the ability to add new literal modifiers (e.g. ``L`` in ``123L``) to the interpreter. Gareth McCaughan suggest "uder-definable *prefixes*". His example is of Common Lisp's ability to have you define something as ``#`` and then parse it based on . Alex Martelli liked the idea and suggested that ``@`` be the proposed symbol instead of ``$`` as originally suggested. Alex also said that being able to parse multiple tokens would be important. Jeff Epler pointed out that this could all be done right now with some ugly syntax:: class Dimension: ... class DimensionMaker: def __call__(self, v): return Dimension(v) def __add__(self, v): return Dimension(v) D = DimensionMaker() >>> D+"123" # Can be considered same as defining D"123" Guido said that "Given all the discussion, this will need a PEP". He later pointed out that a possible problem is that if you are not very familiar with a program you might probably won't know what a specific prefix is. With a function the worst would be having to look through a module that was imported with ``from import *`` ("that's one reason to avoid these" types of imports). MAL said that Guido was "probably right" about this possible confusion. =========================================== `Keyword for first argument of methods?`__ =========================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028960.html David Abrahams noticed that if he defined the code:: class X: def foo(self, y): print y that ``X.foo(y=1, self=X())`` fails with a TypeError. Guido said that "You can't pass in self to an unbound method as a keyword argument". Best way to have an unbound method is with __call__ . I think using something like the new staticmethod() or classmethod() functions in Python 2.2 would get the job done. ============================================ `Strange bug only happens with Python 2.2`__ ============================================ __ http://mail.python.org/pipermail/python-dev/2002-September/028966.html Gerhard Haring discovered a funky bug dealing with an error saying that a custom object was a string and lacking a __bases__ attribute. What is pertinent to this thread is not the bug (it got fixed in Python 2.3 and has been backported to 2.2.2), but what caused the bug. In abstract.c there was some code that forgot to call PyErr_Clear() . When your extension code catches an error and you decide to either ignore it or go another direction, you must call this function in order to prevent the exception from propogating to the top when the call is finished and raising the exception in the end. ================================================= `builtins instance have modifiable __class__?`__ ================================================= __ http://mail.python.org/pipermail/python-dev/2002-September/028978.html Samuele Pedroni asked if being able to directly assigning to __class__ was allowed for builtins. Guido said "In 2.3, it's disallowed". It is highly discouraged in 2.2.2 but still doable. Guido clarified that "setting __class__ for instances of user-defined new-style classes will be allowed (if the new __class__ value is compatible with the old)" . ========================================================== `Why are useful tools omitted from the Win bin distro?`__ ========================================================== __ http://mail.python.org/pipermail/python-dev/2002-September/028988.html Alex Martelli asked why the Windows distribution lacked some of the Tools subdirectory. Most of the scripts are left out since they are meant for developers. Since if you are using the pre-packaged Windows installer chances are you are not a developer since you would have compiled it. Thus these scripts are left out. Tim Peters (who maintains the WISE installer) said that in order to add a script he would have to add an individual line to the installer for each file; a definite PITA (Pain In The Ass) for Tim. There have been calls (which still stand) to document, fix, and clean out the Tools_ and Demo_ directories. No one has ever really stepped up to take this on. Any help, though, no matter how small, would be appreciated in cleaning these directories up. .. _Tools: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Tools/ ======================================= `Extension module difficulty w/pgen`__ ======================================= __ http://mail.python.org/pipermail/python-dev/2002-September/028976.html Jonathan Riehl was having difficulty getting his extension module that exposes pgen to link properly. He got it to work with a little command-line hack; that does not work for the official distro and thus he was searching for a more proper solution. He discovered that if he put dummy calls into a global function that seemed to allow it to be linked. Jonathan hoped there was a better solution. Guido, unfortunately, destroyed that hope by stating "AFAIK you have to create a dummy reference somewhere". He suggested at the end of `Python/pythonrun.c`_ to Jonathan. .. _Python/pythonrun.c: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Python/pythonrun.c ========================= `New logmerge feature`__ ========================= __ http://mail.python.org/pipermail/python-dev/2002-September/028998.html Guido added a new feature to `Tools/logmerge.py`_ that "restricts the output to a specific branch tag". This is useful if you are helping to sort through all of the commits to Python 2.3 to see what should go into 2.2.2 . .. _Tools/logmerge.py: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Tools/logmerge.py ========================================== `Snapshot win32all builds of interest?`__ ========================================== __ http://mail.python.org/pipermail/python-dev/2002-September/029005.html Mark Hammond was wondering if people would be interested in him "making regular, basically untested win32all builds against the current Python CVS tree". If you would like Mark to do this, let him know. From pinard@iro.umontreal.ca Fri Oct 4 00:11:03 2002 From: pinard@iro.umontreal.ca (=?iso-8859-1?q?Fran=E7ois?= Pinard) Date: Thu, 03 Oct 2002 19:11:03 -0400 Subject: RELEASE: Recode 0.2 Message-ID: Hello, everybody. Recodec is a Python (2.2.1 or better) clone of Free `recode', and as such, it converts strings or files between character sets and usages. Version 0.2 is now at http://www.iro.umontreal.ca/~pinard/recodec/Recodec.tar.gz. See http://www.iro.umontreal.ca/~pinard/recodec/ for a copy of `README'. Pretesters may gently report problems, suggestions or other comments to mailto:pinard@iro.umontreal.ca. `recode'-related discussions go to mailto:recode-forum@iro.umontreal.ca, which is opened to subscribers. Python specific discussions might go to mailto:python-list@python.org. User visible changes since last release: .. `--help' option added, better some documentation than none! .. `--find-subsets' (`-T') option deleted, now a separate program. .. New aliases `q4' and `QNX-4' for `IBM437'. A few bugs have been corrected. After profiling the test suite, I got a 4x speed-up through quicker alias disambiguation, and also by special casing common cases to avoid finding the shortest path in graph of steps. -- François Pinard http://www.iro.umontreal.ca/~pinard From shantels@ActiveState.com Fri Oct 4 21:10:23 2002 From: shantels@ActiveState.com (Shantel Shave) Date: Fri, 4 Oct 2002 13:10:23 -0700 Subject: ActiveState Releases Komodo 2.0 for Windows Message-ID: ActiveState is pleased to announce the release of Komodo 2.0 for Windows. This release is a major upgrade from Komodo 1.2, adding more power, flexibility and automation to the #1 IDE for open source languages. For more information, scroll down or click here: http://www.ActiveState.com/Komodo ============================= Key new features in Komodo 2.0 include: * Enhanced Project Management * Source Code Control Integration * ActiveState GUI Builder * Integrated Visual Package Manager * Customizable Key Bindings * Code Snippets * Toolbox * Enhanced Run Command * Editor Improvements Komodo 2.0 is available in two editions: Komodo 2.0 Professional Edition is for commercial usage, and features Source Code Control Integration, Visual Package Manager, and ActiveState GUI Builder. Licenses are $295.00. Komodo 2.0 Personal Edition is for educational or non-commercial usage. Licenses are $29.95. Upgrade pricing is available to registered users of previous versions. Komodo 2.0 for Microsoft Windows is available now. Komodo 2.0 for Linux is currently in Beta; final release in October 2002. For more information, free evaluation licenses, or to purchase, see: http://www.ActiveState.com/Komodo Enjoy! The Komodo Team, ActiveState From steve.vinoski@iona.com Fri Oct 4 22:25:55 2002 From: steve.vinoski@iona.com (Vinoski, Stephen) Date: Fri, 4 Oct 2002 17:25:55 -0400 Subject: WWW2003 Call for Papers Message-ID: WWW2003 CALL FOR PAPERS The Twelfth International World Wide Web Conference May 20-24, 2003, Budapest, Hungary http://www2003.org/ Paper submission deadline: November 15, 2002 The International World Wide Web Conference Committee (IW3C2) and the Computer and Automation Research Institute of the Hungarian Academy of Sciences (MTA SZTAKI) cordially invite you to participate in the Twelfth International World Wide Web Conference on May 20-24, 2003, in Budapest, Hungary. International researchers, technologists, and leaders from academia, industry, and government will gather at WWW2003 to define, refine, present, demonstrate, and discuss the latest ideas and developments. The technical program will include refereed paper presentations, alternate tracks including an Industrial track (see below), plenary sessions, panels, and poster sessions. Tutorials and workshops will precede the main program, and a Developers Day will follow, which will be devoted to in-depth technical sessions designed specifically for web developers. Hungary is situated at the heart of Europe, and has one of the fastest growing economies in the region, especially with respect to information technology and telecommunication. Budapest is one of the most beautiful capitals of the world, and is easy to reach by air or on ground. The warm hospitality of the people, excellent food, reliable and frequent public transportation, vivid cultural life, and rich museums attract millions of visitors every year. Hungary has a visitor-friendly visa policy, economically priced services and goods, and a pleasant climate, making it one of the most popular meeting venues worldwide. IMPORTANT DATES *** Paper submission deadline: November 15, 2002 *** Author notification (papers): January 31, 2003 Final papers due: February 28, 2003 Poster submission deadline: January 15, 2003 Author notification (posters): February 28, 2003 Tutorial/workshop proposals deadline: October 15, 2002 Panel proposals deadline: November 15, 2002 Conference: May 20-24, 2003 REFEREED PAPERS TRACK WWW2003 seeks original papers describing research in all areas of the web. Papers should not have been published or be in submission at another conference or journal. Topics include but are not limited to: * Applications * Browsers and User Interfaces * Electronic Commerce * Hypermedia * Mobility and Wireless Access * Multimedia * Performance and Reliability * Search and Data Mining * Security and Privacy =20 * Semantic Web * Web Engineering [New for WWW2003] Submissions should present original reports of substantive new work. Papers should properly place the work within the field, cite related work, and clearly indicate the innovative aspects of the work and its contribution to the field. We will not accept any paper which, at the time of submission, is under review for or has already been published or accepted for publication in a journal or another conference. Papers will be peer-reviewed by at least 3 reviewers from an International Program Committee. Accepted papers will appear in the conference proceedings published by the Association for Computing Machinery (ACM), and will also be accessible to the general public via http://www2003.org/. Authors are not required to transfer copyright. Detailed formatting and submission requirements are available at http://www2003.org/cfp.htm. Inquiries can be sent to www2003-pc-chairs@necmail.com. ALTERNATE TRACKS Alternate tracks include a combination of peer-reviewed papers and invited presentations. Accepted papers will appear in a separate printed proceedings to the main refereed track proceedings (excluding Panels and the Industrial and W3C tracks).=20 * Education * Global Community * Industrial Track * Practice & Experience * Web Services [New for WWW2003] * W3C Track (latest news and views from the World Wide Web Consortium) * Panels Detailed formatting and submission requirements are available at http://www2003.org/cfp.htm. Inquiries can be sent to www2003-pc-chairs@necmail.com. INDUSTRIAL TRACK The Industrial Track provides a forum for vendors, open source developers, and industry, academic, and government deployers. For more information and submission details see http://www2003.org/it/. Inquiries can be sent to mario@jeckle.de. PROGRAM COMMITTEE CO-CHAIRS Yih-Farn Robin Chen, AT&T Labs - Research, chen@research.att.com L=E1szl=F3 Kov=E1cs, MTA SZTAKI, laszlo.kovacs@sztaki.hu Steve Lawrence, NEC Research Institute, lawrence-www@necmail.com POSTERS Posters provide a forum for late-breaking research, and facilitate feedback in an informal setting. Posters are peer-reviewed. The poster area provides an opportunity for researchers and practitioners to present and demonstrate their recent web-related research, and to obtain feedback from their peers in an informal setting. It gives conference attendees a way to learn about innovative works in progress in a timely and informal manner. Formatting and submission requirements are available at http://www2003.org/cfp.htm. Inquiries can be sent to king@cse.cuhk.edu.hk. TUTORIALS AND WORKSHOPS A program of tutorials will cover topics of current interest to web design, development, services, operation, use, and evaluation. These half and full-day sessions will be led by internationally recognized experts and experienced instructors using prepared content. Workshops provide an opportunity for researchers, designers, leaders, and practitioners to explore current web R&D issues through a more focused and in-depth manner than is possible in a traditional conference session. Participants typically present position statements and hold in-depth discussions with their peers within the workshop setting. For more information and submission details see http://www2003.org/tut&ws.htm. Inquiries can be sent to bieber@oak.njit.edu. PANELS Panels provide an interactive forum that will engage both panelists and the audience in lively discussion of important and often controversial issues. For more information and submission details see http://www2003.org/panels.htm. Inquiries can be sent to carole@cs.man.ac.uk. AWARDS Best Paper, Best Student Paper, Best Alternate Track Paper, Best Alternate Track Student Paper, Best Poster, Best Student Poster, and Best Presentation awards will be presented at the conference. DEVELOPERS DAY Developers Day (D-Day) will be devoted to the interests of web developers, and will offer in-depth discussions of technologies and tools at the forefront of the web. This day-long program will consist of several parallel streams focused on specific content areas. D-Day sessions are designed to be timely and state-of-the-art.=20 For more information and submission details see http://www2003.org/dd/. Inquiries can be sent to ivan@w3.org. REFEREED TRACK AREA CHAIRS Applications:=09 Vice Chair: Fred Douglis, IBM Research, USA Deputy Vice Chair: Maarten van Steen, VU Amsterdam, Netherlands Browsers and UI: Vice Chair: Marc Najork, Microsoft Research, USA Deputy Vice Chair: Juliana Freire, OGI/OHSU, USA E-commerce: Vice Chair: Michael Wellman, University of Michigan, USA Deputy Vice Chair: John Riedl, University of Minnesota, USA Hypermedia: Vice Chair: m.c. schraefel, University of Toronto, Canada Deputy Vice Chair: Peter N=FCrnberg, Aalborg University Esbjerg, Denmark Mobility and Wireless Access: Vice Chair: Minoru Etoh, NTT DoCoMo, Japan Deputy Vice Chair: Sarolta Dibuz, Ericsson, Hungary Multimedia: Vice Chair: James Wang, Penn State University, USA Deputy Vice Chair: Eric Chang, Microsoft Research, China Performance and Reliability: Vice Chair: Craig E. Wills, WPI, USA Deputy Vice Chair: Mike Dahlin, UT Austin, USA Search and Data Mining: Vice Chair: Soumen Chakrabarti, Indian Institute of Technology, India Deputy Vice Chair: Prabhakar Raghavan, Verity, USA Security and Privacy: Vice Chair: Avi Rubin, AT&T Labs - Research, USA Deputy Vice Chair: Brian LaMacchia, Microsoft, USA Semantic Web: Vice Chair: Ian Horrocks, University of Manchester, UK Deputy Vice Chair: Brian McBride, HP, Bristol, UK Web Engineering: Vice Chair: Martin Gaedke, University of Karlsruhe, Germany Deputy Vice Chair: Daniel Schwabe, Pontifical Catholic University of Rio = de Janeiro, Brazil ALTERNATE TRACK CHAIRS Education: Co-Chair: Paul De Bra, Eindhoven University of Technology, Netherlands Co-Chair: Wolfgang Nejdl, University of Hannover, Germany Global Communities: Co-Chair: David De Roure, University of Southampton, UK Co-Chair: Liddy Nevile, La Trobe University, Australia Industrial Track: Chair: Mario Jeckle, DaimlerChrysler, Germany Deputy Chair: Mary Ellen Zurko, IBM Software Group Practice & Experience: Chair: Arun Iyengar, IBM Research, USA Deputy Chair: Krishna Kant, Intel Web Services: Chair: Steve Vinoski, IONA Technologies, USA Deputy Chair: Francisco (Paco) Curbera, IBM Research, USA W3C: Chair: Marie-Claire Forgue, W3C, France Panels: Chair: Carole Goble, University of Manchester, UK Deputy Chair: Bernard Horan, Sun Microsystems Ltd, UK TUTORIALS AND WORKSHOPS CO-CHAIRS Michael Bieber, New Jersey Institute of Technology, bieber@oak.njit.edu Beatrix Toth, MTA SZTAKI, Beatrix.Toth@ella.hu POSTER CO-CHAIRS Irwin King, The Chinese University of Hong Kong, king@cse.cuhk.edu.hk Tamas Maray, Technical University of Budapest, Hungary, maray@fsz.bme.hu DEVELOPERS DAY CO-CHAIRS Ivan Herman, W3C, ivan@w3.org J=E1nos Sz=E9l, M=C1V Informatics, janos_szel@freemail.hu CONFERENCE CO-CHAIRS Gusztav Hencsey, MTA SZTAKI, hencsey@sztaki.hu Bebo White, Stanford Linear Accelerator Center, bebo@slac.stanford.edu IW3C2 LIAISON TO WWW2003 Ivan Herman, W3C, ivan@w3.org IW3C2 LIAISON TO THE PROGRAM COMMITTEE Arun Iyengar, IBM Research, USA, aruni@us.ibm.com CONFERENCE ORGANIZERS International World Wide Web Conference Committee (IW3C2), = http://www.iw3c2.org/ Computer and Automation Research Institute of the Hungarian Academy of Sciences (MTA SZTAKI), http://www.sztaki.hu/ CONFERENCE PARTNERS International Federation for Information Processing Working Group 6.4 on Internet Applications Engineering (IFIP WG 6.4), and the World Wide Web Consortium (W3C). General questions about WWW2003 may be sent to info@www2003.org From falted@openlc.org Fri Oct 4 22:37:47 2002 From: falted@openlc.org (Francesc Alted) Date: Fri, 4 Oct 2002 23:37:47 +0200 Subject: ANN: PyTables 0.1 released Message-ID: Hi!, PyTables is a Python package which allows dealing with HDF5 tables. Such a table is defined as a collection of records whose values are stored in fixed-length fields. PyTables is intended to be easy-to-use, and tries to be a high-performance interface to HDF5. To achieve this, the newest improvements introduced in Python 2.2 (like generators or slots and metaclasses in new-brand classes) has been used. Pyrex creation extension tool has been chosen to access the HDF5 library. This package should be platform independent, but until now I've tested it only with Linux. It's the first public release (v 0.1), and it is in alpha state. You can get it from: http://sourceforge.net/projects/pytables/ There is still not a project home page. Perhaps in next days. Feedback welcomed.! -- Francesc Alted PGP KeyID: 0x61C8C11F Scientific aplications developer Public PGP key available: http://www.openlc.org/falted_at_openlc.asc Key fingerprint = 1518 38FE 3A3D 8BE8 24A0 3E5B 1328 32CC 61C8 C11F From jeremy@zope.com Fri Oct 4 23:43:50 2002 From: jeremy@zope.com (Jeremy Hylton) Date: Fri, 4 Oct 2002 18:43:50 -0400 (EDT) Subject: ZODB3 and ZEO2 beta releases Message-ID: I am pleased to announce the second beta releases of ZODB3 and ZEO2. These are the last beta releases. We expect to release the final versions in two weeks. ZODB is an object database for Python that provides transactional persistence while requiring few, if any, changes to application logic. ZEO is a client-server storage system for ZODB. The ZEO2 package is released on its own and as part of ZODB3. The separate release is for Zope users, who already have ZODB. You can get source releases from http://www.zope.org/Products/StandaloneZODB and http://www.zope.org/Products/ZEO. The ZODB3 release requires a C compiler, while the ZEO2 release is pure Python. The components you get with the ZODB3 release are as follows: - Core ZODB, including the persistence machinery - Standard storages such as FileStorage - Supporting modules such as ExtensionClass - The persistent BTrees modules - ZEO (versions 1 and 2) - Experimental Berkeley storages - Updated documentation The beta release contains roughly the same version of ZODB that will be included in Zope 2.6. The two releases are not directly coordinated, so there may be some subtle differences. Many people have contributed to ZODB3. Special thanks to Toby Dickenson for the new ZODB Connection cache. Many people at Zope Corp. have contributed code and tested unreleased versions. There were many changes and bug fixes to ZEO since the last beta release, but very few changes to ZODB. See the NEWS.txt file for details. Jeremy From ioannou@wses.org Sat Oct 5 17:26:35 2002 From: ioannou@wses.org (CALL FOR PAPERS (WSEAS NEWSLETTER)) Date: Sat, 5 Oct 2002 19:26:35 +0300 Subject: Call for Papers (complimentary books for our participants) Message-ID: We would like to inform you that all the participants of the following conferences will receive, except the Proceedings, two Books (or CDs) free from WSEAS Press International Editions. NEW Deadline for paper submission: October 31, 2002 4th WSEAS Int. Conf. on MATHEMATICAL METHODS AND COMPUTATIONAL TECHNIQUES IN ELECTRICAL ENGINEERING (MMACTEE 2002) Astir Palace, Vouliagmeni, Athens, Greece, Dec. 29-31, 2002 http://www.wseas.org/conferences/2002/athens/mmactee 1st WSEAS Int. Conf. on NON-LINEAR ANALYSIS, NON-LINEAR SYSTEMS AND CHAOS (NOLASC 2002) Astir Palace, Vouliagmeni, Athens, Greece, Dec. 29-31, 2002 http://www.wseas.org/conferences/2002/athens/nolasc 2nd WSEAS Int. Conf. on WAVELET ANALYSIS AND MULTIRATE SYSTEMS (WAMUS 2002) Astir Palace, Vouliagmeni, Athens, Greece, Dec. 29-31, 2002 http://www.wseas.org/conferences/2002/athens/wamus Thanks Kostas Ioannou WSEAS * * * To unsubscribe, send an email to remove_for_ever@wseas.org with subject REMOVE or UNSUBSCRIBE. If you use different email account, include the email account(s) that you want to unsubscribe in the Body of your message. From itamar@itamarst.org Sun Oct 6 18:51:32 2002 From: itamar@itamarst.org (Itamar Shtull-Trauring) Date: Sun, 6 Oct 2002 13:51:32 -0400 Subject: ANN: Twisted 0.99.3 - release candidate for Twisted 1.0 Developer Platform Message-ID: The Twisted team is proud to announce Twisted 0.99.3, our release candidate for Twisted 1.0 Developer Platform. For more information, visit http://www.twistedmatrix.com, join the list at http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python or visit us on #twisted at irc.freenode.net (also known as irc.openprojects.net). What is Twisted? ================ Twisted is an event-based framework for internet applications. It includes a web server, a telnet server, a chat server, a news server, a generic client and server for remote object access, and APIs for creating new protocols and services. Twisted supports integration of the Tk, GTK+, Qt or wxPython event loop with its main event loop. The Win32 event loop is also supported, as is basic support for running servers on top of Jython. Twisted works with Python 2.1 and Python 2.2. Twisted even supports the CVS versions of Python, so it is ready for Python 2.3. Twisted currently supports the following protocols, all implemented in pure python, most of them as both servers and clients: - SSH - FTP - HTTP - NNTP - SOCKSv4 (server only) - SMTP - IRC - telnet - POP3 - AOL's instant messaging TOC - OSCAR, used by AOL-IM as well as ICQ (client only) - DNS - MouseMan - finger - Echo, discard, chargen and friends - Twisted Perspective Broker, a remote object protocol - XML-RPC What's new in 0.99.3 ==================== - More fixes for HTTP - Continued work on Woven web framework - Got rid of remaining uses of deprecated APIs From wichert@wiggy.net Mon Oct 7 16:13:17 2002 From: wichert@wiggy.net (Wichert Akkerman) Date: Mon, 7 Oct 2002 17:13:17 +0200 Subject: pyrad 0.2 - RADIUS client Message-ID: pyrad is an implementation of a RADIUS client as described in RFC2865. It takes care of all the details like building RADIUS packets, sending them and decoding responses. (RADIUS is a common protocol used for authentication, authorisation and accounting for remote access (and similar) services). Changes since previous release ------------------------------ * Use proper exceptions * Encode and decode vendor attributes * Dictionary can parse vendor dictionaries * Dictionary can handle attribute values * Enhance most constructors; they now take extra optional parameters with initialisation info. * No longer use obsolete python interfaces like whrandom * Use correct homepage address in announcement and readme (doh) Example ------- Here is an example of doing a authentication request: from pyrad.client import Client from pyrad.dictionary import Dictionary srv=Client(server="radius.my.domain", secret="s3cr3t", dict=dictionary.Dictionary("dicts/dictionary", "dicts/dictionary.acc")) req=srv.CreatePacket(code=pyrad.client.AccessRequest, User_Name="wichert", NAS_Identifier="localhost") req["User-Password"]=req.PwCrypt("password") reply=srv.SendPacket(req) if reply.code==pyrad.client.AccessAccept: print "access accepted" else: print "access denied" print "Attributes returned by server:" for i in reply.keys(): print "%s: %s" % (i, reply[i]) Requirements ------------ pyrad requires Python 2.0 or later. Author, copyright, availability ------------------------------- pyrad was written by Wichert Akkerman The current version and documentation can be found at its homepage: http://www.wiggy.net/code/pyrad.xhtml Copyright 2002 Wichert Akkerman. All rights reserved. pyrad is distributed under the BSD license. Please see the source archive for the full license text. -- _________________________________________________________________ /wichert@wiggy.net This space intentionally left occupied \ | wichert@deephackmode.org http://www.wiggy.net/ | | 1024D/2FA3BC2D 576E 100B 518D 2F16 36B0 2805 3CB8 9250 2FA3 BC2D | From wesc@deirdre.org Tue Oct 8 00:41:43 2002 From: wesc@deirdre.org (Wesley Chun) Date: Mon, 7 Oct 2002 16:41:43 -0700 (PDT) Subject: ANN: SV/SF Python User Group mtg Wed 10/9 7:30pm (fwd) Message-ID: BayPIGgies: Silicon Valley-San Francisco Bay Area Python Users Group Agenda: Python at the O'Reilly Open Source Convention When: October 9, 2002 @ 7:30pm Where: Stanford University, Palo Alto, CA Speaker: Wesley Chun Wesley will give a run down on some of the key talks at this year's O'Reilly Open Source Convention which happened late July in case you were not able to go. Some of the talks to be summarized include: - Guido's Python State of the Union [with updates on 2.2 and 2.3] - Guido's talk on what he feels are regrets in Python - the Bioinformatics Keynotes from Ewan Birney and Jim Kent - the PythonCard talk (HyperCard-motivated wxPython GUI builder, a la Glade for pyGTK) by Kevin Altis and Patrick O'Brien - Jason Asbahr's talk on using Python for developing game logic, not to mention his ports of Python to the Sony PlayStation 2 and Nintendo Gamecube! Download links: - Guido's essays and presentations http://python.org/doc/essays/ppt/ - various O'Reilly OSCON 2002 presentations http://conferences.oreillynet.com/pub/w/15/presentations.html We are actively seeking speakers for BayPIGgies, so if you would like to give a talk at one of our meetings (any Python-related topic), please contact us! more info including directions: http://www.baypiggies.net hope to see some of you on Wednesday! -wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall PTR, =A9 2001 http://starship.python.net/crew/wesc/cpp/ Silicon Valley-San Francisco Bay Area Python Users Group (BayPIGgies) http://www.baypiggies.net wesley.j.chun :: wesc at deirdre.org cyberweb.consulting : henderson, nv : cyberweb at rocketmail.com http://roadkill.com/~wesc/cyberweb/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From guido@python.org Tue Oct 8 01:59:59 2002 From: guido@python.org (Guido van Rossum) Date: Mon, 07 Oct 2002 20:59:59 -0400 Subject: RELEASED: Python 2.2.2b1 Message-ID: I'm happy to announce the release of Python 2.2.2 beta 1. Python 2.2.2 will be a fully backwards compatible bugfix release for Python 2.2.1. I'm shooting for a short beta test cycle: hopefully I can make the final 2.2.2 release next week with minimal changes from 2.2.2b1. Python 2.2.2 has a large number of bug fixes in all areas of the interpreter and the library; for a full account see the release notes, available via the link below. The new release is available here: http://www.python.org/2.2.2/ As usual, a Windows installer and a Unix/Linux source tarball are made available, as well as tarballs of the documentation in various forms. At the moment, no Mac version is available, though I expect that Jack Jansen will start working on one soon. Likewise, no Linux RPMs are available; I expect that Sean Reifschneider will prepare Linux RPMs for 2.2.2 final. I'm especially grateful to Michael Hudson, Raymond Hettinger and Neal Norwitz for their hard work on backporting the large volume of patches from Python 2.3. Without them this release would not have been possible. --Guido van Rossum (home page: http://www.python.org/~guido/) From gward@mems-exchange.org Tue Oct 8 21:24:59 2002 From: gward@mems-exchange.org (Greg Ward) Date: Tue, 8 Oct 2002 16:24:59 -0400 Subject: ANNOUNCE: Quixote 0.5.1 released Message-ID: Quixote 0.5.1 is now available for download from: http://www.mems-exchange.org/software/quixote/ Quixote is yet another framework for developing Web applications in Python. The design goals were: 1) To allow easy development of Web applications where the accent is more on complicated programming logic than complicated templating. 2) To make the templating language as similar to Python as possible, in both syntax and semantics. The aim is to make as many of the skills and structural techniques used in writing regular Python code applicable to Web applications built using Quixote. 3) No magic. When it's not obvious what to do in a certain case, Quixote refuses to guess. If you view a web site as a program, and web pages as subroutines, Quixote just might be the tool for you. If you view a web site as a graphic design showcase, and each web page as an individual work of art, Quixote is probably not what you're looking for. Quixote was primarily written by Andrew Kuchling, Neil Schemenauer, and Greg Ward: {amk,nas,gward}@mems-exchange.org. The Quixote documentation is available online: http://www.mems-exchange.org/software/quixote/doc/ Support for Quixote is available on the quixote-users@mems-exchange.org mailing list: http://mail.mems-exchange.org/mailman/listinfo/quixote-users CHANGES in Quixote 0.5.1 ------------------------ * (incompatible change for anyone doing HTTP upload with Quixote) Improved support for HTTP upload requests: any HTTP request with a Content-Type of "multipart/form-data" -- which is generally only used for uploads -- is now represented by HTTPUploadRequest, a subclass of HTTPRequest, and the uploaded files themselves are represented by Upload objects. See doc/upload.txt for details. * (possible incompatible changes for anyone subclassing Publisher, or using it for custom purposes) Various rearrangements and refactoring in the Publisher class. Added create_request() method, which takes responsibility for creating the HTTPRequest (or HTTPUploadRequest) object away from parse_request(). As a consequence, the signature of parse_request() has changed. Added process_request() method. Changed publish() so it catches exceptions coming from either parse_request() or process_request(). Consult the source code (publish.py) for details. * A new subpackage, quixote.server, is intended for code that publishes a Quixote application through HTTP, making it possible to run Quixote applications without having to configure Apache or some other full-blown Web server. Right now there's only an implementation on top of Medusa; contributions of support for Python's BaseHTTPServer, Twisted, or other frameworks would be welcome. * Modified SessionManager.maintain_session() so it explicitly removes a session if that session used to have useful info (ie. exists in the session manager), but no longer does (patch by Jon Corbet). * Make the PTL compiler a bit smarter about recognizing "template" lines; PTL code should now be able to use 'template' as an identifier, which is handy when converting existing Python code to PTL. * Replaced HTTPRequest.redirect() with a cleaner, more general version supplied by Andreas Kostyrka . Redirects to fully relative URLs (no leading slash) now work. * Added support for putting bits of JavaScript into HTML form documents: added HTTPResponse.add_javascript() to collect snippts of JavaScript code, and Form._render_javascript() to emit them as part of the HTML document. * Added global convenience functions get_path() and redirect(). * Change Publisher so it never modifies SCRIPT_NAME or PATH_INFO. * Fixed bug in quixote.sendmail._add_recip_headers(): it crashed if passed an empty list. * Factor out get_action_url() method in Form class. * Add the HTML version of the documentation to the source release. -- Greg Ward - software developer gward@mems-exchange.org MEMS Exchange http://www.mems-exchange.org From doug.fort@verizon.net Tue Oct 8 23:11:03 2002 From: doug.fort@verizon.net (Doug Fort) Date: Tue, 08 Oct 2002 22:11:03 GMT Subject: Tim Peters' FixedPoint with settable rounding Message-ID: FixedPoint release 0.1.0 http://fixedpoint.sourceforge.net This is the second SourceForge release for Tim Peters' FixedPoint math object. What's New ========== The main new feature is settable rounding. You can select which rounding algorithm FixedPoint uses by assigning a bound function to FixedPoint.RoundingAlgorithm. Take a look at examples/roundingsample.py to see various forms of rounding. Joe has redone the LaTex documentation to add an excellent description of rounding. There's a link to the HTML rendering at the project website. We also modernized the code a little. - FixedPoint now derives from 'object', making it a 'new' class. - FixedPoint's member variables are now in __slots__. - precision is now a property, allowing you to uses expression like f.precision -= 1 (note that get_precision/set_precision are unchanged, so this shouldn't break anything) What's Next =========== This release concludes our planned changes to FixedPoint. We're going to sit back and watch for bug reports and feature requests, but we won't mess with the code anymore without provocation. You can enter bug reports and feature requests at the project website: http://fixedpoint.sourceforge.net Contents ======== README - this readme file fixedpoint.py - the FixedPoint module itself libfixedpoint.tex - LaTex documentation test_fixedpoint.py - unit tests for regression testing examples - a folder of sample code containing: FPBench.py - a benchmark program, timeing various FixedPoint operations roundingsample.py - a small demo, showing what can be done with rounding -- Doug Fort, Programmer http:/www.dougfort.net From edream@tds.net Wed Oct 9 10:30:42 2002 From: edream@tds.net (Edward K. Ream) Date: Wed, 09 Oct 2002 09:30:42 GMT Subject: ANN: Leo 3.7 outlining editor Message-ID: leo.py 3.7 is now available at: http://sourceforge.net/projects/leo/ leo.py requires Python 2.1 and tcl/tk 8.3 or above. The highlights of 3.7: ---------------------- - Now works with Python 2.1. Previous versions required Python 2.2. - Many new user options, including user-definable shortcuts for all commands and colors for all parts of Leo's windows. As a result, it is now possible to use arrow keys as you desire. - Minimal support for Unicode. Better support is coming. - Improved handling of relative path names. - The @first directive allows lines to precede the opening @+leo sentinel line. - The @last directive allows lines to follow the closing @-leo sentinel line. - Better support for Perl+pod. - Leo now ends all lines with '\n' regardless of platform. - Leo is now compatible with Python 2.1. - Simplified sentinels reduce spurious CVS diffs. - Many other minor improvements and bug fixes. What is Leo? ------------ - A programmer's editor, an outlining editor and a flexible browser. - A literate programming tool, compatible with noweb and CWEB. - A data organizer and project manager. Leo provides multiple views of projects within a single outline. - Fully scriptable using Python. Leo saves its files in XML format. - Portable. leo.py is 100% pure Python. - Open Software, distributed under the Python License. Links: ------ Leo: http://personalpages.tds.net/~edream/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://sourceforge.net/cvs/?group_id=3458 -Edward -------------------------------------------------------------------- Edward K. Ream email: edream@tds.net Leo: Literate Editor with Outlines Leo: http://personalpages.tds.net/~edream/front.html -------------------------------------------------------------------- From lkcl@samba-tng.org Wed Oct 9 13:28:39 2002 From: lkcl@samba-tng.org (Luke Kenneth Casson Leighton) Date: Wed, 9 Oct 2002 12:28:39 +0000 Subject: [PEP] number accuracy Message-ID: number accuracy, by Luke Kenneth Casson Leighton abstract -------- python classes that support number types have an automatic cast mechanism (hierarchical). unfortunately, the existing mechanism can only really cope with builtin types. any user-defined number types cannot be type-cast to or from any other user-defined number types because every single other class, including the builtin number types, need to know about every single other number type. the proposal is therefore to provide a means by which the accuracy of numbers may be determined independently. number ranking -------------- The Plan is to provide a function that returns a tuple or a list of tuples indicating the accuracy of the numerical class's resolution. then, type-casting may occur by first checking the length of the list and further by checking the tuples in the lists. the tuple consists of: - 0 if the representation can do positive numbers, 1 if it can do positive and negative - the number of binary digits (ln2 of the max range) in the mantissa - optionally the number of digits in the exponent example: class UserLong: def __accuracy__(self): return (1, 1000000000000000L) # presumed infinite! class UserIEEEFloat: def __accuracy__(self): return (1, 32, 12) # does up to 32-bit mantissa, 12-bit exponent when complex numbers are involved, you want to do this: class UserComples: def __accuracy__(self): return [(1, 32, 12), (1, 32, 12)] which indicates that both the real and imaginary components of the 2-dimensional number space are capable of supporting floating point e.g. "0.95829-32.59j" usage ----- a simple test determines whether numbers can be typecast: if num1.__accuracy__() > num2.__accuracy(): return num1 else: return num2 type-casting ------------ *thinks*... i believe... also... that... the same principle may be applied to actually performing a typecast... def __mantissa__(self, dimension=0): def __exponent__(self, dimension=0): as long as these two functions return numbers of built-in types (int and long, basically) then it will be possible to type-cast between any user-defined numerical types. -- ---------------------------------------------------------- this message is private, confidential, and is intented for the specified recipients only. if you received in error, altered, deleted, modified, destroyed or interfered with the contents of this message, in whole or in part, please inform the sender (that's me), immediately. if you, the recipient, reply to this message, and do not then receive a response, please consider your reply to have been lost or deliberately destroyed: i *always* acknowledge personal email received. please therefore take appropriate action and use appropriate protocols to ensure effective communication. thank you. From kiko@async.com.br Wed Oct 9 16:59:26 2002 From: kiko@async.com.br (Christian Reis) Date: Wed, 9 Oct 2002 12:59:26 -0300 Subject: Release: IndexedCatalog 0.3 Message-ID: ANNOUNCE: Released IndexedCatalog 0.3 Async Open Source releases today the third public version of IndexedCatalog. IndexedCatalog is an extension to the Zope Object Database (ZODB) that makes object retrieval easier and faster, by indexing all fields by type (string/integer/float) and providing a simple query language. http://www.async.com.br/projects/IndexedCatalog/ The next version will implement a real query language and parser; we got tired of hacking on the current version and we need some extra functionality that just couldn't be cut. The new version will be cooking in CVS hopefully by tomorrow morning, and we'll be testing it through the week. The next version will accompany some real documentation, too. * Changes - Support for creating objects outside of the catalog was added; it is no longer required to use catalog.new(). - catalog.insert() was added. - Boolean operations now work as they should. - Many new tests were added in the test suite. - Many random bugfixes were made. - Case insensitive substring searching (largely untested :-) A blurb about IndexedCatalog follows. --- blurb ------------------------------------------------------------- * Overview IndexedCatalog is an extension to the Zope Object Database (ZODB) developed by Johan Dahlin at Async Open Source (http://www.async.com.br/) that provides indexing and allows queries for objects based on attributes. This is accomplished by indexing all fields by type (string/integer/float) and by implementing a simple query language. IndexedCatalog is licensed under the Lesser GNU Public License (LGPL). * Features - Provides a Catalog class that stores objects and offers a query interface. - Provides Indexes for Strings, Floats, Integers and Instances. - Requires very little change to objects for catalogs and indexes to work: basically, add some special attributes to the Classes, and use catalog.insert() to add the instances to the catalogs. - Supports composite objects, initializing and indexing sub-objects automatically. - Supports queries by type, and allows querying sub-object or referenced object attribute values. - Allows ordering query results by field, both ascending and descending. - Is 100% pure python, and by using Distutils requires miminal effort to install. * Feedback We really would appreciate feedback on a few things: - Object lifecycle (Class() and catalog.insert() vs. Catalog.new()) - The efficiency of the indexing and query algorithms - The query language - All flam^Wcomments are appreciated; don't hesitate to post your opinion. * Download You can download IndexedCatalog from http://www.async.com.br/projects/IndexedCatalog/ * Installing Using standard python distutils: python setup.py install Or just set PYTHONPATH to the directory you unpacked IndexedCatalog in. * Reporting bugs Report bugs, feature requests and all other things related to IndexedCatalog at http://bugs.async.com.br/enter_bug.cgi?product=IndexedCatalog * Contact Johan Dahlin , Christian Reis * About Async Async Open Source is a company devoted to developing custom applications based on open source software, and providing support for other existing open source products. We are active in the OSS community, supporting (and employing) project maintainers, encouraging release of software as open source, and promoting reuse of existing open source products. Async is located in São Carlos, SP, Brazil, and online at http://www.async.com.br/ Take care, -- Christian Reis, Senior Engineer, Async Open Source, Brazil. http://async.com.br/~kiko/ | [+55 16] 261 2331 | NMFL Take care, From tundra@tundraware.com Wed Oct 9 22:25:19 2002 From: tundra@tundraware.com (Tim Daneliuk) Date: 09 Oct 2002 21:25:19 GMT Subject: ANN: 'mailfmt' 1.3 Message-ID: 'mailfmt' is a Unix and Win32 tool for reformatting news and mail messages. It removes leading quotations strings (most often the '>' character, but this is user selectable from the command line) and wraps lines to a user specified width. This allows news or mail messages which have been extensively forwarded and/or quoted to be easily reformat- ted for ease of reading. On Unix systems, 'mailfmt' reads from stdin and writes to stdout. On Win32 systems, 'mailfmt' reads from the clipboard and then writes the results to the clipboard. This is really handy if your are running a GUI mail client. You cut the desired text (thereby placing it on the clipboard). Then you run 'mailfmt' - this is best done with a keyboard shortcut - Then paste back to your mail client and, voila!, your text has been reformatted. On Win32 systems, the input and output can be reassigned to stdin and stdout using command line options. 'mailfmt' can be found at: http://www.tundraware.com/Software/mailfmt/ A FreeBSD port has also been submitted. -- ------------------------------------------------------------------------------ Tim Daneliuk tundra@tundraware.com From mary-python@puzzling.org Thu Oct 10 01:21:54 2002 From: mary-python@puzzling.org (Mary Gardiner) Date: Thu, 10 Oct 2002 10:21:54 +1000 Subject: ANN: Sydney Australia Python Interest Group: Monday 21st October 2002 Message-ID: The Sydney Australia Python Interest Group meeting: Monday the 21st October, 7pm - 9pm University of Technology Sydney, Australia, Broadway campus. This month's meeting is being held in the Fairfax Building of UTS Broadway, room 2.440 (level 2, solaris lab 10). This month, Pete Hardy is talking about his Python curses interface to the Julie Jukebox[0]. The Sydney PIG's webpage can be found at http://pig.slug.org.au/ [0] http://www.cse.unsw.edu.au/~cgray/julie/ ---- Sydney Python Interest Group meetings are announced on: * comp.lang.python.announce and python-announce-list@python.org[0] * the Australian Python users list[1] * The Sydney Linux User's Group announce list[2] [0] http://mail.python.org/mailman/listinfo/python-announce-list [1] http://starship.python.net/mailman/listinfo/python-au [2] http://lists.slug.org.au/listinfo/announce/ ---- The Sydney Python Interest Group is, while not restricted to Python on Linux, a Special Interest Group of the Sydney Linux Users Group (SLUG), and would like to thank SLUG for its support. From gerhard.haering@gmx.de Thu Oct 10 08:30:53 2002 From: gerhard.haering@gmx.de (Gerhard =?iso-8859-1?Q?H=E4ring?=) Date: Thu, 10 Oct 2002 09:30:53 +0200 Subject: [ANN] PySQLite 0.3.1 released Message-ID: NAME: PySQLite - Extension module for SQLite databases. DESCRIPTION: A Python-DB API 2.0 compliant extension module that uses the SQLite embedded SQL database. No external SQL server required. Think of Gadfly, only faster. SQLite is a powerful, embedded relational database in a compact C library. It supports a large subset of SQL92, multiple tables and indices, transactions, and triggers. Sources are uncopyrighted and can be used for any purpose. More information can be found at . HOMEPAGE: DOWNLOAD: Source and Windows binary downloads are available at AUTHORS: Gerhard Häring Michael Owens LICENSE: Python NOTES: The following are changes and enhancements since the last release: * Make the test suite less noisy. If you want to enable tracebacks of user-defined functions or aggregates, you'll now have to enable them via _sqlite.enable_userfunction_debugging. This closes bug reports #608421 and #608426. * Fixed lots of bugs in PgResultSet. Access of columns is now case-insensitive. * Added test suite for PgResultSet class. From doug.fort@verizon.net Thu Oct 10 23:58:21 2002 From: doug.fort@verizon.net (Doug Fort) Date: Thu, 10 Oct 2002 22:58:21 GMT Subject: FixedPoint 0.1.1 -- BugFix Release Message-ID: FixedPoint release 0.1.1 What it is ========== This package encapsulates the representation of a fixed point number in Python. It was originally written by Tim Peters and posted to the Python Starship. What it does ============ The FixedPoint object supports all suitable Python operators to enable the developer to perform fixed point math in a natural way. What's New ========== This is a (hasty) bugfix release for 0.1.0 We discovered that my alternative rounding algorithm didn't behave correctly for negative quotients. Tim, the original author recommended making _roundQuotient a member of FixedPoint, enabling the rounding algorithm to become a normal member, rather than a static member. While refactoring, I changed the name from 'RoundingAlgorithm' to the less verbose 'round'. So instead of from fixedpoint import FixedPoint, BankersRounding FixedPoint.RoundingAlgorithm = staticmember(BankersRounding) you can say from fixedpoint import FixedPoint, bankersRounding FixedPoint.round = bankersRounding We got a good description of rounding philosphy from Tim in an email. Joe has incorporated this in the documentation. There's a link to HTML rendering of the LaTex documentation at the project website: http://fixedpoint.sourceforge.net What's Next =========== This release (really truly) concludes our planned changes to FixedPoint. We're going to sit back and watch for bug reports and feature requests, but we won't mess with the code anymore without provocation. -- Doug Fort, Programmer http:/www.dougfort.net From fdui@openlight.com Fri Oct 11 00:27:21 2002 From: fdui@openlight.com (fdui@openlight.com) Date: Thu, 10 Oct 2002 19:27:21 -0400 Subject: Flightdeck-UI version 0.1.3 released Message-ID: The goal of the Flightdeck-UI project is to apply ideas from aircraft instrumentation design to general purpose user interfaces. Release 0.1.3 adds an analog dial element and a status line element with general annunciator features, as well as making other enhancements. In addition, most Flightdeck-UI elements are now created by using a new Singleton class factory. There has also been a lot more testing of the code since the previous version. The project homepage is at "http://www.openlight.com/fdui/". Flightdeck-UI is open source. It is written in Python and requires Tkinter. Questions can be emailed to originating address of this message. From gainsbourg@hotmail.com Fri Oct 11 15:08:47 2002 From: gainsbourg@hotmail.com (Gerard Durand) Date: Fri, 11 Oct 2002 14:08:47 +0000 Subject: sfcvs Message-ID: sfcvs is a small Python script that allows people behin http proxies to automatically retrieve files stored on SourceForge CVS servers. It is using the viewcvs web interface of sourceforge and should work with little modification on other similar websites. Now you can happily cvs checkout python like the others. It was tested with Python 2.2 on Windows and Linux. http://www.angelfire.com/rnb/sfcvs/ _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com From dave@boost-consulting.com Fri Oct 11 21:53:31 2002 From: dave@boost-consulting.com (David Abrahams) Date: 11 Oct 2002 16:53:31 -0400 Subject: ANN: Boost.Python v2 Message-ID: I'm pleased to announce that v. 1.29.0 of the Boost C++ libraries (http://www.boost.org) has been released! This marks the first release of v2 of the Boost.Python library (http://www.boost.org/libs/python), a C++ library enabling seamless interoperability between C++ and the Python programming language. The new version has been rewritten from the ground up, with a more convenient and flexible interface, and many new capabilities, including support for: - References and Pointers - Globally Registered Type Coercions - Automatic Cross-Module Type Conversions - Efficient Function Overloading - C++ to Python Exception Translation - Default Arguments - Keyword Arguments - Manipulating Python objects in C++ - Exporting C++ Iterators as Python Iterators - Documentation Strings Of course, the old abilities to wrap classes and functions are still there. Thanks to all Boost.Python's contributors and users for their patience and their support. -- David Abrahams * Boost Consulting dave@boost-consulting.com * http://www.boost-consulting.com From tjabo.kloppenburg@unix-ag.org Sat Oct 12 10:05:52 2002 From: tjabo.kloppenburg@unix-ag.org (Tjabo Kloppenburg) Date: Sat, 12 Oct 2002 11:05:52 +0200 Subject: ANN: ldiftemplate 0.1.0 released Message-ID: --=.f+'YvTCz)+2QF) Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit NAME: ldiftemplate - a small module for quick "boss can add ldap objects" scripts. DESCRIPTION: When you're really happy with your ldap tree the moment comes where a dumb person (boss) asks you how he can hang new objects into this fancy tree by himself... Ugly... :-) This class gives me the ability to code simple scripts my boss can use to add some objects. It uses LDIF templates derived from real objects -- with simple placeholders in it. The class gives you a list of placeholders and descriptions so it is easy to print them before requesting the values (boss can see what he needs). After doing setPlaceholder( key, val ) for every placeholder you simply call getTupleList() to get a list with the two args you need for ldap.add_s(). It is fairly simple. MISSING FEATURES: - no support for base64 data ("name:: VALUE" in LDIF) - no detection for cross placeholder replacing [2 placeholders TTT and BUG: call setPlaceholder( 'TTT', 'HUMBUG') + setPlaceholder('BUG','something'): --> 'TTT: HUMsomething'] HOMEPAGE: http://www.home.unix-ag-org/tjabo/ldap/ (german) The in-source docs are english. And there's a method ".sample()", printing a sample LDIF template. Yes, the class's name is "new". I did not want to type "ldiftemplate" over and over again... HINT: Use placeholders with three or more BIG LETTERS! EXAMPLES/DEMO: I'll show how to add simple "customer" objects. They need cn and custID: TEMPLATE (newCustomer.template): #TITLE Quick new customer. #DEF XXX Name of customer #DEF YYY Customer id dn: cn=XXX,ou=customers,o=company objectClass: customer objectClass: top cn: XXX custID: YYY SCRIPT: #!/usr/bin/env python2.2 import ldiftemplate t = ldiftemplate.new( 'newCustomer.template' ) ph = t.getPlaceholders() # [ ('XXX', 'Name of customer'), ... ] print t.title print " I need: \n - " + "\n - ".join( map( lambda x: x[1], ph ) ) for p in ph: e = raw_input( "%s> " % ( p[1] ) ) t.setPlaceholder( p[0], e ) print t.getTupleList() OUTPUT: Quick new customer. I need: - Name of customer - Customer id Name of customer> FlyLime Ltd Customer id> 1034 ('cn=FlyLime Ltd,ou=customers,o=company', [('objectClass', ['customer', 'top']), ('custID', ['1034']), ('cn', ['FlyLime Ltd'])]) The next step would be to do ldap.initialize(...), bind(...), and l.add_s( L[0], L[1] ). INSTALLATION: Copy ldiftemplate.py to a good place. :-) "/usr/lib/python2.2/site-packages/" or "" -- Tjabo Kloppenburg GnuPG Key is on http://www.home.unix-ag.org/tjabo/kontakt.html --=.f+'YvTCz)+2QF) Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) iD8DBQE9p+X1tGnpFGyUbjERArX4AKCDqLaV4scPnwJ+OitmdJSJoll0hACglYLo LkTwmVDOfpkeoYU2grIuaF0= =w7MV -----END PGP SIGNATURE----- --=.f+'YvTCz)+2QF)-- From uche.ogbuji@fourthought.com Sun Oct 13 01:44:53 2002 From: uche.ogbuji@fourthought.com (Uche Ogbuji) Date: 12 Oct 2002 18:44:53 -0600 Subject: Article on using Python generators for XML and DOM processing Message-ID: Tip: Using generators for XML processing http://www-106.ibm.com/developerworks/xml/library/x-tipgenr.html Generators are a very powerful new language feature of Python 2.2. In this tip, Uche Ogbuji presents a set of techniques for using generators for fast and lucid XML processing patterns in Python. -- Uche Ogbuji Fourthought, Inc. http://uche.ogbuji.net http://4Suite.org http://fourthought.com Apache 2.0 API - http://www-106.ibm.com/developerworks/linux/library/l-apache/ Python&XML column: Tour of Python/XML - http://www.xml.com/pub/a/2002/09/18/py.html Python/Web Services column: xmlrpclib - http://www-106.ibm.com/developerworks/webservices/library/ws-pyth10.html From gward@python.net Sun Oct 13 02:17:59 2002 From: gward@python.net (Greg Ward) Date: Sat, 12 Oct 2002 21:17:59 -0400 Subject: ANNOUNCE: Optik 1.4 released Message-ID: Optik 1.4 ========= 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 little overhead. Here's an example of using Optik to add some command-line options to a simple script: from optik import OptionParser [...] parser = OptionParser() parser.add_option("-f", "--file", action="store", type="string", dest="filename", help="write report to FILE", metavar="FILE") parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=1, 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: -f outfile --quiet -qfoutfile --file=outfile -q --quiet --file outfile (All of these result in options.filename == "outfile" options.verbose == 0 ...just as you might expect.) Even niftier, users can run one of -h --help and Optik will print out a brief summary of your script's optons: usage: [options] options: -h, --help show this help message and exit -fFILE, --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 details. AUTHOR, COPYRIGHT, AVAILABILITY ------------------------------- Optik was written by Greg Ward The latest version of Optik can be found at http://optik.sourceforge.net/ Copyright (c) 2001 Gregory P. Ward. All rights reserved. CHANGES IN OPTIK 1.4 -------------------- [editorial note: most significant code changes in Optik 1.4 were made by David Goodger; except as noted below, David should be credited with everything in this list! I just rearranged some of his changes, renamed a few thing, and put out the release. --Greg] * Factored the help-formatting code out of OptionParser into some new classes (HelpFormatter and subclasses) in help.py. This should make it a lot easier to customize how help is formatted. * Added the notion of "option groups": an OptionParser can now contain several option groups, each which contains several options. The main purpose of this is to enable sensibly-grouped help output, but it opens up all sorts of interesting (and largely untested) possibilities for code to throw whole option groups around instead of individual options. Added two new classes: OptionGroup, and OptionContainer for code common to OptionParser and OptionGroup. (OptionContainer should be invisible to programmers using Optik). * Added the 'description' attribute and set_description() method to both OptionParser and OptionGroup (actually OptionContainer, but I just said that class was invisible). Again, this is to make help output more useful. * Made it easier for OptionParser subclasses to decide whether they should have the standard "help" option, by moving the logic from class level to the _populate_option_list() method. * Added the "choice" option type, which is just a string type constrained to a fixed set of values. * Added method get_default_values() to OptionParser. * Rewrote how OptionParser recognizes abbreviated long options; removed a redundant internal instance attribute. * Simplify parsing logic in OptionParser a tad by relocating a loop and renaming _process_arg() to _process_args(). -- Greg Ward http://www.gerg.ca/ Jesus Saves -- and you can too, by redeeming these valuable coupons! From andreas@andreas-jung.com Sun Oct 13 10:48:20 2002 From: andreas@andreas-jung.com (Andreas Jung) Date: Sun, 13 Oct 2002 11:48:20 +0200 Subject: TextIndexNG Extensions for Python released Message-ID: I am happy to announce the release of the TextIndexNG Extensions for Python 1.05 These extensions were developed as support modules for the Zope fulltext index TextIndexNG and they are now available as standalone package. The package consists of four independent modules: - TXNGSplitter: a very customisable module to split a string into words - PySimilarity: implements the soundex, metaphone, double metaphone algorithms - PyStemmer: linguistic stemmer support for 13 languages - normalizer: linguistic normalization by replacing e.g. accented characters by a more simpler representation All modules support unicode. License: Zope Public License (ZPL) Download: http://sourceforge.net/project/showfiles.php?group_id=50052 From Rimon Barr Mon Oct 14 02:18:13 2002 From: Rimon Barr (Rimon Barr) Date: Sun, 13 Oct 2002 21:18:13 -0400 (EDT) Subject: spyce v1.1.45 Message-ID: SPYCE - Server Python Pages SPYCE is a webserver plugin that supports simple and efficient Python-based dynamic HTML scripting. Those who like Python and are familiar with JSP, or PHP, or ASP, should have a look at this engine. It allows one to generate dynamic HTML content just as easily, using Python for the dynamic parts. Its modular design makes it very flexible and extensible. It supports FastCGI, CGI and mod_python to plugin into Apache and most other webservers. It can also be used as a command-line utility for HTML pre-processing or as a web server proxy. v1.1.45 released on 13 October 2002. Get it at: http://spyce.sourceforge.net ---------- Most important changes since last posting (v1.1.39): external: - modules can now accept arguments - added server-level configuration file - site and documentation revamp - exception tracebacks identify specific error lines in code chunks - file globbing added to command-line interface - module directive deprecated; replaced with import internal: - redesigned modules interface - extended contants lists to conform to HTTP and HTML specs. - performance improvements modules: - new error handling module - added redirection to stdout module and loaded implicitly - new table of contents module ---------- Partial change log: Change Log v1.1.45 site and documentation revamp refactored the spyceModule class (see spyceModule.py) altered all standard modules to conform to new internal design new table-of-contents (toc) module (see docs) improved stdout module (see docs) added push() and pop() methods now loaded implicitly exception tracebacks in chunks identify specific error lines file globbing added to -O command-line option v1.1.44 module directive deprecated replaced with import tag import tag accepts args attribute calls module init() method at location of directive init() methods added to modules: session, compress see: http://spyce.sourceforge.net/doc_lang_directive.html http://spyce.sourceforge.net/doc_mod.html http://spyce.sourceforge.net/doc_mod_compress.html http://spyce.sourceforge.net/doc_mod_session.html http://spyce.sourceforge.net/doc_mod_new.html bugfix - modules finalized on redirect v1.1.43 bugfix - included files not inheriting modules properly bugfix - transform module inside included file v1.1.42 renamed spyce.conf to spyceApache.conf renamed spyceApache to spyceModpy renamed run_spyceApache to run_spyceModpy (affect spyceApache.conf) added server-level configuration file functionality server module search path modules to load at startup server-level error handler global server variables see: docs/doc_conf_common.html added response.isCancelled() function see: docs/doc_mod_response.html bugfix - early client disconnect caused problems under mod_python v1.1.41 extended HTTP response constants to conform to spec extended HTML entity encoded characters to conform to spec modified internal buffering semantics to allow eliminiation of special case code for specific HTTP return codes (redirects) in the common path performance improvements convenience functions transform.html_encode() and url_encode() added error module added: handles errors that occur during spyce processing bugfix - HTTP return codes propagated correctly under mod_python v1.1.40 bugfix - spyce syntax error propagated properly response headers cleared on an internal redirect case insensitive request.get,post,get1,post1,file v1.1.39 modified how filter module injects itself into output stream added response.addFilter() to allow piped functionality on the output stream, modules can insert write, writeStatic, writeExpr, flush and clear handlers added compress module for dynamic compression functionality compress module documentation renamed filter module to transform (name conflict with Python builtin) sys.path forced to be absolute before changing directory in CGI mode bugfix - spyce path trimmed to just filename when directory changed for CGI processing bugfix - spyce web server closes sockets ... Enjoy, Rimon. -- * Rimon Barr Ph.D. candidate, Computer Science, Cornell University | barr@cs.cornell.edu - http://www.cs.cornell.edu/barr - Y!IM: batripler +---- From drifty@bigfoot.com Mon Oct 14 02:47:50 2002 From: drifty@bigfoot.com (Brett C.) Date: 13 Oct 2002 18:47:50 -0700 Subject: Python-dev Summary for 2002-10-01 through 2002-10-13 Message-ID: This is a summary of traffic on the `python-dev mailing list`_ between October 1, 2002 and October 13, 2002 (inclusive). It is intended to inform the wider Python community of on-going developments on the list that might interest the wider Python community. To comment on anything mentioned here, just post to python-list@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 (or anything else for that matter) if you have an opinion. And if all of this really interests you then get involved and join Python-dev! This is the fourth summary written by Brett Cannon (with a partially fried brain thanks to the GRE). All summaries are now archived at http://www.python.org/dev/summary/ thanks to A.M. Kuchling. Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sourceforge.net/rst.html . Any unfamiliar punctuation is probably markup for reST_; you can safely ignore it (although I suggest learning reST; its nice and is accepted for PEP markup). Also, because of the wonders of reformatting thanks to whatever program you are using to read this, I cannot guarantee you will be able to run this text through Docutils_ as-is. If you want to do that, get the original text version. .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _Docutils: .. _reST: .. _reStructuredText: http://docutils.sf.net/ ====================== Summary Announcements ====================== This is a new section to the summary that I have decided to introduce. It is mainly going to serve to make any general announcements or comments on this summary and this summary alone. All universal comments will stay at the top of the summaries. Just to let everyone know, I am taking off for two weeks on vacation starting 2002-10-14 and I will not return until 2002-10-30. Now, before you all start sobbing over the loss of one of my great summaries, you should know that Raymond Hettinger has graciously taken up the job of temp summarizer for me and will do the summary while I am gone. Michael Hudson has made the suggestion that I inject more of my personality into the summary so as to liven it up a little. I am personally quite happy to do this. But the real question is do you, fine reader, mind the idea? If I don't hear from throngs of people going "your sarcastic tone takes away from the wonderfully drawl summaries and that is a bad thing", then I will just go ahead and write with personality. Just don't complain later. =) 2.2.2b1 has been occupying Python-dev during this summary period, and so this summary is shorter than usual. I left out a bunch of threads that were discussing bugfixes that I either didn't find interesting or didn't think the rest of the world would care about. A.M. Kuchling has put all Python-dev summaries up at http://www.python.org/dev/summary/ . So now the archive is centralized instead of spread out among three web sites. I am sure the original archive sites will stay (I will keep mine up), but all future references will go to that page. Now it's time for my personal favor of the month. I am going to start applying to grad school for computer (science | programming) when I get back from vacation. If anyone knows of Python-friendly schools out there, let me know. Heck, I am even willing to leave America to go to school as long as the classes are in English. So if you know of any, please let me know! And now on to the summary. ========================================= `Python 2.2.2 beta release on Monday!`__ ========================================= __ http://mail.python.org/pipermail/python-dev/2002-October/029204.html splinter thread: - `RELEASED: Python 2.2.2b1`__ __ http://mail.python.org/pipermail/python-dev/2002-October/029337.html Python 2.2.2.b1 was released on Monday, October 7. This is the reason (or perhaps excuse is a better description) for the lighter summary this week. A good amount of the traffic on Python-dev was about bugfixing 2.2.2.b1. Most of this probably would not interest the average Python user, and thus I didn't summarize a bunch of threads. Taking the GRE also didn't help with my free time and thus has caused me to cut down on the summary since I am having to go through a huge backlog to get this out the door. ========================================= `Dropping support for Tcl 8.0 and 8.1`__ ========================================= __ http://mail.python.org/pipermail/python-dev/2002-October/029024.html Martin v. Loewis asked if it would be okay to drop support for Tcl_ 8.0 and 8.1 since `_tkinter.c`_ has special code in there just for those outdated versions. Guido ok'ed it, so if you are using those still using a version of Tk from way back when, it's time to upgrade. .. _Tcl: http://www.tcl.tk/ .. __tkinter.c: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Modules/_tkinter.c =========================================== `*very* revised proposal for interfaces`__ =========================================== __ http://mail.python.org/pipermail/python-dev/2002-October/029042.html Previously John Williams came up with a proprosal for implementing the stuff from `PEP 245`_ (Python Interface Syntax) and `PEP 246`_ (Object Adaptation). From my understanding of what John has done, it appears he has written an interface system in pure Python. If you want backstory to this long and involved discussion to get an interface system into Python read the Python-dev Summaries for 2002-08-16 to 2002-09-01 and 2002-09-01 to 2002-09-15 . Gerald Williams, Michael Chermside, and Esteban Castro all commented on the implementation and made various suggestions. John said that he was not done yet implementing this. But if you were interested in the whole previous discussion on interfaces you could consider looking at what John has done. As for it going into the language, I suspect that will have to wait until John is done and has convinced the PEP writers and Python-dev that his implementation fits the bill. Stay tuned. If you want some more background info on interfaces, read the previously mentioned summaries. As for object adaptation, read on c.l.py and on Python-dev anything by Alex Martelli on the subject. He has become the main proponent of object adaptation and has written several very extensive essays on the subject. .. _PEP 245: http://www.python.org/peps/pep-0245.html .. _PEP 246: http://www.python.org/peps/pep-0246.html ===================== `perplexed by mro`__ ===================== __ http://mail.python.org/pipermail/python-dev/2002-October/029035.html Splinter threads: - `Re: my proposals about mros (was: perplexed by mro)`__ - `C3 implementation`__ __ http://mail.python.org/pipermail/python-dev/2002-October/029167.html __ http://mail.python.org/pipermail/python-dev/2002-October/029230.html Samuele Pedroni said he was "trying to wrap [his] head around the mro computation in 2.2". Apparently there is the algorithm mentioned at http://www.python.org/2.2.1/descrintro.html (dubbed the naive algorithm) and then the one implemented in `typeobject.c`_ (called the 2.2 algorithm). Samuele discovered some inconsistencies with the implemented algorithm that he desired some explanation about. Guido responded, thankful that someone was giving this a look because his "intuition about the equivalence between algorithms turned out to be wrong". Guido stated that he thought that he wrote the algorithm from the book "Putting Metaclasses To Work" correctly sans raising an error when major conflicts occur in the ordering. In a later email Guido explained that the naive algorithm came about by his attempt to simplify the explanation of the 2.2 algorithm. Guido pretty much wrote the algorithm from the aforementioned book. Now the algorithm is not simple, so Guido did his best to simplify the explanation. Unknowningly, though, he came up with a variant on the algorithm in his explanation. Greg Ewing pointed out that he thought the naive algorithm was nicer since it seemed to work more intuitively and was easier to explain (and remember kids, these are basic tenants in Python programming). Guido ended up stating that "If Samuele agrees that the naive algorithm works better, [Guido will] try to make it so in 2.3". Well, Samuele said that the "2.2 mro is the worst of our options". There was a problem, though, with the naive algorithm; it is not monotonic as pointed out by Samuele. This led him to put out two options: 1. Use the naive algorithm, which had the drawback of not being monotonic. Samuele also believed that it didn't produce "the most natural results". 2. Adopt C3_ as described at http://www.webcom.com/haahr/dylan/linearization-oopsla96.html and apparently used by Goo_ . This algorithm is monotonic and Samuele says is more intuitive in its results. Guido got around to reading the C3_ paper and agreed that "we should adopt C3". He thought that the 2.2 algorithm was like the L*[LOOPS] algorithm mentioned in the paper, but he is not positive. Samuele then wrote a C implementation of the algorithm. Guido said he would get to the patch after 2.2.2b1 got out the door. .. _C3: http://www.webcom.com/haahr/dylan/linearization-oopsla96.html .. _Goo: http://www.ai.mit.edu/~jrb/goo/manual.43/goomanual_55.html .. _typeobject.c: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Objects/typeobject.c =============================== `Psyco requests and patches`__ =============================== __ http://mail.python.org/pipermail/python-dev/2002-October/029038.html Armin Rigo of psyco_ an email to Python-dev with some thoughts on psyco and some requests. After mentioning how he wished more people realized psyco is meant to be used by anyone and not speed-hungry coders (it is a cool app and if you have any interest in compilers you should take a look) and that psyco could get some more advertising he mentioned three patches that he wrote (patches 617309_ , 617311_ , and 617312_ ) against 2.2.2 that he would like to see be accepted so as to ease maintenance of psyco. Armin also mentioned how he would like to move psyco forward. He pointed out he would like to eventually write it all in Python. This would require tracking changes in the interpreter that psyco dealt with. He would like to keep this in mind when Python 3 discussions kick up (and don't ask when that will happen; not for a VERY long time). In regards to Armin's patches, Martin v. Loewis thought they broke binary compatibility (big no-no between micro releases), but Armin claimed it didn't. After glancing over the patches it seems they have all been applied against 2.2.2 and are being actively worked on by Armin for application to 2.3. .. _617309: http://www.python.org/sf/617309 .. _617311: http://www.python.org/sf/617311 .. _617312: http://www.python.org/sf/617312 .. _psyco: http://psyco.sf.net/ ====================================================================== `PEP239 (Rational Numbers) Reference Implementation and new issues`__ ====================================================================== __ http://mail.python.org/pipermail/python-dev/2002-October/029065.html splinter threads: - `Re: PEP239 (Rational Numbers) Reference Implementation and new issues`__ __ http://mail.python.org/pipermail/python-dev/2002-October/029068.html Christopher Craig uploaded `patch 617779`_ that implemented `PEP 239`_ (Rational Numbers). He had some questions for Python-dev, though, regarding a couple points. These few points have become the bane of my summarizing existence; this thread is huge. One was whether division should return rationals instead of floats. Since rationals keep precision in division they are the most accurate way to perform division. THey also make the most output sense (e.g. 1/3). Problem with this is that rational math is slow and this would cause issue with any code that expected a float. The next issue was about comparison. Should a rational compare only when it is exactly equal to a float or when the float is really close? Lastly, Christopher wondered if rationals should hash the same as floats. The answer to the second issue would influence the answer to this issue. Issue 1. Eric Raymond was for returning a rational. Francois was kind of on the fence. Christian was +1 for returning rationals. Guido said ABC did this and that numeric processes thus ended up being slow. Issue 2. Christian said "Let it grow! Let the user feel what precision he's carrying around, and how much they throw away when they reduce down to a float." Issue 3. Eric Raymond suggested a global "fuzz" variable that defines a "close-enough-for-equality range"; this idea was used by APL. Andrew Koenig was against this because you don't always want a fuzzy comparison and it destroys substitutability: "If a==b, it is not always true that f(a)==f(b)". Andrew said he preferred Scheme's numeric model. To this, Guido said that "'It works in Scheme' doesn't give me a warm fuzzy feeling that it's been tried in real life"; Tim later laid the smack down on Scheme's numeric model and ended it with "There's a reason the NumPy folks never bug you for Scheme features ". Christian pointed out that keeping it as a rat would prevent overflows from ever occuring from long division. Tim was staunchly against a fuzz variable. Raymond suggested a fuzz comparison function that took in a fuzz value. Christopher said that the way it stands now in the implementation is that rationals are coerced to floats and then compared. Oren Tirosh suggested a thired boolean, 'Undetermined', that would be raised when the "difference between A and B is below the error margin". David Abrahams said that Boost discussed this and said that the cost of adding ternary logic was not worth it. Andrew asked how rats could be optimized. He suggested ditching trailing zeros. Tim wondered how much of a save you would get from this. Raymond Hettinger suggested having a builtin variable that would specify the "maximum denominator magnitude". Christian liked this idea. Greg didn't think this would be a good solution because people using rats are going to want them specifically because they are exact. So Raymond suggest the default be unrestricted denominator. Guido brought up the question of how rats should be represented when printed. The syntax for rats came up. Greg Ewing got the ball rolling by suggesting the syntax for rat division as ``\\\``. M.A. Lemburg suggested just having a constructor like ``rat(2,3)``. The discussion then had a gamut of suggested syntax: ``2:3``, ``2r3``, ``{2/3}`` (Guido shot this down because he wants to leave the option open for possible set notation), ``<2/3>``,``2r/3``, something by Barry using an extended character that Pine wouldn't display (it was a joke), and finally ``2/3r`` by Guido. People agreed that this last one suggested by Guido was the best one. Tim also pointed out that Scheme has notation to specify whether a number is exact or not and using the 'r' notation would basically provide the same functionality. But regardless of what syntax people preferred, it was overwhelmingly agreed that choosing the syntax should wait until rationals have been in the language for a while and it is known how they are used. If you only read one thing, read Tim's emails since he explains all of this really well and is the resident math whiz on Python-dev. .. _patch 617779: http://www.python.org/sf/617779 .. _PEP 239: http://www.python.org/peps/pep-0239.html ================================================== `Non-ASCII characters in test_pep277.py in 2.3`__ ================================================== __ http://mail.python.org/pipermail/python-dev/2002-October/029247.html Guido pointed out that test_pep277.py_ uses an encoding cookie which was not being recognized by his toolchain. At some point he stated that he is "still not 100% comfortable with using arbitrary coding cookies in the Python distribution". The reason I mention this thread (beyond for the quote above) is that info on how to get XEmacs to recognize the cookie came out. Sjoerd Mullender sent out the link http://www.xemacs.org/Documentation/packages/html/mule-ucs_2.html which helped some people. As for Linux distro-specific problems, M.A. Lemburg noticed that SuSE puts Mule support in a package named 'mule-ucs-xemacs' and once he got the package loaded XEmacs worked. .. _test_pep277.py: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Lib/test/test_pep277.py ====================================================== `Unclear on the way forward with unsigned integers`__ ====================================================== __ http://mail.python.org/pipermail/python-dev/2002-October/029249.html Splinter threads: - `PEP 263 in the works`__ __ http://mail.python.org/pipermail/python-dev/2002-October/029289.html Mark Hammond was "a little confused by the new world order for working with integers in extension modules". Mark wanted know how to create objects that were more like a collection of bits than an integer. Tim suggested creating a Python long; that would act more like an unsigned int in terms of its bits. The FutureWarning for hexadecimal constants was brought up and it was pointed out that to deal with those just stick an 'L' at the end. Remember folks, that in Python 2.3 ``0x80000000L == 2147483648``. The usefulness of __future__ statements also came up. Tim wondered how useful they were. Thomas Wouters, though, came to __future__'s defense and explained how it helped him migrate people to newer versions of Python without being yelled at for breaking their code. ================================================= `segmentation fault with python2.3a0 from cvs`__ ================================================= __ http://mail.python.org/pipermail/python-dev/2002-October/029286.html Gersen Kurz was having problems importing a huge file. The bug was attributed to cygwin's malloc implementation, so people might want to watch out for that. It was also pointed out that a loop with a bunch of items in a dict created a huge number of references. It turns out that dicts use dummy references in its implementation for when something is deleted. So don't be alarmed by huge references even after you deleting an immense dict. ========================================== `Snapshot win32all builds of interest?`__ ========================================== __ http://mail.python.org/pipermail/python-dev/2002-October/029352.html As mentioned in the last summary, Mark Hammond wondered if anyone would care to have access to compiled snapshots of CVS for Windows. He got enough of a response to give access at http://starship.python.net/crew/mhammond . This is not like the standard Windows installer, though; "This version installs no shortcuts, does not compile .pyc files etc - you are pretty much on your own. Pythonwin\start_pythonwin.pyw is installed to start Pythonwin, but you must do so manually". Mark would like to know if you end up using this. =========================================== `Set-next-statement in Python debuggers`__ =========================================== __ http://mail.python.org/pipermail/python-dev/2002-October/029377.html Richie Hindle wants to write a pure Python debugger; the problem is that it would be difficult without certain C-level stuff exposed to Python. Specifically, he wants frame.f_lasti (to be found in frameobject.c_ ) to be writable by Python so he "could implement Set-Next-Statement". Michael Hudson is the first email I have of someone chiming against this. He thought it would be better to make it a descriptor so as that "you can do some sanity checking on the values". Guido then chimed in saying that if it was writable that would open up a hole for crashing a program. Guido eventually said making it read-only would be fine. This led to Armin Rigo pointing out that you can crash the interpreter already with the new module "or by writing crappy .pyc files". Guido acknowledged this, but said he didn't want to add anymore if it could be helped. He pointed out that he wants to stick with the idea that a segfault is Python's fault unless proven otherwise. .. _frameobject.c: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Objects/frameobject.c ===================== `Multibyte repr()`__ ===================== __ http://mail.python.org/pipermail/python-dev/2002-October/029442.html A patch was applied that allowed repr() to return characters with the high bit set; repr() used the "multibyte C library for printing string if available". This had caused a bug and made Guido wonder if this was a good thing to do. For an example:: >>> u = u'\u1f40' # Python 2.2 >>> s = u.encode('utf8') >>> s '\xe1\xbd\x80' >>> >>> u = u'\u1f40' >>> s = u.encode('utf8') >>> s '1⁄2\x80' # Notice the extended character >>> "The latter output is not helpful, because the encoding of s is not the locale's encoding". Martin v. Loewis said that he thought author of the patch's intention was "to get 'proper' output in interactive mode for strings". Part of the issue with all of this is the GNU readline calls setlocale() automatically. A patch came about to reset it in the extension module back to its original state. The issue of whether pickling would break because of this. Guido tried it and had no issue. Atsuo Ishimoto (who brought up the possible problem) said it broke when using the ShiftJIS locale. But the worry of having repr() be locale-specific still lingered. Martin said he was "convinced that having repr locale-specific is unacceptable". He said, though, that having the tp_print slot use a locale-aware print function was fine and to have it differ from tp_repr was fine. But this was shot down by Guido; "tp_print only gets invoked when sys.stdout is a real file; otherwise str() or repr() get invoked". Apparently tp_print is a performance optimization and thus should be fully transparent and not be different in any way to the user. Guido said that the multibyte-string patch should be backed out. With the pickle issue and different semantics for sys.stdout because of tp_print, Guido said the patch had to be backed out. As Tamito Kajiyama said, "one of the virtues of Python is that Python has no language feature that is (automagically) affected by locale settings". ======================================= `tp_dictoffset calculation in 2.2.2`__ ======================================= __ http://mail.python.org/pipermail/python-dev/2002-October/029502.html Guido asked David Abrahams and Kevin Jacobs if a change in how tp_dictoffset (found in `typeobject.c`_ ) was calculated would affect them. To give some background, tp_dictoffset "tells us where the instance dict pointer is in the instance object layout". This was a three step process (all Guido's words): 1. (Line 1113) For dynamically created types (i.e. created by class statements), if the new type has no __slots__, the dominant base class has a zero tp_dictoffset, and the dominant base doesn't have a custom tp_getattro, a __dict__ will be added to the instance layout, and its tp_dictoffset is calculated by taking the end of the base class instance struct (or in a more complicated way if tp_itemsize is nonzero). 2. (Line 1941) If the dominant base has a nonzero tp_dictoffset, copy the tp_dictoffset from the dominant base. 3. (Line 2090) The tp_dictoffset of the first non-dominant base class that has a nonzero tp_dictoffset is copied. That last rule had caused Guido and Jeremey Hylton some problems with some code they were bugfixing. Guido wanted to just get rid of that rule since he though "it is *always* wrong". Both David and Kevin said that nothing broke for them, so that is now all straightened out. ========================== `Memory size overflows`__ ========================== __ http://mail.python.org/pipermail/python-dev/2002-October/029535.html Armin Rigo pointed out some potential overflow errors "with objects of very large sizes". The issue was when the amount of memory needed to allocate was calculated there was the chance that it would overflow. Armin suggested adding macros to deal with various issues. Arrive Tim Peters, creator of pymalloc. He admitted that he "always ignore[s] these [errors] until one pops up in real life" since "Checking slows the code, and that causes [Tim] pain <0.5 wink>". He pointed out another possible overflow calculation problem. But it was a basically a hopeless battle since malloc() has its own cross-platform issues. But Tim did say that if it was decided to go down the macro route, then he wanted something like what Zope does: ``DO_SOMETHING_OR(RESULT_LVALUE, INPUT1, ..., ON_ERROR_BLOCK);``. The result goes into RESULT_LVALUE unless there is a problem, in which case ON_ERROR_BLOCK is run. Christian Tismer chimed in and said that he thought we should just move completely over to 64 bit math. Ruby had done it successfully so it wasn't like we were taking a blind leap. It would also save us the hassle from doing it down the road when 64 bit processors become the norm instead of the exception. From greg@cosc.canterbury.ac.nz Mon Oct 14 04:41:22 2002 From: greg@cosc.canterbury.ac.nz (Greg Ewing) Date: Mon, 14 Oct 2002 16:41:22 +1300 Subject: ANN: Pyrex 0.4.5 Message-ID: Pyrex 0.4.5 is now available: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ New Features: * There is now a 'public' declaration for making Pyrex-defined variables and functions available to external C code. There are also some other minor improvements and bug fixes. See the CHANGES file in the distribution for a full list. What is Pyrex? -------------- Pyrex is a new language for writing Python extension modules. It lets you freely mix operations on Python and C data, with all Python reference counting and error checking handled automatically. -- Greg Ewing, Computer Science Dept, University of Canterbury, Christchurch, New Zealand http://www.cosc.canterbury.ac.nz/~greg From beazley@cs.uchicago.edu Mon Oct 14 15:43:02 2002 From: beazley@cs.uchicago.edu (David Beazley) Date: Mon, 14 Oct 2002 09:43:02 -0500 (CDT) Subject: CFP: USENIX'03 - Freenix Message-ID: USENIX'03 - FREENIX Track June 9-14, 2003 San Antonio, Texas http://www.usenix.org/events/usenix03/cfp/freenix.html I'd just like to encourage members of the Python community to consider submitting a paper to the USENIX'03 FREENIX track. FREENIX is an ideal venue for describing new and interesting work on open-source and freely available software projects. Although submissions should describe mature work, papers do not need to be research papers. In fact, submissions describing projects that are underway, but not yet finished are actively encouraged. Putting on my educator hat for a moment, I'd also like to add that FREENIX is a very nice venue for students. USENIX has always encouraged student submissions--in fact, student presenters often receive free conference registration and may apply for grants to cover travel and hotel expenses. Therefore, if you're working on something cool, this is a perfect opportunity to tell people about it. More details about FREENIX can be found at the above URL. Submissions are due by November 18, 2002. Hopefully you'll join us in San Antonio! Cheers, David Beazley (Member, FREENIX Program Committee) From guido@python.org Tue Oct 15 00:29:33 2002 From: guido@python.org (Guido van Rossum) Date: Mon, 14 Oct 2002 19:29:33 -0400 Subject: RELEASED: Python 2.2.2 (final) Message-ID: Ta-daa! The release of Python 2.2.2 is here. This is a fully backwards compatible bugfix release for Python 2.2.1. Thanks to all who submitted last-minute bug reports and fixes -- and thanks even more to those who didn't wait until the last minute! :-) Python 2.2.2 has a large number of bug fixes in all areas of the interpreter and the library; for a full account see the release notes, available via the link below. With special dispensation from the "bugfixes only" rule, a brand new version of the email package is also included: email 2.4.3. The new release is available here: http://www.python.org/2.2.2/ It will soon be available from mirror sites all over the world -- for a speedy download, try the mirror site nearest to you first: http://www.python.org/Mirrors.html As usual, a Windows installer and a Unix/Linux source tarball are made available, as well as tarballs of the documentation in various forms. At the moment, no Mac version is available, though I expect that Jack Jansen will produce one soon. Likewise, no Linux RPMs are available yet; I expect that Sean Reifschneider will prepare these shortly. I'm especially grateful to Michael Hudson, Raymond Hettinger and Neal Norwitz for their hard work on backporting the large volume of patches from Python 2.3. Without them this release would not have been possible. --Guido van Rossum (home page: http://www.python.org/~guido/) From greg@cosc.canterbury.ac.nz Wed Oct 16 05:53:44 2002 From: greg@cosc.canterbury.ac.nz (Greg Ewing) Date: Wed, 16 Oct 2002 17:53:44 +1300 Subject: ANN: Plex 1.1.4 Message-ID: Plex 1.1.4 is available: http://www.cosc.canterbury.ac.nz/~greg/python/Plex/ This version fixes a bug which could cause the argument of a Rep or Rep1 to fail to match at the beginning of a line. What is Plex? ------------- Plex is a lexical analysis module for Python which provides Flex-like facilities. See the above URL for more information. -- Greg Ewing, Computer Science Dept, University of Canterbury, Christchurch, New Zealand http://www.cosc.canterbury.ac.nz/~greg From rjones@ekit-inc.com Wed Oct 16 08:01:02 2002 From: rjones@ekit-inc.com (Richard Jones) Date: Wed, 16 Oct 2002 17:01:02 +1000 Subject: SC-Track Roundup 0.5.1 - an issue tracking system Message-ID: ================================================= SC-Track Roundup 0.5.1 - an issue tracking system ================================================= This is a bugfix release for version 0.5.0 - if you're upgrading from before that, you *must* read doc/upgrading.txt! Unfortunately, the Zope frontend for Roundup is currently broken. I will be looking into fixing it for the next patch release. Roundup requires python 2.1.3 or later for correct operation. We've had a good crack at bugs (thanks to all who contributed!): - fixed filter() with no sort/group (sf bug 618614) - fixed register with no session (sf bug 618611) - fixed log / pid file path handling in roundup-server (sf bug 617981) - fixed old gadfly compatibiltiy problem, for sure this time (sf bug 612873) - https URLs from config now recognised as valid (sf bug 619829) - nicer display of tracker list in roundup-server (sf bug 619769) - fixed some missed renaming instance -> tracker (sf bug 619769) - allow blank passwords again (sf bug 619714) - made form table cell alignment consistent (sf bug 621887) - include stylesheet in docs (sf bug 623183) - store PIPE messages so we can re-send them on errors (sf bug 623082) - implemented "retire" cgi action, added to user index (sf bug 618612) - included doc ideas from Bernhard Reiter (sf feature 621941) - handle "unset" status in status auditor (sf bug 621250) - homogenise newlines in CGI text submissions (sf bug 614072) - merged Zope Collector #372 fix from ZPT CVS trunk - implemented the missing Interval.__add__ - metakit cleanups - nicer "navigation" style in index views - highlight index rows in groups of three - handle missing Link values in anydbm backend set() operation - expose the tracker config as a variable for templating - fixed history to display username instead of userid - shipped templates didn't import all hyperdb types in dbinit.py - fixed bug in Interval serialisation - issues in 'done-cbb' are now also moved to 'chatting' on new messages - added ability to implement new templating utility methods - expose the Date.pretty method to templating Source and documentation is available at the website: http://roundup.sourceforge.net/ Release Info (via download page): http://sourceforge.net/projects/roundup Mailing lists - the place to ask questions: http://sourceforge.net/mail/?group_id=31577 About Roundup ============= Roundup is a simple-to-use and -install issue-tracking system with command-line, web and e-mail interfaces. It is based on the winning design from Ka-Ping Yee in the Software Carpentry "Track" design competition. Note: Ping is not responsible for this project. The contact for this project is richard@users.sourceforge.net. Roundup manages a number of issues (with flexible properties such as "description", "priority", and so on) and provides the ability to: (a) submit new issues, (b) find and edit existing issues, and (c) discuss issues with other participants. The system will facilitate communication among the participants by managing discussions and notifying interested parties when issues are edited. One of the major design goals for Roundup that it be simple to get going. Roundup is therefore usable "out of the box" with any python 2.1+ installation. It doesn't even need to be "installed" to be operational, though a disutils-based install script is provided. It comes with two issue tracker templates (a classic bug/feature tracker and a minimal skeleton) and six database back-ends (anydbm, bsddb, bsddb3, sqlite, metakit and gadfly). From kjetilja@cs.uit.no Wed Oct 16 10:57:30 2002 From: kjetilja@cs.uit.no (Kjetil Jacobsen) Date: 16 Oct 2002 02:57:30 -0700 Subject: ANN: pycurl-7.10.1 Message-ID: pycurl -- A Python interface to the curl library Version 7.10.1 What is it? ----------- The pycurl package is a Python interface to the curl library (http://curl.haxx.se/libcurl/). pycurl has been successfully built and tested with Python versions from 1.5.2 to 2.2.2 on various Unix platforms and Windows. The curl library is a client-side URL transfer library supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. The curl library also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploads, proxies, cookies, basic authentication, file transfer resume of FTP sessions, HTTP proxy tunneling and more. For information on how the curl library works, please consult the curl library web pages (http://curl.haxx.se/libcurl/using/). All the functionality provided by the curl library can used through the pycurl interface. Download -------- The latest version of pycurl can be obtained at: http://pycurl.sourceforge.net/ Changes since the last version ------------------------------ * Added new module-level function version_info() from libcurl-7.10. Licence ------- Copyright (c) 2001-2002 by Kjetil Jacobsen Copyright (c) 2001-2002 by Markus F.X.J. Oberhumer pycurl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. From eric@enthought.com Wed Oct 16 17:11:27 2002 From: eric@enthought.com (eric jones) Date: Wed, 16 Oct 2002 11:11:27 -0500 Subject: ANNOUNCE: Building C/C++ Extensions for Python Message-ID: Building C/C++ Extensions for Python Description: Enthought is proud to announce "Building C/C++ extensions for Python," an intense 3 day course taught by David Beazley, David Abrahams, and Eric Jones, the lead authors of SWIG, Boost.Python, and Weave. This hands-on course is geared toward C/C++ programmers and teaches the start-to-finish process of exposing C/C++ libraries for use in Python. Students are sure to benefit from this opportunity to learn from three of the leading experts in the field. The class teaches the fundamentals of designing and building Python extensions and addresses the common problems that arise during the process. Boost.Python, SWIG, and Weave are central to the discussion, and each is covered in depth. Fundamental topics such as handling reference counts and building Python 2.2 style extension types by hand are also covered. Other topics discussed include Pyrex, distributing extensions using distutils, debugging extensions, and solving shared library issues. The course is divided equally between lectures and hands-on programming sessions. Users will need to bring either a Linux or a Windows NT/2000/XP, network enabled, laptop to the class with Python 2.2 and a C++ compiler installed for the programming sessions. More information about setup requirements is available at the website. Space is limited. Website: http://www.enthought.com/training/building_extensions.html Signup Information: Call (512) 536-1057 to reserve your place. Dates: December 9th, 10th, and 11th, 2002 (Monday through Wednesday) Instruction Hours: Instruction runs from 9am-9pm on the first two days (with breaks for lunch, dinner, and between sessions), and 9am-6pm on the final day of the class. Location: The Driskill Hotel www.driskillhotel.com 604 Brazos Street Austin, Texas The Driskill is conveniently located in the heart of downtown Austin. And, yes, it has high speed internet connections in the guest rooms. What's Included: 3 nights of lodging All meals and snacks Unlimited caffeinated drinks Class materials 3 days of instruction Cost: $2400.00 US. About the Authors: David Beazley David is an assistant professor in the Department of Computer Science at the University of Chicago. He has worked on Python extension building since 1996 and is the creator of SWIG (www.swig.org). He is also the author of the "Python Essential Reference." David holds a PhD in Computer Science from the University of Utah. David Abrahams David is a founding member and moderator of Boost (www.boost.org) and heads Boost Consulting, a company dedicated to providing professional support and development services for the Boost C++ libraries and associated tools. He has been an ANSI/ISO C++ committee member since 1996, when he contributed a theory, specification, and implementation of exception handling for the C++ standard library. In his 14-year career he has developed applications for the desktop and embedded devices in the fields of music software, speech recognition, and circuit simulation. David holds a BSE in Computer Science from the University of Pennsylvania. Eric Jones Eric has a broad background in engineering and software development and leads Enthought's product engineering and software design. Eric is a lead developer on the SciPy (www.scipy.org) and Weave projects and has taught numerous courses about Python and how to leverage it for scientific computing. Prior to co-founding Enthought, Eric worked in the fields of numerical electromagnetics and genetic optimization. Eric holds a PhD degree in Electrical Engineering from Duke University. ---------------------------------------------- eric jones 515 Congress Ave www.enthought.com Suite 1614 512 536-1057 Austin, Tx 78701 From uche.ogbuji@fourthought.com Wed Oct 16 22:47:24 2002 From: uche.ogbuji@fourthought.com (Uche Ogbuji) Date: 16 Oct 2002 15:47:24 -0600 Subject: Tutorial: Python/XML development using 4Suite Part 4: Composition and updates Message-ID: This tutorial actually spends more time on just explaining XInclude/XPointer and XUpdate themselves than how to use them in 4Suite. https://www6.software.ibm.com/reg/devworks/dw-x4suite4-i/?loc=dwmain Free registration required. -- Uche Ogbuji Fourthought, Inc. http://uche.ogbuji.net http://4Suite.org http://fourthought.com Python&XML column: 2. Introducing PyXML - http://www.xml.com/pub/a/2002/09/25/py.html The Past, Present and Future of Web Services 1 - http://www.webservices.org/index.php/article/articleview/663/1/24/ The Past, Present and Future of Web Services 2 - 'http://www.webservices.org/index.php/article/articleview/679/1/24/ Serenity through markup - http://adtmag.com/article.asp?id=6807 Tip: Using generators for XML processing - http://www-106.ibm.com/developerworks/xml/library/x-tipgenr.html From uche.ogbuji@fourthought.com Thu Oct 17 06:44:23 2002 From: uche.ogbuji@fourthought.com (Uche Ogbuji) Date: 16 Oct 2002 23:44:23 -0600 Subject: Article: A Tour of 4Suite Message-ID: http://www.xml.com/pub/a/2002/10/16/py-xml.html In this article, I provide a tour of the 4Suite package, with liberal code examples. -- Uche Ogbuji Fourthought, Inc. http://uche.ogbuji.net http://4Suite.org http://fourthought.com Python&XML column: 2. Introducing PyXML - http://www.xml.com/pub/a/2002/09/25/py.html The Past, Present and Future of Web Services 1 - http://www.webservices.org/index.php/article/articleview/663/1/24/ The Past, Present and Future of Web Services 2 - 'http://www.webservices.org/index.php/article/articleview/679/1/24/ Serenity through markup - http://adtmag.com/article.asp?id=6807 Tip: Using generators for XML processing - http://www-106.ibm.com/developerworks/xml/library/x-tipgenr.html From mal@lemburg.com Fri Oct 18 12:43:23 2002 From: mal@lemburg.com (M.-A. Lemburg) Date: Fri, 18 Oct 2002 13:43:23 +0200 Subject: ANN: eGenix.com mxCGIPython Version 0.7.0 Message-ID: ________________________________________________________________________ ANNOUNCING: eGenix.com mxCGIPython Version 0.7.0 An easy-to-install one-file Python Interpreter ________________________________________________________________________ WHAT IS IT ?: mxCGIPython is a project to provide a complete ready-to-run Python interpreter in one single executable file. The main intent for supplying such a single file executable is to ease deployment of Python for CGI scripting even when the ISP is not willing or able to install Python for you. The mxCGIPython archive contains everything needed to build the one file interpreter. The web page provides a set of links to contributed binaries for direct use in addition to setup instructions to get the binaries up and running at your ISP. See the documentation page for a list of available binary packages. Binaries for new platforms are always welcome :-) ________________________________________________________________________ WHAT'S NEW ? Version 0.7.0 now includes all standard Python packages (except the test package), so it should work as full replacement for the standard Python binary. Oleg Broytmann has kindly compiled new versions of cgipython built on Python 2.2.2. ________________________________________________________________________ WHERE CAN I GET IT ? The download archives and instructions for installing the packages can be found at: http://www.egenix.com/files/python/ ________________________________________________________________________ WHAT DOES IT COST ? The packages comes 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. The binaries are covered by the usual Python licenses. ________________________________________________________________________ WHERE CAN I GET SUPPORT ? Free support is available through the eGenix.com User Mailing List which provides a forum for eGenix.com Software Users: http://lists.egenix.com/mailman/listinfo/egenix-users/ Commercial quality support for these packages is available from eGenix.com Software GmbH. Please see http://www.egenix.com/files/python/eGenix-mx-Extensions.html#Support for details about the eGenix support offerings. ________________________________________________________________________ Enjoy, -- Marc-Andre Lemburg CEO eGenix.com Software GmbH ______________________________________________________________________ Company & Consulting: http://www.egenix.com/ Python Software: http://www.egenix.com/files/python/ From barry@zope.com Fri Oct 18 15:56:35 2002 From: barry@zope.com (Barry A. Warsaw) Date: Fri, 18 Oct 2002 10:56:35 -0400 Subject: RELEASED ht2html 2.0 Message-ID: ht2html is the web templating system we use to build the www.python.org web pages. Lots of other sites use the system as well. It's fairly dumb -- in a good way -- so it's also pretty easy to build static sites with a consistent look. Until now, the code has only been available by CVS checkout in the SourceForge project http://sf.net/projects/ht2html but that is pretty inconvenient for a lot of people, so I just created a tarball for download and tagged it version 2.0. At some point we may get motivated to make a real distutils package out of it. Download the tarball from http://sf.net/project/showfiles.php?group_id=46757 or visit the project home page, which contains all the documentation there is , at http://ht2html.sf.net Enjoy, -Barry From matt@meetup.com Fri Oct 18 17:53:16 2002 From: matt@meetup.com (matt meeker) Date: Fri, 18 Oct 2002 12:53:16 -0400 Subject: Python Meetup Day Message-ID: Hi, This is Matt from Meetup. Many Python programmers have written to us and suggested we create International Python Meetup Day, a chance for Python programmers worldwide to meet each other locally, in 532 cities across 27 countries. We listened, and the first International Python Meetup Day is November 14th at 7:00pm local time everywhere. See the details here: http://python.meetup.com/ Please let me know of any questions or ideas of how we can make this better for you. Thanks, -matt ----------------------- matt meeker, co-founder MEETUP (www.meetup.com) email: matt@meetup.com -----------------------

Python Meetup Day - Python Meetup Day is November 14th at 7:00pm, in 532 cities worldwide! (18-Oct-02) From max@alcyone.com Sat Oct 19 04:10:05 2002 From: max@alcyone.com (Erik Max Francis) Date: Fri, 18 Oct 2002 20:10:05 -0700 Subject: ANN: empy 2.1 -- Python templating system Message-ID: Summary empy is a system for embedding Python expressions and statements in template text; it takes an empy source file, processes it, and produces output. This is accomplished via expansions, which are special signals to the empy system and are set off by a special prefix (by default the at sign, '@'). empy can expand arbitrary Python expressions and statements in this way, as well as a variety of special forms. Textual data not explicitly delimited in this way is sent unaffected to the output, allowing Python to be used in effect as a markup language. Also supported are "hook" callbacks, recording and playback via diversions, and dynamic, chainable filters. The system is highly configurable via command line options and embedded commands. Expressions are embedded in text with the '@(...)' notation; variations include conditional expressions with '@(...?...:...)' and the ability to handle thrown exceptions with '@(...$...)'. As a shortcut, simple variables and expressions can be abbreviated as '@variable', '@object.attribute', '@function(arguments)', '@sequence' [index], and combinations. Full-fledged statements are embedded with '@{...}'. Forms of conditional, repeated, and recallable expansion are available via '@[...]'. A '@' followed by a whitespace character (including a newline) expands to nothing, allowing string concatenations and line continuations. Comments are indicated with '@#' and consume the rest of the line, up to and including the trailing newline. '@%' indicate "significators," which are special forms of variable assignment intended to specify per-file identification information in a format which is easy to parse externally. Escape sequences analogous to those in C can be specified with '@\...', and finally a '@@' sequence expands to a single literal at sign. Getting the software The current version of empy is 2.1. The latest version of the software is available in a tarball here: http://www.alcyone.com/pyos/empy/empy-latest.tar.gz. The official URL for this Web site is http://www.alcyone.com/pyos/empy/. Requirements empy should work with any version of Python from 1.5.x onward. License This code is released under the GPL. .... Release history [since 2.0] - 2.1; 2002 Oct 18. 'empy.atExit' registry separate from hooks to allow for normal interpreter support; include a benchmark sample and test.sh verification script; expose 'empy.string' directly; -D option for explicit defines on command line; remove ill-conceived support for '@else:' separator in '@[if ...]' substitution; handle nested substitutions properly; '@[macro ...]' substitution for creating recallable expansions. - 2.0.1; 2002 Oct 8. Fix missing usage information; fix after_evaluate hook not getting called; add 'empy.atExit' call to register values. -- Erik Max Francis / max@alcyone.com / http://www.alcyone.com/max/ __ San Jose, CA, USA / 37 20 N 121 53 W / &tSftDotIotE / \ Sit loosely in the saddle of life. \__/ Robert Louis Stevenson Alcyone Systems / http://www.alcyone.com/ Alcyone Systems, San Jose, California. . From pmagwene@speakeasy.net Mon Oct 21 04:34:52 2002 From: pmagwene@speakeasy.net (paul m) Date: Sun, 20 Oct 2002 23:34:52 -0400 Subject: ANN: disipyl plotting library - 0.8 Message-ID: DESCRIPTION: ----------- disipyl is an object-oriented wrapper around the DISLIN plotting library. DISLIN is a powerful and flexible multiplatform (Win32, Unix, Linux, etc.) library designed for displaying scientific data. DISLIN's author, Helmut Michels, has made available a DISLIN plotting extension for the Python programming language (see http://www.linmpi.mpg.de/dislin/ for more details). disipyl provides a set of classes which represent various aspects of DISLIN plots, as well as providing some easy to use classes for creating commonly used plot formats (e.g. scatter plots, histograms, 3-D surface plots). A major goal in designing the library was to facilitate interactive data exploration and plot creation. Documentation, a tutorial, and a demo program are included. The library has been tested on Win32, Linux, and FreeBSD, but I anticipate that it should work on any platform which can make use of Python, NumPy, and the DISLIN python extensions. Feedback, comments, and critique are gladly accepted (email: paul.magwene@yale.edu). VERSION: ------- This is release 0.8 of disipyl. CHANGES: ------- New in this release: * Added bugfixes and CanvasMultiPlot class submitted by Martin L=FCthi * Added setCharacterCode function submitted by Mart=EDn Arga=F1araz for using alternate character encodings URL: ---- You can find disipyl at: http://pantheon.yale.edu/~pmm34/disipyl.html =2E From jeremy@zope.com Mon Oct 21 18:02:15 2002 From: jeremy@zope.com (Jeremy Hylton) Date: Mon, 21 Oct 2002 13:02:15 -0400 Subject: ZODB 3.1b3 announced Message-ID: I am pleased to announce the third and final beta releases of ZODB3 and ZEO2. These last beta releases were prompted by last minute problems with ZEO signal handling and the FileStorage restore() method. See NEWS.txt and ZEO-NEWS.txt for details. The final release will be on Friday. Please give the betas a try before then! ZODB is an object database for Python that provides transactional persistence while requiring few, if any, changes to application logic. ZEO is a client-server storage system for ZODB. The ZEO2 package is released on its own and as part of ZODB3. The separate release is for Zope users, who already have ZODB. You can get source releases from http://www.zope.org/Products/StandaloneZODB and http://www.zope.org/Products/ZEO. The ZODB3 release requires a C compiler, while the ZEO2 release is pure Python. The components you get with the ZODB3 release are as follows: - Core ZODB, including the persistence machinery - Standard storages such as FileStorage - Supporting modules such as ExtensionClass - The persistent BTrees modules - ZEO (versions 1 and 2) - Experimental Berkeley storages - Updated documentation The beta release contains roughly the same version of ZODB that was included in Zope 2.6. The two releases are not directly coordinated, so there may be some subtle differences. Many people have contributed to ZODB3. Special thanks to Toby Dickenson for the new ZODB Connection cache. Many people at Zope Corp. have contributed code and tested unreleased versions. Jeremy From crisfugate@webtv.net Mon Oct 21 03:00:49 2002 From: crisfugate@webtv.net (Cris Fugate) Date: Sun, 20 Oct 2002 21:00:49 -0500 (CDT) Subject: ANNOUNCE: framesets 2.0 for python Message-ID: I would like to announce the availability of framesets 2.0 for python. Please go to http://fsetstek.tripod.com for more details. Cris Fugate crisfugate@webtv.com From glyph@twistedmatrix.com Tue Oct 22 05:54:33 2002 From: glyph@twistedmatrix.com (Glyph Lefkowitz) Date: Mon, 21 Oct 2002 23:54:33 -0500 (CDT) Subject: Twisted 1.0 Developer Platform -- The Framework of Your Internet Message-ID: ----Security_Multipart(Mon_Oct_21_23:54:33_2002_709)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit What is Twisted? ================ Twisted is an event-driven framework for building networked clients and servers. It contains a powerful and simple networking core, a full-featured suite of interoperable protocols, among them a powerful web server and applications framework. Twisted integrates with a wide range of Python code. Popular graphical toolkits (including Qt, Win32, and GTK+), application servers (including Zope3 and Quixote), and database backends (any DB-API 2.0 compliant driver) can run in concert with a Twisted application. Hundreds of unit tests ensure that Twisted remains stable and production-ready from release to release. In addition, Twisted has automated acceptance tests to ensure continued interoperability with common third-party networking tools, and to test end-to-end functionality. What is the Twisted Developer Platform 1.0 Release? =================================================== With the 1.0.0 release, Twisted is finalizing several core interfaces important to server and client developers. While some areas of Twisted are still under active development, the event loop and all associated APIs are now stable and ready for third-party developers to use. A press release detailing the 1.0 release is available here: http://www.zoteca.com/Press/prtwisted10.pdf Who's Using Twisted? ==================== "You guys have a big problem, because [setting up a NNTP server] was way too easy to do! How are you going to make the big consulting bucks? :) You guys rock!" - Barry Warsaw, Zope Corporation "I was lucky to be finalizing "Python in a Nutshell" at just the right time to include some coverage of twisted.internet. I think asynchronous (event-driven) programming deserves wider exposure and wider use, and twisted.internet is a great way to implement event-driven network servers (and clients, too, though I did not cover that side of Twisted)." - Alex Martelli, A.B. Strakt "Twisted is built on solid foundations, and we hope to use in Zope 3." - Shane Hathaway, Zope Corporation "[Twisted] was by far the easiest framework to develop with, debug under, and extend for our purposes to support protocols such as SOAP, HTTP, and Macromedia Flash-compatible XML Sockets." - Bob Ippolito, CTO, Masters of Branding "We have selected Twisted as our framework because of its pluggable, asynchronous protocols, support for multiple interfaces and protocols per service, integration with PostgreSQL, and just generally excellent layered architecture." - Stephen C. Waterbury, NASA Read more at http://www.twistedmatrix.com/services/success What Does It Come With? ======================= Twisted supports many event loops for both server apps and GUI integration on the client side, including: - select() - poll() - kqueue on FreeBSD - Win32 events, including GUI support - GTK+ - Qt - wxPython - Tkinter - Java Twisted can run protocols over TCP, SSL, Unix sockets and subprocesses. It also includes scheduling support, threading integration, RDBMS event loop integration and other basic requirements for networked applications. Also included are implementations of many protocols. In some cases this includes complete frameworks providing facilities on top of the base protocol: - SSH - FTP - HTTP, including a complete web framework - XML-RPC server framework - NNTP and complete NNTP server framework - SOCKSv4 (server only) - SMTP - IRC - telnet - POP3 - AOL's instant messaging TOC - OSCAR, used by AOL-IM as well as ICQ (client only) - DNS (experimental) - MouseMan serial mice - Twisted Perspective Broker, a remote object protocol Get Twisted =========== Visit us on the web: http://www.twistedmatrix.com Mailing list: http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python IRC: #twisted on irc.freenode.net Twisted Fun =========== http://isometric.spaceninja.com/_/twisted_plutonium/ -- | <`'> | Glyph Lefkowitz: Travelling Sorcerer | | < _/ > | Lead Developer, the Twisted project | | < ___/ > | http://www.twistedmatrix.com | ----Security_Multipart(Mon_Oct_21_23:54:33_2002_709)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) iD8DBQA9tNoJvVGR4uSOE2wRAi0hAKCeLrNqkhmCjiwLKKV1qfLjccLXLwCeL7g9 4c304cnRAtjPuh8120YZbBk= =FIrL -----END PGP SIGNATURE----- ----Security_Multipart(Mon_Oct_21_23:54:33_2002_709)---- From gward@python.net Wed Oct 23 00:30:21 2002 From: gward@python.net (Greg Ward) Date: Tue, 22 Oct 2002 19:30:21 -0400 Subject: ANNOUNCE: elspy 0.1.1 released Message-ID: elspy 0.1.1 ----------- elspy is a layer of glue code that enables you to write Python code to scan email messages at SMTP-time with the Exim MTA (mail transport agent). elspy also includes a small Python library with common mail-scanning tools, including an interface to SpamAssassin and a simple-but-effective virus detector. Exim is a highly flexible and customizable MTA (mail transport agent) for Unix Internet email servers. One of the new features in Exim 4.0 was the local_scan() API, which allows sites to supply custom code for scanning messages at SMTP time, accepting or rejecting them based on message content. Normally, you have to write the local_scan() function in C. Python is a high-level, extensible, embeddable, object-oriented programming language. Scanning email is a great example of something that you can do in any decent programming language, but do a lot more easily in Python than in C. The core of elspy is a C local_scan() function that embeds a Python interpreter in Exim, allowing you to write your own local_scan() function in Python instead of C. REQUIREMENTS ------------ elspy requires Exim 4.0 or greater, and Python 2.0 or greater. WEB PAGE & MAILING LIST ----------------------- You can find the latest version of elspy here: http://elspy.sourceforge.net/ To report bugs, submit patches, browse the CVS, etc., please use the SourceForge project page: http://sourceforge.net/projects/elspy For help using elspy, or to discuss future development ideas, please join the elspy-users mailing list: http://starship.python.net/mailman/listinfo/elspy-users You can post to the list by sending mail to elspy-users@python.net. CHANGES ------- * Fix serious bug in header_add() and log_write() wrappers: they failed to escape '%' characters in the passed-in string, which could cause Exim to dump core since it treats those strings as format strings. * Change to accept messages by default if there's any Python problem, not just an import problem. Made this behaviour a bit more customizable with some #define's at the top of elspy.c -- Greg Ward http://www.gerg.ca/ Any priest or shaman must be presumed guilty until proven innocent. From jeremy@zope.com Wed Oct 23 19:43:13 2002 From: jeremy@zope.com (Jeremy Hylton) Date: Wed, 23 Oct 2002 14:43:13 -0400 Subject: Lightweight Languages 2002 -- Call for Participation Message-ID: Lightweight Languages Worshop 2002 (LL2) ---------------------------------------- Saturday, November 9, 2002, Room 34-101, MIT, Cambridge, MA http://ll2.ai.mit.edu mailto:ll2@ai.mit.edu CALL FOR PARTICIPATION LL2 will be an intense, exciting, one-day forum bringing together the best programming language implementors and researchers, from both academia and industry, to exchange ideas and information, to challenge one another, and to learn from one another. Agenda ====== Invited Talk: Concurrency Oriented Programming in Erlang - Joe Armstrong, Swedish Institute of Computer Science. >From Scripts to Programs: The Run-Time System, or Lightweight Languages As Lightweight Operating Systems - Matthew Flatt, PLT Supporting Persistent Objects in Python - Jeremy Hylton, Zope Corporation Safe Asynchronous Exceptions for Python - Stephen N. Freund, Williams College, and Mark P. Mitchell, CodeSourcery, LLC Invited Talk: Disruptive Programming Language Technologies - Todd Proebsting, Microsoft Research The Needle Programming Language - Neel Krishnaswami Leveraging Libraries in Lightweight Languages: the Jscheme Experience, Or Why Bambi Snuggles with Godzilla - Kenneth R. Anderson, BBN, and Timothy J. Hickey, Brandeis University, and Geoffrey S. Knauth, BAE Systems, and Gary L. Kratkiewicz, BBN. Invited Talk: The Ruby Programming Language - Yukihiro Matsumoto. IBM Lightweight Services - Christopher Vincent, IBM Internet Technology Why Extension Programmers Should Stop Worrying about Parsing and Start Thinking about Type Systems - David M. Beazley, University of Chicago The Laszlo Application Description Language, LZX - Oliver Steele The workshop starts at 10am. After the workshop, there will be an evening social event and dinner. See the web page for the detailed schedule. To register, simply send mail to ll2-register@ai.mit.edu We are currently hoping for sufficient sponsorship to avoid charging admission to the workshop. Closer to Nov. 9th we will state whether or not there will be a minimal registration fee (just to cover food). Program Committee ================= Paul Graham, Arc Jeremy Hylton, Zope Corp. Shriram Krishnamurthi, Brown University Mike Salib, MIT Olin Shivers, Georgia Tech. Dan Sugalski, Perl Foundation Greg Sullivan (chair), MIT AI Lab Dan Weinreb, BEA Systems, Inc. From lars@gustaebel.de Wed Oct 23 22:14:28 2002 From: lars@gustaebel.de (Lars Gustaebel) Date: Wed, 23 Oct 2002 23:14:28 +0200 Subject: ANN: tarfile 0.6 released Message-ID: I'm proud to announce the 0.6 release of tarfile. tarfile is a python module for reading and writing tar archives. The 0.6 release has some important bug fixes and introduces the support for bzip2 compression and tape devices. For users of tarfile versions below 0.6, it is highly recommended to update. Features list: * platform independent. * creates POSIX compliant tar archives, GNU tar archives on demand. * support for gzip and bzip2 compressed archives. (bzip2 compression requires the bz2 module version 1.1) * support for tape devices. * support for the most common GNU tar extensions. * support for files, directories, hardlinks, symbolic links, fifos and character and block devices. * optional zipfile compatible class interface. * comprehensive documentation and a unittest. * BSD-style license. tarfile is available here: http://www.gustaebel.de/lars/tarfile/ Thank you. -- Lars Gustäbel lars@gustaebel.de From i.linkweiler@web.de Fri Oct 25 09:11:57 2002 From: i.linkweiler@web.de (Ingo Linkweiler) Date: Fri, 25 Oct 2002 10:11:57 +0200 Subject: ANN: PyNassi 1.2 - structure chart editor Message-ID: PyNassi - A program structure chart editor DESCRIPTION: ------------ (DEUTSCH siehe unten) PyNassi 1.2 (24.10.02) A program structure chart editor and a debugger written with and for Python. PyNassi allows the interactive design of "Nassi Shneiderman" structure charts and can generate Python source code. Program structure charts permit an easily understandable diagram of functions and programs. PyNassi can be used for education for the representation and production of programs as well as an introduction to the basics of=20 programming techniques in the form of program structure charts. VERSION: -------- 1.2 (first public release) CHANGES: -------- v1.2: - english and german language - new setup dialog - printing URL: ---- http://www.ingo-linkweiler.de/diplom/ *** BESCHREIBUNG: ------------- Ein Struktogramm-Editor und Debugger in Python. PyNassi erm=F6glicht die Erstellung von Python-Scripten in Form von Nassi-Shneiderman-Struktogrammen. Struktogramme erlauben eine leicht verst=E4ndliche, grafische Darstellung von Funktionen und Programmen. Besonders im Bereich der Ausbildung zur Einf=FChrung in die Grundlagen der Programmiertechnik bietet sich die Darstellung und Erstellung von Programmen in Form von Struktogrammen an. VERSION: -------- 1.2 erste =F6ffentliche Version NEUERUNGEN: ----------- v.1.2: Mehrsprachig Druckfunktion Setupdialog URL: ---- http://www.ingo-linkweiler.de/diplom/ From Oleg Broytmann Fri Oct 25 10:52:26 2002 From: Oleg Broytmann (Oleg Broytmann) Date: Fri, 25 Oct 2002 13:52:26 +0400 Subject: mimedecode.py version 2.0! Message-ID: Hello! mimedecode.py WHAT IS IT Mail users, especially in non-English countries, often find that mail messages arrived in different formats, with different content types, in different encodings and charsets. Usually this is good because it allows us to use apropriate format/encoding/whatever. Sometimes, though, some unification is desireable. For example, one may want to put mail messages into an archive, make HTML indicies, run search indexer, etc. In such situations converting messages to text in one character set and skipping some binary atachmetnts is much desireable. Here is the solution - mimedecode.py. This is a program to decode MIME messages. The program expects one input file (either on command line or on stdin) which is treated as an RFC822 mesage, and decoded to stdout. If the file is not an RFC822 message it is just piped to stdout one-to-one. If the file is a simple RFC822 message it is just decoded as one part. If it is a MIME message with multiple parts ("attachments") all parts are decoded. Decoding can be controlled by command-line options. WHAT'S NEW in version 2.0.0 Major rewrite to use python email package. Old version is still inluded in the archive; the latest bug-fix version is 1.1.7. WHERE TO GET Master site: http://phd.pp.ru/Software/Python/#mimedecode Faster mirrors: http://phd.by.ru/Software/Python/#mimedecode http://phd2.chat.ru/Software/Python/#mimedecode Requires: Python 2.2.2+ Recommends: configured mailcap database. Documentation (also included in the package): http://phd.pp.ru/Software/Python/mimedecode.txt http://phd.by.ru/Software/Python/mimedecode.txt http://phd2.chat.ru/Software/Python/mimedecode.txt AUTHOR Oleg Broytmann COPYRIGHT Copyright (C) 2001-2002 PhiloSoft Design LICENSE GPL Oleg. -- Oleg Broytmann http://phd.pp.ru/ phd@phd.pp.ru Programmers don't die, they just GOSUB without RETURN. From i.linkweiler@web.de Fri Oct 25 12:13:39 2002 From: i.linkweiler@web.de (Ingo Linkweiler) Date: Fri, 25 Oct 2002 13:13:39 +0200 Subject: ANN: Von Stiften und Maeusen (german) Message-ID: SuM - Von Stiften und M=E4usen DESCRIPTION: ------------ German only: About pens and mice, a conversion of the well-known didactical learning software to Python. BESCHREIBUNG: ------------- Eine Umsetzung der bekannten didaktischen Lernsoftware nach Python. Einf=FChrung in die Grundlagen der objektorientierten Programmierung. Anhand fertiger Klassen "Stift", "Maus", "Bildschirm" u.a. kann in dieser Lernumgebung der Einstieg in die objektorientierte=20 Softwareentwicklung mit einfacher Computergrafik vermittelt werden. VERSION: -------- 1.0 erste =F6ffentliche Version URL: ---- http://www.ingo-linkweiler.de/diplom/ From jjl@pobox.com Fri Oct 25 14:36:59 2002 From: jjl@pobox.com (John J. Lee) Date: Fri, 25 Oct 2002 14:36:59 +0100 Subject: RELEASE: ClientForm 0.0.3b Message-ID: ClientForm 0.0.3b This is a beta release (the first, and probably the last). http://wwwsearch.sourceforge.net/ClientForm/ Changes since 0.0.2a: -Too many to list! -It works, unlike the alpha release. -Backported to 1.5.2. -Added TEXTAREA. -Many small improvements to the interface. -All HTML attributes are now accessible. -Interface is in terms of controls rather than items/inputs. -Disabled and readonly HTML attributes are now reflected in control interfaces. -Netscape / IE behaviour for default value of multiple-selection SELECT controls is now the default. RFC 1866 behaviour is still available. -Many bugs fixed. -Improved tests and documentation. -Much smaller package, thanks to removing an excessively large test file. 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 is a port (more-or-less) of Gisle Aas' Perl module HTML::Form, from the libwww-perl library. import ClientForm import urllib2 request = urllib2.Request("http://www.acme.com/form.html") response = urllib2.urlopen(request) forms = ClientForm.ParseResponse(response) form = forms[0] form["cheeses"] = ["parmesan", "leicester", "cheddar"] form.toggle("cheeses", "gorgonzola") form["author"] = "Gisle Aas" request2 = form.click("Thanks") response2 = urllib2.urlopen(request2) print response2.geturl() print response2.info() # headers for line in response2.readlines(): # body print line All of the standard input types are supported: TEXT, PASSWORD, HIDDEN, TEXTAREA, RESET, BUTTON, SUBMIT, IMAGE, RADIO, CHECKBOX and SELECT/OPTION. FILE (for file upload) is not yet supported, but will be in a future version. Python 1.5.2 or above is required. To run the tests, you need the unittest module (from PyUnit, and a standard library module with Python 2.1 and above). John From andymac@bullseye.apana.org.au Fri Oct 25 08:55:48 2002 From: andymac@bullseye.apana.org.au (Andrew MacIntyre) Date: Fri, 25 Oct 2002 18:55:48 +1100 (edt) Subject: ANN: port of Python 2.2.2 to OS/2+EMX In-Reply-To: Message-ID: I have uploaded a port of Python 2.2.2 to the incoming directories of the Hobbes (http://hobbes.nmsu.edu/) software archive. The distributed archives are: python-2.2.2-emx-bin-021024.zip (binary installation package, 3.16MB) python-2.2.2-emx-src-021024.zip (source patches and makefiles, 101kB) While not exhaustively tested, dynamically loadable extension modules (.pyd) built for the 2.2 & 2.2.1 ports should work with this release. More information about the port is available at http://www.andymac.org/python.html, along with the above archives are if you can't find them at Hobbes. OS/2 users enjoy! -- Andrew I MacIntyre "These thoughts are mine alone..." E-mail: andymac@bullseye.apana.org.au | Snail: PO Box 370 andymac@pcug.org.au | Belconnen ACT 2616 Web: http://www.andymac.org/ | Australia From thazel@txobject.org Sat Oct 26 02:46:00 2002 From: thazel@txobject.org (thazel@txobject.org) Date: Fri, 25 Oct 2002 21:46:00 -0400 Subject: [ANNOUNCE] txObject ATK 1.3.9 Message-ID: I'm please to announce the release of txObject ATK 1.3.9. This release provides developers the ability to use txObject ATK on Apple's Mac OS X platform. Unix, Linux, and Window platforms are still supported. What is it? txObject ATK is a collection of platform-independent C++ & Python Class libraries (GPL) that provides a five-layer framework containing an Object Library, I/O and Timers, Object-Oriented Threads (Native/Home Grown), Inter-Process Communication, and Distributed Object Communication. txObject ATK can be found at either of the following sites: Official Site http://www.txobject.org SourceForge (development & bug tracking) http://txobject.sourceforge.net Enjoy, --Thomas Hazel ( thazel@txobject.org ) From gerhard.haering@gmx.de Sun Oct 27 06:28:56 2002 From: gerhard.haering@gmx.de (Gerhard =?iso-8859-1?Q?H=E4ring?=) Date: Sun, 27 Oct 2002 07:28:56 +0100 Subject: [ANN] pyPgSQL 2.3 beta 1 released Message-ID: Announce: pyPgSQL - Version 2.3 beta 1 is released. =========================================================================== pyPgSQL v2.3 beta 1 has been released. It is available at http://pypgsql.sourceforge.net. pyPgSQL is a package of two (2) modules that provide a Python DB-API 2.0 compliant interface to PostgreSQL databases. The first module, libpq, is written in C and exports the PostgreSQL C API to Python. The second module, PgSQL, provides the DB-API 2.0 compliant interface and support for various PostgreSQL data types, such as INT8, NUMERIC, MONEY, BOOL, ARRAYS, etc. This module is written in Python and works with PostgreSQL 7.0 or later and Python 2.0 or later. It was tested with PostgreSQL 7.0.3, 7.1.3, 7.2.2, 7.3 beta 2, Python 2.0.1, 2.1.3 and 2.2.2. Note: It is highly recommended that you use PostgreSQL 7.1 or later and Python 2.1 or later. If you want to use PostgreSQL Large Objects under Python 2.2.x, you *must* use Python 2.2.2, because of a bug in earlier 2.2 versions. Project homepages: pyPgSQL: http://pypgsql.sourceforge.net/ PostgreSQL: http://www.postgresql.org/ Python: http://www.python.org/ This is the first time we release a beta of pyPgSQL. While there didn't change much under the hood, the build process was completely rewritten, so pyPgSQL should now build out of the box on most popular platforms. For you, this means that a "python setup.py build" will now hopefully just work. And for us, this means we'll have to answer less boring support questions :-) These platforms were tested and will build out of the box (of course, more testing won't hurt): UnixWare 7/OpenUNIX 8, Windows native, Cgwin, FreeBSD 4.7, Redhat Linux 7.3, SuSE Linux 7.3, Debian Linux 3.0. The build process is also designed to work with these platforms, but they could not be tested in real life (please do so, if you can!): Mandrake Linux, NetBSD, OpenBSD, MacOS X. If your platform isn't supported out of the box, you can edit a setup.config file to configure the build process. Patches for supporting additional platforms are more than welcome. Look into setup.py for how to do it. The other big change is that Gerhard finally gave up on getting more feedback on his Unicode patch and merged it into the pyPgSQL 2.x line. Hey, if it did work for Linux 2.4, it can work for us, too <0.7 wink>. Using Unicode works like this: from pyPgSQL import PgSQL con = PgSQL.connect(client_encoding=("utf-8", "ignore"), unicode_results=1) # where client_encoding are the parameters you normally give to the encode # method of a Unicode string. unicode_results=1 means pyPgSQL will return # VARCHAR/CHAR/TEXT fields as Unicode strings instead of byte strings. # As I refuse to do any magic, you'll also have to set the client encoding # for the database manually: cursor = con.cursor() cursor.execute("SET CLIENT_ENCODING TO UNICODE") # There are other ways to set the client encoding, including setting a # special environment variable (see PostgreSQL manual), but I recommend # doing it in code. --------------------------------------------------------------------------- ChangeLog: =========================================================================== Changes since pyPgSQL Version 2.2 ================================= The following source code files were added to Version 2.3 beta 1 of pyPgSQL: setup.config - Part of the changed distutils-based build process. If you want to customize the build process (change include and library directories, for example, you only need to edit this file; setup.py should not be edited directly any longer) unicode_tests.py - Test suite for the new Unicode support. Merged from the Unicode patch. Changes to setup.py ------------------- * This file was rewritten entirely so that pyPgSQL now builds out of the box on Windows, Cygwin, Debian Linux, Redhat Linux, SuSE Linux, FreeBSD, UnixWare 7 and OpenUNIX 8. These are the platforms the new build process has been tested on. Untested support is available for Mandrake Linux, NetBSD, OpenBSD and MacOS X. Changes to README ----------------- * Updates for 2.3b1. * Converted the whole document into reStructuredText, so we can easily built a HTML version using docutils (http://docutils.sf.net/). Changes to README.win32 ----------------------- * Remove out of date warning about PostgreSQL on win32 * Reflected change from windows/ to ports/ Changes to PgSQL.py ------------------- * Merged the Unicode patch. pyPgSQL now has full Unicode support. * Added support for the INTERVAL type. * mxDateTime 1.x is no longer supported. Require mxDateTime 2.x and give useful error message if import fails. * Cosmetic changes: use cmp builtin where appropriate. * Fixed typo where PgTypes.__str__ was spelled incorrectly; compare to None using "is" operator. * Take into account that libpq.PgInt8Type might not be available. * Convert ROWID to PgInt8 instead of PgInt4 (the original behaviour led to overflow errors.) * Always set the displaysize field of cursor.description to -1. PostgreSQL 7.3 doesn't provide this information any more and it's pretty useless nowadays that we've mostly left line printers beyond us. Changes to pyPgSQL/__init__.py ------------------------------ * Register libpq.PgInt8 with copy_reg only if available. Changes to pglargeobject.c -------------------------- * Made the 'closed' attribute of PgLargeObject an int instead of a long. Changes to libpqmodule.c: ------------------------- * Fixed the format string of ParseTuple in libPQbool_FromInt. This closes a bug that appeared on Linux/Alpha (#625121). Changes to PgSQLTestcases: -------------------------- * Don't check for the obsolete displaysize field in cursor.description. Also don't check the backend encoding. Multiple files -------------- The windows/ directory has been moved to a port/ directory. Now we *always* use our own version of various string versions instead of special casing for a dozen different Windows and Unix platforms. In order to get the C version of PgInt8Type, it is now required that the constants LLONG_MAX, LLONG_MIN, ULLONG_MAX and ULLONG_MIN are defined when including limits.h and that including Python.h defines HAVE_LONG_LONG. Otherwise, a Python class is used instead. From djc@object-craft.com.au Mon Oct 28 01:48:39 2002 From: djc@object-craft.com.au (Dave Cole) Date: 28 Oct 2002 12:48:39 +1100 Subject: Albatross 1.01 released In-Reply-To: References: Message-ID: OVERVIEW Albatross is a small toolkit for developing highly stateful web applications. The toolkit has been designed to take a lot of the pain out of constructing intranet applications although you can also use Albatross for deploying publicly accessed web applications. In slightly more than 2600 lines of Python (according to pycount) you get the following: * An extensible HTML templating system similar to DTML including tags for: - Conditional processing. - Macro definition and expansion. - Sequence iteration and pagination. - Tree browsing. - Lookup tables to translate Python values to arbitrary template text. * Application classes which offer the following features: - Optional server side or browser side sessions. - The ability to place Python code for each page in a dynamically loaded module, or to place all page processing code in a single mainline. * The ability to deploy applications either as CGI or via mod_python by changing less than 10 lines of code. The toolkit application functionality is defined by a collection of fine grained mixin classes. Nine different application types and five different execution contexts are prepackaged, you are able to define your own drop in replacements for any of the mixins to alter any aspect of the toolkit semantics. Application deployment is controlled by your choice of either cgi or mod_python Request class. It should be possible to develop a Request class for FastCGI or Medusa to allow applications to be deployed on those platforms with minimal changes. Albatross comes with over 130 pages of documentation. HTML, PDF and PostScript formatted documentation is available from the toolkit homepage. The toolkit homepage: http://www.object-craft.com.au/projects/albatross/ The Albatross mailing list subscription and archives: http://object-craft.com.au/cgi-bin/mailman/listinfo/albatross-users INCOMPATIBLE CHANGES * Prevent variables starting with an underscore from being merged into the context local namespace from request objects. This prevents attackers spoofing variables such as __page__, and any user variables such as authentication data. * Updated documentation to explain underscore prefixed names in execution context are protected from browser modification. BUGS FIXED * Applied bugfix from Detlef Lannert - null attributes would raise a TypeError (for example: ). Once fixed, this exposed another bug where an attribute with a null value would lose it's value altogether (XHTML requires attributes to have a value, null or otherwise). * Exception text is now escaped before being sent to browser. * The PageModuleMixin does not reload a page module if was previously loaded by unpickling the session. This is to avoid a problem with new code in the Python 2.2 pickle/cPickle module which causes the following to fail. import pickle, copy o = copy._EmptyClass() reload(copy) pickle.dumps(o, 1) * Pickling errors are now trapped by looking for the PickleError exception. * Bug prevented nameexpr from being used in and . * Radio input was converting "value_attr" to str(), but not "value", which was causing the "checked" test to fail if value was anything but a string. Also changed checkbox input to convert both to strings before doing the comparison. -- http://www.object-craft.com.au -- http://www.object-craft.com.au From wurmy@earthlink.net Sun Oct 27 16:04:52 2002 From: wurmy@earthlink.net (Hans Nowak) Date: Sun, 27 Oct 2002 16:04:52 GMT Subject: ANN: Kaa 0.8 Message-ID: This is Kaa 0.8, a weblogging tool written in Python. Some data: - it's client-based - based on Gadfly database - aimed at (Python) programmers (although anybody can use it) - uses Python 2.2 (but older versions may work as well) - released under the GPL What can it do? - one-click publishing: save, post, publish - create archives per day, week, month, entry, N days, N entries - use categories; archive per category - use embedded Python code in templates and entries - simple HTML macro system (more to come) - generate custom pages (experimental) - define your own buttons for common text editing features So, what's the catch? This is a 0.x version and can hardly be called "stable". Kaa works, in fact, I write my own weblog with it, but there may be hidden bugs, and many things may change at will in future versions. In other words, feel free to use it, but be aware that this is not a finished product. I'd like to receive comments, tips, bug reports, patches, ideas, etc. What features would you like to see in a weblogging tool? What can be improved? How can I make it more user-friendly? Etc. Download the latest version at http://www.awaretek.com/nowak/kaa-0.8.zip More information: http://www.awaretek.com/nowak/kaa.html -- Hans (base64.decodestring('d3VybXlAZWFydGhsaW5rLm5ldA==')) # decode for email address ;-) The Pythonic Quarter:: http://www.awaretek.com/nowak/ From djc@object-craft.com.au Mon Oct 28 11:36:20 2002 From: djc@object-craft.com.au (Dave Cole) Date: 28 Oct 2002 22:36:20 +1100 Subject: Sybase module 0.35pre2 released Message-ID: WHAT IS IT: The Sybase module provides a Python interface to the Sybase relational database system. It supports all of the Python Database API, version 2.0 with extensions. NOTES: In this release the module uses callback instead of inline error handling from the Sybase CT library. This has caused quite extensive changes to the threading support inside the low level extension module. One of the nice side effects of using callback error handling is that server errors while executing stored procedures will now be reported correctly. FreeTDS support is much improved in this version. You can build for FreeTDS like this: python setup.py build_ext -D HAVE_FREETDS -U WANT_BULKCOPY python setup.py install The module is available here: http://www.object-craft.com.au/projects/sybase/download/sybase-0.35pre2.tar.gz The module home page is here: http://www.object-craft.com.au/projects/sybase/ CHANGES SINCE 0.35pre1: * Changed ignored server messages to (5701, 5703). Thanks to Kevin Jacobs. * Allocate a new CS_COMMAND for each command executed on a cursor. This behaves like an explicit close() on the cursor in between commands. This makes it possible to perform multiple .execute() commands on a cursor with FreeTDS. * Added array binding to cursor to gain extra performance. Set the arraysize cursor attribute before executing a command. * Made connection locking optional. Sybase.connect(..., locking = 0) * Native DateTime types now has separate str() and repr(). print used to display "'11/01/63'". ARRAY BINDING: The following is a little test program to see the performance effect of array binding in the .fetchmany() cursor method. It looks like the speed was mostly going in function calls due to locking and single row fetching. run locking array functions time (ave 10 runs) test-array l Y N 88586 1.3248 secs test-array N N 20450 0.9803 secs test-array al Y Y 9458 0.5188 secs test-array a N Y 7262 0.5002 secs - - test-array.py - - - - - - - - - - - - - - - - - - - - - - - - import sys, Sybase def array_bind(): db = Sybase.connect('SYBASE', 'sa', '', 'sybsystemprocs', locking = do_locking) c = db.cursor() c.arraysize = 32 c.execute('select text from syscomments') num_rows = 0 while 1: rows = c.fetchmany() if not rows: break num_rows += len(rows) print num_rows, 'rows' def single_bind(): db = Sybase.connect('SYBASE', 'sa', '', 'sybsystemprocs', locking = do_locking) c = db.cursor() c.execute('select text from syscomments') num_rows = 0 while 1: row = c.fetchone() if not row: break num_rows += 1 print num_rows, 'rows' def main(): if do_array: array_bind() else: single_bind() do_profile = len(sys.argv) > 1 and sys.argv[1].find('p') >= 0 do_locking = len(sys.argv) > 1 and sys.argv[1].find('l') >= 0 do_array = len(sys.argv) > 1 and sys.argv[1].find('a') >= 0 if do_profile: import profile profile.run('main()') else: main() - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- http://www.object-craft.com.au From Bram@moolenaar.net Mon Oct 28 13:43:24 2002 From: Bram@moolenaar.net (Bram Moolenaar) Date: Mon, 28 Oct 2002 14:43:24 +0100 Subject: A-A-P does more than make Message-ID: A-A-P version 0.100 has been released. This is the first milestone for the A-A-P project. The main item in this release is the "aap" program. WHAT DOES THIS DO? The "aap" program is make on steroids. It does everything that make does, has a powerful script language build-in and has integrated internet support. You can use it to: - Build a program, on multiple platforms and in several variants - Maintain a web site (A-A-P is used for the Vim web site) - Download and install an application (like FreeBSD ports) - Obtain a module from CVS, update files in CVS - Generate and filter files Most of these things can be done with a recipe of just a few lines. Have a look at the examples: http://www.a-a-p.org/examples.html . The A-A-P recipe works better than a Makefile in many ways: - Uses signatures to avoid trouble with timestamps; restoring an old version of a file causes recompiling - Integrated support for up- and downloading - Integrated support for CVS (other version control systems can be added) - Python script can be used for more complicated tasks - Messages are brief, a log file contains the details - Reduces the need for shell scripts, improves portability - Automatically figures out dependencies for C programs - Simple syntax: mostly like a Makefile but avoids the need for line continuation backslashes, spaces in a file name are possible - Good support for a project with multiple directories A-A-P is written in Python. It currently runs on any Unix system with Python 1.5 or later. MS-Windows and Mac support is to be added later. WHAT IS A-A-P? A-A-P makes it easy to locate, download, build and install software. It also supports browsing source code, developing programs, managing different versions and distribution of software and documentation. This means that A-A-P is useful both for users and for developers. The current release is able to execute recipes. Further development will include an IDE framework, which makes it possible for existing tools to work together. For example: to use Vim with gdb for debugging, lookup remote documentation with the cross referencer, preview a TeX file, etc. A-A-P is still under development. Although the current version is working, not everything has been properly tested. There might be a few problems, use with care. A-A-P is open source under the GNU GPL. You are welcome to help improving A-A-P! LINKS Home page: http://www.a-a-p.org Manual HTML: http://www.a-a-p.org/exec/index.html Manual PDF: http://www.a-a-p.org/exec/exec.pdf Maillists: http://www.a-a-p.org/maillist.html Freshmeat: http://freshmeat.net/projects/a-a-p/ -- A poem: read aloud: <> !*''# Waka waka bang splat tick tick hash, ^"`$$- Caret quote back-tick dollar dollar dash, !*=@$_ Bang splat equal at dollar under-score, %*<> ~#4 Percent splat waka waka tilde number four, &[]../ Ampersand bracket bracket dot dot slash, |{,,SYSTEM HALTED Vertical-bar curly-bracket comma comma CRASH. Fred Bremmer and Steve Kroese (Calvin College & Seminary of Grand Rapids, MI.) /// Bram Moolenaar -- Bram@moolenaar.net -- http://www.moolenaar.net \\\ /// Creator of Vim - Vi IMproved -- http://www.vim.org \\\ \\\ Project leader for A-A-P -- http://www.a-a-p.org /// \\\ Lord Of The Rings helps Uganda - http://iccf-holland.org/lotr.html /// From altis@semi-retired.com Mon Oct 28 16:38:59 2002 From: altis@semi-retired.com (Kevin Altis) Date: Mon, 28 Oct 2002 08:38:59 -0800 Subject: ANN: PythonCard 0.6.9 Message-ID: PythonCard is a GUI construction kit for building cross-platform desktop applications on Windows, Mac OS X, and Linux. Release 0.6.9 includes over 30 sample applications and four tools to help users build applications in Python: codeEditor, findfiles, resourceEditor, and textEditor. A list of changes since release 0.6.8.1 is at the end of this message. All the information you need about PythonCard can be found on the project web page at: http://pythoncard.sourceforge.net/ The installation instructions and walkthroughs are available on the main documentation page: http://pythoncard.sourceforge.net/documentation.html Remember to backup or just delete your old PythonCardPrototype directory before installing a new version, so that the old files aren't still in the package directory. If you want to keep any of your userdata.txt or other configuration files (stc-styles.user.rc.cfg, pythoncard_user_config.py, etc.), back those up prior to doing the install, and then copy the files back afterwards. If you installed a previous version of PythonCard on Windows using the binary installer, then you should be able to remove the old package via the Add/Remove Programs Control Panel. The distutils installer will put the framework, components, docs, samples, and tools in Python22\Lib\site-packages. Of course, on Linux and Mac OS X that path will be slightly different and have forward slashes. You can download the latest release at: http://sourceforge.net/project/showfiles.php?group_id=19015 For a list of some of the samples that have been built with PythonCard and screenshots of them in action go to: http://pythoncard.sourceforge.net/samples.html A description of each sample is included in the readme.txt file in each sample directory. The kind people at SourceForge host the project: http://sourceforge.net/projects/pythoncard/ If you want to get involved the main contact point is the Mailing list: http://lists.sourceforge.net/lists/listinfo/pythoncard-users PythonCard requires Python 2.1.x (2.2.2 recommended) or later and wxPython 2.3.2.1 or later (2.3.3.1 recommended). wxPython can be downloaded at http://www.wxpython.org/ ka --- Kevin Altis altis@semi-retired.com --- changelog since release 0.6.8.1, 2002-07-17 Release 0.6.9 2002-10-23 added Thomas Heller's install-pythoncard.py script to create links under Windows added columnClick event to MultiColumnList added line and column display to statusbar in codeEditor added methods to graphic.Bitmap and BitmapCanvas classes to better support wxBimtap, wxImage and PIL updated webserver sample to run CGIs on Linux and Mac OS X; CGIs are no longer run as user 'nobody' added font utility functions to font.py module made resource argument optional for CustomDialog class added strings to dialog resources switched RadioGroup vertical and horizontal orientation added childWindow function to simplify loading windows added file_upload to webserver sample fixed label attribute in StaticBox Thomas Heller refactored the resourceEditor widget resizing runtime Property Editor fixes added jabberChat sample added code to disconnect wxEVT_KILL_FOCUS in WidgetDict to avoid hard crashes with wxPython 2.3.3 updated webserver.py with IE POST fixes and other Python lib changes added Robin Dunn's stattext.py and replacement StaticText component to the resourceEditor appcomponents fixed Scriptlets run code in textEditor to match codeEditor added dialog docs updated shell docs appled Tim Peters suggestions for sorting in flatfileDatabase for a roughly 5x sort time improvement added auto-rotation of images in pictureViewer and slideshow using EXIF.py and rotate90 method of the Bitmap class added EXIF.py by Gene Cash fixed typos in insertDialog.py scriptlet and scriptlet execution in textEditor fixed wxTAB_TRAVERSAL in panel switched back to a plain list in flatfileDatabase.py fixed missing webbrowser import in companies sample From jeremy@alum.mit.edu Mon Oct 28 18:33:47 2002 From: jeremy@alum.mit.edu (Jeremy Hylton) Date: Mon, 28 Oct 2002 13:33:47 -0500 Subject: ZODB 3.1 / ZEO 2.0 released Message-ID: I am pleased to announce the final releases of ZODB3 3.1 and ZEO 2.0! ZODB is an object database for Python that provides transactional persistence while requiring few, if any, changes to application logic. ZEO is a client-server storage system for ZODB. The ZEO package is released on its own and as part of ZODB3. The separate release is for Zope users, who already have ZODB. Source releases are available from: http://www.zope.org/Products/StandaloneZODB http://www.zope.org/Products/ZEO http://sourceforge.net/projects/zodb The ZODB3 release requires a C compiler, while the ZEO2 release is pure Python. Windows users can download a binary installer for Python 2.2.2 from: http://www.zope.org/Products/StandaloneZODB The components you get with the ZODB3 release are: - Core ZODB, including the persistence machinery - Standard storages such as FileStorage - Supporting modules such as ExtensionClass - The persistent BTrees modules - ZEO (versions 1 and 2) - Experimental Berkeley storages - Updated documentation The final release contains roughly the same version of ZODB that is available with Zope 2.6. The two releases are not directly coordinated, so there may be some minor differences. Many people have contributed to ZODB3. Special thanks to Toby Dickenson for the new ZODB Connection cache. Many people at Zope Corp. have contributed code and tested unreleased versions. There was only one change since the last beta release. A problem with unexpected exceptions in conflict resolution was fixed to allow transactions to fail more gracefully. (This change actually restored the pre-ZODB3 behavior.) Jeremy From rtp1@geosci.uchicago.edu Mon Oct 28 22:38:42 2002 From: rtp1@geosci.uchicago.edu (R. T. Pierrehumbert) Date: Mon, 28 Oct 2002 16:38:42 -0600 Subject: S.I.A.M. minisymposium on python and scientific simulation Message-ID: Mini-Symposium on Scientific Simulation in Python I am organizing a mini-symposium at the March 27-31 S.I.A.M. Dynamical Systems meeting (Snowbird) on the subject of use of Python for steering scientific simulations and for exploration of nonlinear dynamical systems. I will present an overview of the experience at our NSF-ITR center on use of Python in climate modelling, and have lined up additional speakers who are in the trenches on Python and simulation. I have slots available for up to four additional speakers, and am interested in hearing from others who are using Python in scientific simulations. If you think you might be interested, please send email describing your python-related work to me at rtp1@geosci.uchicago.edu. The abstract deadline is Nov. 26, so time is of the essence. For information on the U. of Chicago Python ITR, see geosci.uchicago.edu/~rtp1/itr Regards, Raymond T. Pierrehumbert Professor in Geophysical Sciences The University of Chicago From djc@object-craft.com.au Mon Oct 28 23:48:11 2002 From: djc@object-craft.com.au (Dave Cole) Date: 29 Oct 2002 10:48:11 +1100 Subject: Sybase module 0.35pre3 released Message-ID: WHAT IS IT: The Sybase module provides a Python interface to the Sybase relational database system. It supports all of the Python Database API, version 2.0 with extensions. This release corrects a mistake I made in packaging the 0.35pre2 release. http://www.object-craft.com.au/projects/sybase/ CHANGES SINCE 0.35pre2: * Fixed the MANIFEST.in file to include freetds.h and sybasect.h. -- http://www.object-craft.com.au From edream@tds.net Wed Oct 30 13:58:13 2002 From: edream@tds.net (Edward K. Ream) Date: Wed, 30 Oct 2002 13:58:13 GMT Subject: ANN: Leo 3.8 outlining editor Message-ID: leo.py 3.8 is now available at: http://sourceforge.net/projects/leo/ leo.py requires Python 2.1 or above and tcl/tk 8.3 or above. Major improvements have been made to Leo as the result of user requests. The highlights of 3.8: ---------------------- - New @rawfile and @silentfile trees complement @file trees. @rawfile and @silentfile trees create derived files without using sections. @rawfile files contain only those sentinels needed to automatically untangle them. @silentfile trees contain no sentinels at all. - New @raw and @end_raw directives allow unformatted code within @file trees. - Much better support for CWEB. You may organize .w files using noweb! - The @comment and @language directives may now apply simultaneously. - Leo can now read, remember and write lines, under control of the new stylesheet option. - The new output_newline option specifies the line endings used when writing files. - The new output_initial_comment option specifies the text to appear in an @comment sentinel at the start of each derived file. - New commands in the help menu make it much easier to change configuration options. - Dozens of minor improvements and bug fixes. What is Leo? ------------ - A programmer's editor, an outlining editor and a flexible browser. - A literate programming tool, compatible with noweb and CWEB. - A data organizer and project manager. Leo provides multiple views of projects within a single outline. - Fully scriptable using Python. Leo saves its files in XML format. - Portable. leo.py is 100% pure Python. - Open Software, distributed under the Python License. Links: ------ Leo: http://personalpages.tds.net/~edream/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://sourceforge.net/cvs/?group_id=3458 -------------------------------------------------------------------- Edward K. Ream email: edream@tds.net Leo: Literate Editor with Outlines Leo: http://personalpages.tds.net/~edream/front.html -------------------------------------------------------------------- From barry@python.org Wed Oct 30 16:57:40 2002 From: barry@python.org (Barry A. Warsaw) Date: Wed, 30 Oct 2002 11:57:40 -0500 Subject: List traffic problems Message-ID: Many people have noticed that traffic on this list has been uncharacteristically light for the last few weeks. We traced the problem to the news->mail gateway on python.org, however the problem appeared to be that the news server that python-list gateways /from/ was giving us just a trickle of messages per day. We've now got word from our ISP that their upstream newsfeed supposedly "forgot" about us -- they actually have no record that they were supposed to be giving our ISP a comp.lang.python feed. Hmm. In any event they say that our feed should be restored in 24-36 hours. Whether that means we'll get a flood of back postings or not isn't clear. Please keep an eye on the list traffic and see if things get back to normal over the next several days. If by next week your normal deluge of python-list isn't restored, let me know and I'll re-open the trouble ticket. -Barry From petrucha@isnet.sk Thu Oct 31 14:31:50 2002 From: petrucha@isnet.sk (Stefan Petrucha) Date: Thu, 31 Oct 2002 15:31:50 +0100 Subject: fmPython - 0.2a Message-ID: The fmPython plug-in edition 0.2alpha for FrameMaker 6.0 is out. New features: interfaces Python 2.2.x (Win), 2.2.1 (Mac), text formating, import, printing, open/save docs, ... For more informations and downloads please visit the page http://www.isnet.sk/petrucha/fmpython.html Best regards Stefan Petrucha -- http://www.isnet.sk/petrucha From webmaster@python.org Thu Oct 31 19:21:56 2002 From: webmaster@python.org (webmaster@python.org) Date: 31 Oct 2002 14:21:56 -0500 Subject: www.python.org wants YOU! Message-ID: The team that administers www.python.org is looking for additional maintainers, both to keep the text updated and to create automated solutions that require less human interaction. If you're interested in helping, please send e-mail to webmaster@python.org. Please specify what you'd like to help with, how many hours per week you're available, and list a couple of community references if you're not active on one of the main Python mailing lists or comp.lang.python. Please be patient if we take a while to respond -- after all, the reason we're asking for help is that we're behind! -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ Project Vote Smart: http://www.vote-smart.org/