From riemer@lincvs.org Thu May 1 08:18:06 2003 From: riemer@lincvs.org (Tilo Riemer) Date: Thu, 1 May 2003 09:18:06 +0200 Subject: ANN: apm.py 0.3.0 Message-ID: Hello, apm.py 0.3.0 is out. DESCRIPTION: apm.py is a python module providing of an uniform and platform independent interface to APM. At the moment it implements only battery relevant functions. WHATS NEW: 1. Support for FreeBSD 4 (tested with FreeBSD 4.8) and OpenBSD (untested) 2. Fix in NetBSD where the charging state could be wrong. HOMEPAGE: http://www.iapp.de/~riemer/projects/apm.py/ Best regards, Tilo From jmiller@stsci.edu Sat May 3 03:48:07 2003 From: jmiller@stsci.edu (Todd Miller) Date: Fri, 02 May 2003 22:48:07 -0400 Subject: ANN: numarray-0.5 released Message-ID: Release Notes for numarray-0.5 Numarray is an array processing package designed to efficiently manipulate large multi-dimensional arrays. Numarray is modelled after Numeric and features c-code generated from python template scripts, the capacity to operate directly on arrays in files, and improved type promotions. I. ENHANCEMENTS 1. Universal Function Overhead Reduction The constant time overhead for most universal functions has been reduced by a factor of 10-20. This results in better performance for small arrays. 2. FFT mode and IRAF boundary modes added to Convolve.convolve2d There's now an FFT switch for the 2d convolution function in the Convolve package; when set to 1, convolution is performed via the FFT rather than using the naiive algorithm. In addition, convolve2d now supports boundary modes which are identical to IRAF's convolution function. 3. Numarray is now supported by f2py Numarray numerical arrays can now be used with f2py wrappers for Fortran code. To compile f2py wrapped extensions for numarray, use the switch -DNUMARRAY on the f2py command line. Support is currently restricted to f77 and numerical arrays. II. BUGS FIXED 650926 exotic type coercions 653424 Convolve.boxcar boundary bug 653429 python setup.py build 654669 array index by list 655942 logical operator reductions 657058 inverse real fft bug 677796 byteswap not working 709956 error summing over large boolean arrays 710480 MLab.median makes unnecessary msort call 714537 conjugate function changes its argument See http://sourceforge.net/tracker/?atid=450446&group_id=1369&func=browse for more details. III. CAUTIONS 1. Due to some module renamings, numarray-0.5 will not install correctly on top of an existing numarray installation. Before installing numarray-0.5 remove your old version of numarray. 2. Due to reorganization of the C-API, numarray extensions must be recompiled. 3. For numarray-0.5 and up, the byteswap related methods have been redefined: a.byteswap() swaps but leaves byteorder alone a.togglebyteorder() Does "big" <-> "little" a._byteswap() now an alias for byteswap a._togglebyteorder() deleted 4. round() has been deprecated. Use around() instead. WHERE ----------- Numarray-0.5 windows executable installers, source code, and manual is here: http://sourceforge.net/project/showfiles.php?group_id=1369 Numarray is hosted by Source Forge in the same project which hosts Numeric: http://sourceforge.net/projects/numpy/ The web page for Numarray information is at: http://stsdas.stsci.edu/numarray/index.html Trackers for Numarray Bugs, Feature Requests, Support, and Patches are at the Source Forge project for NumPy at: http://sourceforge.net/tracker/?group_id=1369 REQUIREMENTS ------------------------------ numarray-0.5 requires Python 2.2.2 or greater. AUTHORS, LICENSE ------------------------------ Numarray was written by Perry Greenfield, Rick White, Todd Miller, JC Hsu, Paul Barrett, Phil Hodge at the Space Telescope Science Institute. Thanks go to Jochen Kupper of the University of North Carolina for his work on Numarray and for porting the Numarray manual to TeX format. Thanks also to Edward C. Jones, Francesc Alted, Paul Dubois, Eric Jones, Travis Oliphant, Pearu Peterson and everyone who has contributed with comments and feedback. Numarray is made available under a BSD-style License. See LICENSE.txt in the source distribution for details. -- Todd Miller jmiller@stsci.edu From goodger@python.org Sat May 3 17:04:03 2003 From: goodger@python.org (David Goodger) Date: Sat, 03 May 2003 12:04:03 -0400 Subject: PEP 1: PEP Purpose and Guidelines Message-ID: I am posting this meta-PEP to inform the Python community of a significant recent addition. Formerly, there was no provision for the BDFL to initiate a PEP review, even if the PEP was sure to be accepted; taken literally, the PEP text required the PEP author to request a review. Such a provision has been added with the following text: For a PEP that is pre-determined to be acceptable (e.g., it is an obvious win as-is and/or its implementation has already been checked in) the BDFL may also initiate a PEP review, first notifying the PEP author(s) and giving them a chance to make revisions. A description of the PEP acceptance criteria was also added immediately following the above text. The processed PEP can be found at . ====================================================================== PEP: 1 Title: PEP Purpose and Guidelines Version: $Revision: 1.42 $ Last-Modified: $Date: 2003/05/03 16:01:32 $ Author: Barry A. Warsaw, Jeremy Hylton, David Goodger Status: Active Type: Informational Content-Type: text/x-rst Created: 13-Jun-2000 Post-History: 21-Mar-2001, 29-Jul-2002, 03-May-2003 What is a PEP? ============== PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python. The PEP should provide a concise technical specification of the feature and a rationale for the feature. We intend PEPs to be the primary mechanisms for proposing new features, for collecting community input on an issue, and for documenting the design decisions that have gone into Python. The PEP author is responsible for building consensus within the community and documenting dissenting opinions. Because the PEPs are maintained as text files under CVS control, their revision history is the historical record of the feature proposal [1]_. Kinds of PEPs ============= There are two kinds of PEPs. A Standards Track PEP describes a new feature or implementation for Python. An Informational PEP describes a Python design issue, or provides general guidelines or information to the Python community, but does not propose a new feature. Informational PEPs do not necessarily represent a Python community consensus or recommendation, so users and implementors are free to ignore Informational PEPs or follow their advice. PEP Work Flow ============= The PEP editors assign PEP numbers and change their status. The current PEP editors are David Goodger and Barry Warsaw. Please send all PEP-related email to . The PEP process begins with a new idea for Python. It is highly recommended that a single PEP contain a single key proposal or new idea. The more focussed the PEP, the more successfully it tends to be. The PEP editor reserves the right to reject PEP proposals if they appear too unfocussed or too broad. If in doubt, split your PEP into several well-focussed ones. Each PEP must have a champion -- someone who writes the PEP using the style and format described below, shepherds the discussions in the appropriate forums, and attempts to build community consensus around the idea. The PEP champion (a.k.a. Author) should first attempt to ascertain whether the idea is PEP-able. Small enhancements or patches often don't need a PEP and can be injected into the Python development work flow with a patch submission to the SourceForge `patch manager`_ or `feature request tracker`_. The PEP champion then emails the PEP editor with a proposed title and a rough, but fleshed out, draft of the PEP. This draft must be written in PEP style as described below. If the PEP editor approves, he will assign the PEP a number, label it as Standards Track or Informational, give it status "Draft", and create and check-in the initial draft of the PEP. The PEP editor will not unreasonably deny a PEP. Reasons for denying PEP status include duplication of effort, being technically unsound, not providing proper motivation or addressing backwards compatibility, or not in keeping with the Python philosophy. The BDFL (Benevolent Dictator for Life, Guido van Rossum) can be consulted during the approval phase, and is the final arbitrator of the draft's PEP-ability. If a pre-PEP is rejected, the author may elect to take the pre-PEP to the comp.lang.python newsgroup (a.k.a. python-list@python.org mailing list) to help flesh it out, gain feedback and consensus from the community at large, and improve the PEP for re-submission. The author of the PEP is then responsible for posting the PEP to the community forums, and marshaling community support for it. As updates are necessary, the PEP author can check in new versions if they have CVS commit permissions, or can email new PEP versions to the PEP editor for committing. Standards Track PEPs consists of two parts, a design document and a reference implementation. The PEP should be reviewed and accepted before a reference implementation is begun, unless a reference implementation will aid people in studying the PEP. Standards Track PEPs must include an implementation -- in the form of code, patch, or URL to same -- before it can be considered Final. PEP authors are responsible for collecting community feedback on a PEP before submitting it for review. A PEP that has not been discussed on python-list@python.org and/or python-dev@python.org will not be accepted. However, wherever possible, long open-ended discussions on public mailing lists should be avoided. Strategies to keep the discussions efficient include, setting up a separate SIG mailing list for the topic, having the PEP author accept private comments in the early design phases, etc. PEP authors should use their discretion here. Once the authors have completed a PEP, they must inform the PEP editor that it is ready for review. PEPs are reviewed by the BDFL and his chosen consultants, who may accept or reject a PEP or send it back to the author(s) for revision. For a PEP that is pre-determined to be acceptable (e.g., it is an obvious win as-is and/or its implementation has already been checked in) the BDFL may also initiate a PEP review, first notifying the PEP author(s) and giving them a chance to make revisions. For a PEP to be accepted it must meet certain minimum criteria. It must be a clear and complete description of the proposed enhancement. The enhancement must represent a net improvement. The proposed implementation, if applicable, must be solid and must not complicate the interpreter unduly. Finally, a proposed enhancement must be "pythonic" in order to be accepted by the BDFL. (However, "pythonic" is an imprecise term; it may be defined as whatever is acceptable to the BDFL. This logic is intentionally circular.) See PEP 2 [2]_ for standard library module acceptance criteria. Once a PEP has been accepted, the reference implementation must be completed. When the reference implementation is complete and accepted by the BDFL, the status will be changed to "Final". A PEP can also be assigned status "Deferred". The PEP author or editor can assign the PEP this status when no progress is being made on the PEP. Once a PEP is deferred, the PEP editor can re-assign it to draft status. A PEP can also be "Rejected". Perhaps after all is said and done it was not a good idea. It is still important to have a record of this fact. PEPs can also be replaced by a different PEP, rendering the original obsolete. This is intended for Informational PEPs, where version 2 of an API can replace version 1. PEP work flow is as follows:: Draft -> Accepted -> Final -> Replaced ^ +----> Rejected v Deferred Some Informational PEPs may also have a status of "Active" if they are never meant to be completed. E.g. PEP 1 (this PEP). What belongs in a successful PEP? ================================= Each PEP should have the following parts: 1. Preamble -- RFC 822 style headers containing meta-data about the PEP, including the PEP number, a short descriptive title (limited to a maximum of 44 characters), the names, and optionally the contact info for each author, etc. 2. Abstract -- a short (~200 word) description of the technical issue being addressed. 3. Copyright/public domain -- Each PEP must either be explicitly labelled as placed in the public domain (see this PEP as an example) or licensed under the `Open Publication License`_. 4. Specification -- The technical specification should describe the syntax and semantics of any new language feature. The specification should be detailed enough to allow competing, interoperable implementations for any of the current Python platforms (CPython, Jython, Python .NET). 5. Motivation -- The motivation is critical for PEPs that want to change the Python language. It should clearly explain why the existing language specification is inadequate to address the problem that the PEP solves. PEP submissions without sufficient motivation may be rejected outright. 6. Rationale -- The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work, e.g. how the feature is supported in other languages. The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion. 7. Backwards Compatibility -- All PEPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The PEP must explain how the author proposes to deal with these incompatibilities. PEP submissions without a sufficient backwards compatibility treatise may be rejected outright. 8. Reference Implementation -- The reference implementation must be completed before any PEP is given status "Final", but it need not be completed before the PEP is accepted. It is better to finish the specification and rationale first and reach consensus on it before writing code. The final implementation must include test code and documentation appropriate for either the Python language reference or the standard library reference. PEP Formats and Templates ========================= There are two PEP formats available to authors: plaintext and reStructuredText_. Plaintext PEPs are written in plain ASCII text, contain minimal structural markup, and should adhere to a rigid style. PEP 9 contains a boilerplate template [3]_ you can use to get started writing your plaintext PEP. ReStructuredText_ PEPs allow for rich markup that is still quite easy to read, but results in much better-looking and more functional HTML. PEP 12 contains a boilerplate template [4]_ for use with reStructuredText PEPs. There is a Python script that converts both styles of PEPs to HTML for viewing on the web [5]_. Parsing and conversion of plaintext PEPs is self-contained within the script. reStructuredText PEPs are parsed and converted by Docutils_ code called from the script. PEP Header Preamble =================== Each PEP must begin with an RFC 822 style header preamble. The headers must appear in the following order. Headers marked with "*" are optional and are described below. All other headers are required. :: PEP: Title: Version: Last-Modified: Author: * Discussions-To: Status: Type: * Content-Type: * Requires: Created: * Python-Version: Post-History: * Replaces: * Replaced-By: The Author header lists the names, and optionally the email addresses of all the authors/owners of the PEP. The format of the Author header value must be Random J. User if the email address is included, and just Random J. User if the address is not given. For historical reasons the format "address@dom.ain (Random J. User)" may appear in a PEP, however new PEPs must use the mandated format above, and it is acceptable to change to this format when PEPs are updated. If there are multiple authors, each should be on a separate line following RFC 2822 continuation line conventions. Note that personal email addresses in PEPs will be obscured as a defense against spam harvesters. While a PEP is in private discussions (usually during the initial Draft phase), a Discussions-To header will indicate the mailing list or URL where the PEP is being discussed. No Discussions-To header is necessary if the PEP is being discussed privately with the author, or on the python-list or python-dev email mailing lists. Note that email addresses in the Discussions-To header will not be obscured. The Type header specifies the type of PEP: Informational or Standards Track. The format of a PEP is specified with a Content-Type header. The acceptable values are "text/plain" for plaintext PEPs (see PEP 9 [3]_) and "text/x-rst" for reStructuredText PEPs (see PEP 12 [4]_). Plaintext ("text/plain") is the default if no Content-Type header is present. The Created header records the date that the PEP was assigned a number, while Post-History is used to record the dates of when new versions of the PEP are posted to python-list and/or python-dev. Both headers should be in dd-mmm-yyyy format, e.g. 14-Aug-2001. Standards Track PEPs must have a Python-Version header which indicates the version of Python that the feature will be released with. Informational PEPs do not need a Python-Version header. PEPs may have a Requires header, indicating the PEP numbers that this PEP depends on. PEPs may also have a Replaced-By header indicating that a PEP has been rendered obsolete by a later document; the value is the number of the PEP that replaces the current document. The newer PEP must have a Replaces header containing the number of the PEP that it rendered obsolete. Reporting PEP Bugs, or Submitting PEP Updates ============================================= How you report a bug, or submit a PEP update depends on several factors, such as the maturity of the PEP, the preferences of the PEP author, and the nature of your comments. For the early draft stages of the PEP, it's probably best to send your comments and changes directly to the PEP author. For more mature, or finished PEPs you may want to submit corrections to the SourceForge `bug manager`_ or better yet, the SourceForge `patch manager`_ so that your changes don't get lost. If the PEP author is a SF developer, assign the bug/patch to him, otherwise assign it to the PEP editor. When in doubt about where to send your changes, please check first with the PEP author and/or PEP editor. PEP authors who are also SF committers, can update the PEPs themselves by using "cvs commit" to commit their changes. Remember to also push the formatted PEP text out to the web by doing the following:: % python pep2html.py -i NUM where NUM is the number of the PEP you want to push out. See :: % python pep2html.py --help for details. Transferring PEP Ownership ========================== It occasionally becomes necessary to transfer ownership of PEPs to a new champion. In general, we'd like to retain the original author as a co-author of the transferred PEP, but that's really up to the original author. A good reason to transfer ownership is because the original author no longer has the time or interest in updating it or following through with the PEP process, or has fallen off the face of the 'net (i.e. is unreachable or not responding to email). A bad reason to transfer ownership is because you don't agree with the direction of the PEP. We try to build consensus around a PEP, but if that's not possible, you can always submit a competing PEP. If you are interested in assuming ownership of a PEP, send a message asking to take over, addressed to both the original author and the PEP editor . If the original author doesn't respond to email in a timely manner, the PEP editor will make a unilateral decision (it's not like such decisions can't be reversed :). References and Footnotes ======================== .. [1] This historical record is available by the normal CVS commands for retrieving older revisions. For those without direct access to the CVS tree, you can browse the current and past PEP revisions via the SourceForge web site at http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/nondist/peps/ .. [2] PEP 2, Procedure for Adding New Modules, Faassen (http://www.python.org/peps/pep-0002.html) .. [3] PEP 9, Sample Plaintext PEP Template, Warsaw (http://www.python.org/peps/pep-0009.html) .. [4] PEP 12, Sample reStructuredText PEP Template, Goodger, Warsaw (http://www.python.org/peps/pep-0012.html) .. [5] The script referred to here is pep2html.py, which lives in the same directory in the CVS tree as the PEPs themselves. Try ``pep2html.py --help`` for details. The URL for viewing PEPs on the web is http://www.python.org/peps/. .. _patch manager: http://sourceforge.net/tracker/?group_id=5470&atid=305470 .. _feature request tracker: http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse .. _Open Publication License: http://www.opencontent.org/openpub/ .. _reStructuredText: http://docutils.sourceforge.net/rst.html .. _Docutils: http://docutils.sourceforge.net/ .. _bug manager: http://sourceforge.net/tracker/?group_id=5470&atid=105470 Copyright ========= This document has been placed in the public domain. -- David Goodger Python Enhancement Proposal (PEP) Editor (Please cc: all PEP correspondence to .) From icon@linux.duke.edu Sun May 4 00:22:42 2003 From: icon@linux.duke.edu (Konstantin Riabitsev) Date: Sat, 03 May 2003 19:22:42 -0400 Subject: announce: Epylog-0.9.3 Message-ID: Epylog Log Analyzer =================== What is it: ----------- Epylog is a new log notifier and parser which runs periodically, looks at your logs, processes some of the entries in order to present them in a more comprehensive format, and then mails you the output. It is written specifically for large network clusters where a lot of machines (around 50 and upwards) log to the same loghost using syslog or syslog-ng. The epylog engine should work on most unix systems running Python-2.2 and above, alhough currently the processing modules are only written to work with linux (and particularly Red Hat Linux series 7 and above). However, other unix and linux flavors should work fine, as long as they use standard non-ancient logging facilities and things like PAM. Features: --------- - Threaded for faster network lookups - Unwraps "last message repeated" lines - Mails reports in either html or plain text (or both) - Publishes reports to a file with optional notification via email. - Accepts --last hour/day/week/month command-line arguments - Handles modules written in both Python and other languages (though many "neat" features are not available to external modules) - External module API fully backwards-compatible with DULog Requirements: -------------- The parsing modules are currently only written for linux, so at least at the moment running it on other unixes would not be very efficient (it will still work as long as syslog is used, but many lines will be unparsed). Requires Python-2.2 or above and PyXML (libxml2-python). Works as-is for Red Hat 7.3, 8.0, and 9 (though see a caution on the site for 9), Yellowdog Linux 3.0. Where to get it: ---------------- http://linux.duke.edu/projects/epylog/ Best regards, -- Konstantin ("Icon") Riabitsev Duke Physics Systems Admin, RHCE www.duke.edu/~icon/pubkey.asc From oussoren@cistron.nl Sun May 4 21:24:56 2003 From: oussoren@cistron.nl (Ronald Oussoren) Date: Sun, 4 May 2003 22:24:56 +0200 Subject: ANN: PyObjC 0.9 Message-ID: PyObjC 0.9 is now available for download at http://pyobjc.sourceforge.net/ PyObjC is a bridge between Python and Objective-C. It allows full featured Cocoa applications to be written in pure Python. It is also easy to use other frameworks containing Objective-C class libraries from Python and to mix in Objective-C, C and C++ source. Python is a highly dynamic programming language with a shallow learning curve. It combines remarkable power with very clear syntax. The installer package includes a number of Project Builder templates for easily creating new Cocoa-Python projects. Version 0.9 also introduces support for sytax coloring of Python files in Project Builder. PyObjC also supports full introspection of Objective-C classes and direct invocation of Objective-C APIs from the interactive interpreter. PyObjC requires MacOS X 10.2 or later. PyObjC works both with the Apple provided Python installation in MacOS X 10.2 (and later) and with MacPython 2.3b1. Users of MacPython 2.3b1 can install PyObjC though the PackageManager application. PyObjC 0.9 includes many inprovements over earlier versions and users are strongly advised to upgrade. The installer package will automatically upgrade prior releases. PyObjC is released with an open source license. From ahaas@airmail.net Sun May 4 22:12:54 2003 From: ahaas@airmail.net (Art Haas) Date: Sun, 4 May 2003 16:12:54 -0500 Subject: [ANNOUNCE] Sixth release of PythonCAD now available Message-ID: I'd like to announce the sixth release of PythonCAD, a CAD package for open-source software users. As the name implies, PythonCAD is written entirely in Python. The goal of this project is to create a fully scriptable drafting program that will match and eventually exceed features found in commercial CAD software. PythonCAD is released under the GNU Public License (GPL). PythonCAD requires Python 2.2. The interface is GTK 2.0 based, and uses the PyGTK module for interfacing to GTK. The design of PythonCAD is built around the idea of separating the interface from the back end as much as possible. By doing this, it is hoped that both GNOME and KDE interfaces can be added to PythonCAD through usage of the appropriate Python module. Addition of other interfaces will depend on the availability of a Python module for that particular interface and developer interest and action. The sixth release at long last adds the ability to store text in a drawing. The text handling is in its earliest stages of development, but now it is there. There is a new Polyline entity available to use in a drawing now. A Polyline is essentially the same thing as a connected set of segments, with the segments joined at the endpoint of one to another. The ability to mirror objects around an arbitrarily angled construction line has been added in this release as well. This release also has a large number of internal code cleanups. A large amount of code is being moved from the interface specific directory to the general directory. Doing so reduces the potential of code duplication in various interfaces. Another improvement in this release is a reworking of the code used when building or modifying entities through the menu choices. A new set of object classes has been added that are specific for the operation to be performed, and the use of these new classes makes the code to execute the operation simpler to add and understand. The usual amount of code cleanups, bug fixes, tweaks, and documentation additions have been done in this new release as well. Unfortunately there is still no mailing list for PythonCAD just yet. I want to find a site that will accept mail from anyone, not just list subscribers, filter the mail to remove the spam, then send the mail out to the subscribers. Lists on Sourceforge and the GNU Subversions site allow more spam than I want, so I am still looking for options. I cannot stress highly enough how I want the list to be free from junk mail that unfortunately ends up clogging so many mailing lists. So, I am still looking for recommendations about sites that can host the mailing list. Visit the PythonCAD web site for more information about what PythonCAD does and aims to be: http://www.pythoncad.org Come and join me in developing PythonCAD into a world class drafting program! Art Haas -- To announce that there must be no criticism of the President, or that we are to stand by the President, right or wrong, is not only unpatriotic and servile, but is morally treasonable to the American public. -- Theodore Roosevelt, Kansas City Star, 1918 From mwh@python.net Mon May 5 18:13:20 2003 From: mwh@python.net (Michael Hudson) Date: 05 May 2003 18:13:20 +0100 Subject: EuroPython 2003: Call For Talks Extended Message-ID: The EuroPython Conference 2003 (EPC2003) returns to Belgium this June, and the conference organizers are now accepting proposals for presentations and tutorials. We expect this year to be even more successful, and we're not just talking about the Chimay. We are looking for participation in the following conference tracks: Python Frameworks, Python Language, Python in Business, Python in Science and Industry, and Zope. Track descriptions are available at . The deadline for submissions is extended till Monday, May 12. If you haven't done so or are still hesitating, you can still propose a 30 minute talk, a 45 minute talk, or a 90- minute tutorial. To propose a talk or tutorial, please visit the Talk Submission page at . Starting now, if you don't have the time to prepare a full-length talk, we are also seeking people who want to give a 'Lightning Talk': a short (5 minute), focused talk about any Python- or Zope-related subject you fancy! For more information about the conference tracks, please contact the track chairpersons listed at . For general questions about the conference, please visit the conference website at . About EuroPython Conference 2003 EuroPython Conference 2003 is the premiere venue for meeting Python and Zope developers from Europe and beyond. As one of the first community-organized Python and Zope conferences, the EuroPython Conference delivers the atmosphere and information developers want. The conference will be held June 25-27, 2003 in Charleroi, Belgium. Information is available at the EuroPython website at . For more information, contact . From tundra@tundraware.com Mon May 5 23:50:07 2003 From: tundra@tundraware.com (Tim Daneliuk) Date: 05 May 2003 22:50:07 GMT Subject: ANN: nohtml 1.10 Released Message-ID: nohtml 1.10 is released and available at: http://www.tundraware.com/Software/nohtml/ This program removes HTML attachments in email. It is written in Python and implemented as a filter which uses stdin and stdout. The program is designed primarily to be used in email alias definitions. By piping a given user's email through 'nohtml.py' first, only the textual portion of the message will actually be delivered. This is especially useful if you run mailing lists and want to stop HTML from ever reaching them. ---------------------------------------------------------------------------- Tim Daneliuk tundra@tundraware.com PGP Key: http://www.tundraware.com/PGP/TundraWare.PGP.Keys.txt From paul@prescod.net Tue May 6 03:50:25 2003 From: paul@prescod.net (Paul Prescod) Date: Tue, 06 May 2003 03:50:25 +0100 Subject: Meeting Reminder: Zope/Plone Futures Message-ID: Zope and Plone Futures Fresh out of a Zope and Plone coding sprint, Zope/Plone guru and developer Andy McKay will talk about "what's new" in Zope and Plone and then describe what is upcoming. You can't get more up-to-date information than this! David Ascher and/or Trent Mick will arrange for setup of the meeting. Tuesday April 1, 2003 7:00 PM ActiveState, 580 Granville St. From michels@linmpi.mpg.de Wed May 7 08:51:39 2003 From: michels@linmpi.mpg.de (Michels) Date: Wed, 07 May 2003 09:51:39 +0200 Subject: [ANN] Data Plotting Library DISLIN 8.1 Message-ID: I am pleased to announce version 8.1 of the data plotting software DISLIN. DISLIN is a high-level and easy to use plotting library for displaying data as curves, bar graphs, pie charts, 3D-colour plots, surfaces, contours and maps. Several output formats are supported such as X11, VGA, PostScript, PDF, CGM, WMF, HPGL, TIFF, PNG, BMP and SVG. The software is available for several C, Fortran 77 and Fortran 90 compilers. Plotting extensions for the interpreting languages Perl, Python and Java are also supported for the most operating systems. DISLIN distributions and manuals in PDF, PostScript and HTML format are available from the DISLIN Home Page http://www.dislin.de and via FTP from the server ftp://ftp.gwdg.de/pub/grafik/dislin ------------------- Helmut Michels Max-Planck-Institut fuer Aeronomie Phone: +49 5556 979-334 Max-Planck-Str. 2 Fax : +49 5556 979-240 D-37191 Katlenburg-Lindau Mail : michels@linmpi.mpg.de From info@pythonware.com Wed May 7 12:27:02 2003 From: info@pythonware.com (PythonWare) Date: Wed, 7 May 2003 13:27:02 +0200 Subject: ANN: Python Imaging Library 1.1.4 beta 2 Message-ID: PIL 1.1.4 beta 2 is now available from: http://www.pythonware.com/products/pil#pil114 or http://effbot.org/downloads#pil This release is available in source form (look for Imaging tarballs), and as prebuilt installers for Python 2.1, 2.2 and 2.3 (beta 1) on Windows (and this time, all three installers include Tk support!) We expect to release the final version (without any changes to the code) within a week. A list of changes can be found here... http://effbot.org/zone/pil-changes-114.htm ...and a draft handbook can be found here: http://effbot.org/books/imagingbook/ enjoy, the pil team at secret labs ab "Secret Labs AB -- makers of fine pythonware since 1997" From jdahlin@async.com.br Wed May 7 23:31:36 2003 From: jdahlin@async.com.br (Johan Dahlin) Date: 07 May 2003 19:31:36 -0300 Subject: ANNOUNCE: Released IndexedCatalog 0.5.0 Message-ID: ANNOUNCE: Released IndexedCatalog 0.5.0 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/date) and=20 providing a simple query language. http://www.async.com.br/projects/IndexedCatalog/ * Changes: Support for subclassed catalogs Added a new wrapper around ZODB, Shelf, that simplifies database connections. Improved list queries slightly A new tool: dumper that exports and imports data Unicode index support Should work with ZODB4=20 Support for lazy_numbers, when float convert=20 to integer and vice versa Thanks a lot to Christian Reis for testing, bug fixing and helping with more or less everything and thank to Nicholas Henke for testing and optimization. A blurb about IndexedCatalog follows. --- blurb ------------------------------------------------------------- * Overview IndexedCatalog is an extension to the Zope Object Database (ZODB) developed at Async Open Source that provides indexing and allows=20 queries for objects based on attributes. This is accomplished=20 by indexing all fields by type (string/integer/float) and=20 by implementing a query language. IndexedCatalog is licensed under the Lesser GNU Public License (LGPL). * Features=20 - Provides a Catalog class that stores objects and offers a query interface. - Provides Indexes for Strings, Floats, Integers, Dates and Instances. - Requires very little change to objects for catalogs and indexes to work: basically inherit from IndexedCatalog.IndexedObject, add=20 some special attributes to the Classes, and use catalog.insert()=20 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 minimal effort to install. * Feedback We really would appreciate feedback on a few things: - The efficiency of the indexing and query algorithms,=20 especially sub-string matching. - The new improved query language - All comments are appreciated; don't hesitate to post your opinion. * Download You can download IndexedCatalog from http://www.async.com.br/projects/IndexedCatalog/ =20 * Dependencies Python 2.1.2 or higher or Python 2.2.2 or higher. (Python CVS/2.3 untested) ZODB 1.0.x and 3.x are known to work. ZODB 4 alpha 1 should work, but it's not very well tested. eGenix mx Extensions: mx.DateTime and mx.TextTools. 2.0.2 or later is required * 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=3DIndexedCatalog * 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=E3o Carlos, SP, Brazil, and online at http://www.async.com.br/ --=20 Johan Dahlin Async Open Source From richard@commonground.com.au Thu May 8 08:21:34 2003 From: richard@commonground.com.au (Richard Jones) Date: Thu, 8 May 2003 17:21:34 +1000 Subject: SC-Track Roundup 0.5.7 - an issue tracking system Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ================================================= SC-Track Roundup 0.5.7 - an issue tracking system ================================================= This is a bugfix release for version 0.5.x - if you're upgrading from before 0.5, you *must* read doc/upgrading.txt! Unfortunately, the Zope frontend for Roundup is currently broken. If you'd like to volunteer to fix it, let me know. Roundup requires python 2.1.3 or later for correct operation. Users of the sqlite backend are encouraged to upgrade sqlite to version 2.7.3. We've had a good crack at bugs (thanks to all who contributed!): - - fixed Interval maths (sf bug 665357) - - fixed sqlite rollback/caching bug (sf bug 689383) - - fixed rdbms table update detection logic (sf bug 703297) - - fixed detection of bad date specs (sf bug 691439) - - required String properties not being flagged (thanks Ajit George) - - only look for CSV files when importing (thanks Dan Grassi) - - can now unset values in CSV editing (sf bug 704788) - - fixed rdbms email address lookup (case insensitivity) - - email file attachments added to issue files list (sf bug 711501) - - added socket timeout to attempt to prevent stuck processes (sf bug 665487) - - email registered users shouldn't be able to log in (sf bug 714673) - - handle missing addresses on users (sf bug 724537) 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). -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (Darwin) iD8DBQE+ugV/rGisBEHG6TARAoHUAJ9ShWFrmTP9/owXemuVr1fukTnh6ACfSA03 QQjDeQhOpcHomxyXlQLqn2Y= =w8bw -----END PGP SIGNATURE----- From drifty@bigfoot.com Thu May 8 06:14:23 2003 From: drifty@bigfoot.com (Brett C.) Date: 7 May 2003 22:14:23 -0700 Subject: python-dev Summary for 2003-04-01 through 2003-04-15 *and* 2003-04-16 through 2003-04-30 Message-ID: When I realized today I didn't mail out a copy of the python-dev Summary for the last half of April I felt like I had not done it for the first half of April. Sure enough, I had not. So I am just including both here. If I ever go two weeks without posting a new summary, feel free to send me an email asking where it's at. If I ever stop doing this I will announce it in my last summary. ------------------------------------- +++++++++++++++++++++++++++++++++++++++++++++++++++++ python-dev Summary for 2003-04-01 through 2003-04-15 +++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from April 1, 2003 through April 15, 2003. It is intended to inform the wider Python community of on-going developments on the list and to have an archived summary of each thread started on the list. To comment on anything mentioned here, just post to python-list@python.org or `comp.lang.python`_ with a subject line mentioning what you are discussing. All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on something. And if all of this really interests you then get involved and join `python-dev`_! This is the fifteenth summary written by Brett Cannon (Most summaries written by a single person, *ever* ). All summaries are archived at http://www.python.org/dev/summary/ . Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sf.net/rst.html . Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo =); you can safely ignore it, although I suggest learning reST; its simple and is accepted for `PEP markup`__. Also, because of the wonders of programs that like to reformat text, I cannot guarantee you will be able to run the text version of this summary through Docutils_ as-is unless it is from the original text file. __ http://www.python.org/peps/pep-0012.html .. _python-dev: http://www.python.org/dev/ .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. contents:: .. _last summary: http://www.python.org/dev/summary/2003-03-16_2003-03-31.html ====================== Summary Announcements ====================== So all three people who expressed an opinion about the new Quickies_ format liked the new one, so it stays. Do you guys actually like the links to the CVS in the Summaries? The various links I put in to every single file mentioned that does not have direct documentation is time-consuming. But if you find it useful it can stay. Please let me know whether you actually use it (this means if you don't tell me!). ========= `Boom`__ ========= __ http://mail.python.org/pipermail/python-dev/2003-April/034370.html Splinter threads: - `RE: [Python-checkins] python/dist/src/Modules gcmodule.c `__ Related threads: - `Garbage collecting closures `__ - `Algorithm for finalizing cycles `__ Do you want to know what dedication is? Thinking of Python code that will cause Python to crash during dental surgery. Well, Tim Peters is that dedicated and managed to come up with some code that crashed Python when it attempted to garbage-collect some objects. This begins the joy that is garbage collection and finalizer functions. Gather around, children, as we learn about how Python tries to keep you from having to worry about keeping track of your trash. When Python executes the garbage collector, it looks to see what objects are unreachable based on reference counts; when something has a reference count of 0 nothing is referencing it so it is just floating out in the middle of no where with no one giving a hoot about whether it is their or not (children: "Awww! Poor, lonely object!"). But some of these lonely objects have what we call a finalizer (children: "What's that?!?"; isn't it cute when children are still inquisitive? Good for you for still being inquisitive! Have to be supportive, you know). A finalizer is either an instance that has a __del__ object or an object that has something in its tp_del slot (children: ). Does anyone know why we have to take of these lonely objects that are somewhat special? (children: ) Well, since these objects have something that must be called before they are garbage-collected, we have to make sure they don't reference an object that is out there but people think is cared about when it is only an object with a finalizer and we don't care about their opinions; it might want to keep an object's reference count above 0 and thus not be collected (children: "Oh..."). What makes them especially difficult to handle is that some objects that don't look like finalizers lie and end up acting like they are by defining a __getattr__ method that does very rude things (children: "That's not nice!"). And since it is really hard to tell whether they are real finalizers or just act like one, we just let them be out there forever so that they don't make the great Interpreter have to deal with them (some rabble-rouser: "My dad says that there is no great Interpreter and that everything came from the Compiler and Linker when they got together and did something my dad won't tell me about. Something about the bits and the bees..."; rest of children: "Nu-uh! The Interpeter is real! We've seen it! It's all-powerful and knowing! Take it back, take it back!"). Luckily, though, it is only an issue with something old-timers call classic classes; things that started to decay away long, long ago(children: "Yay! No more cruft!") And thanks to the diligent work of some very important people, it has been dealt with (children: "Yay! Thank you important people!"). There is a lesson to be learned here children; do not put old things to pasture to early since you can make stubborn old people mad which is bad since they make up the majority of voters in America (children: "Yes, teacher!"; smart-ass in the back of the room: "How old are you, teacher?" ). Guido said that Python's cleanup model could be summed up as "things get destroyed when nothing refers to them at some arbitrary time after nothing refers to them." And the corollary is "always explicitly close your external resources." In other words, when nothing points to the object will get collected at *some* point, but not necessarily immediately. The corollary is just good programming practice; close your resources yourself instead of relying on finalizers to do it for you since there is no guarantee when that will happen. Tim Peters gave several suggestions in regards in how to make sure things get cleaned up; from registering cleanup code with sys.atexit() to keep a weakref in a module with a finalizer to be executed when the module is collected. ========= Quickies ========= `Distutils documentation amputated in 2.2 docs?`__ Splinter threads: - `How do I report a bug? `__ Greg Ewing that two sections from the Distutils docs disappeared between Python 1.6 and 2.2. Sections are still missing and will stay so until someone comes up with a patch to add in the missing sections. There was also a discussion on making it more obvious how to report a bug on SF_. __ http://mail.python.org/pipermail/python-dev/2003-April/034314.html .. _SF: .. _SourceForge: http://www.sf.net/ `PEP 269 once more.`__ Jonathan Riehl got his patch for implementing `PEP 269`_ ("Pgen Module for Python") but then uploaded a newer version that is better. __ http://mail.python.org/pipermail/python-dev/2003-April/034317.html .. _PEP 269: http://www.python.org/peps/pep-0269.html `Minor issue with PyErr_NormalizeException`__ It was discovered that PyErr_NormalizeException could dump core because it forgot to return on possible errors. It's been fixed and back-ported. __ http://mail.python.org/pipermail/python-dev/2003-April/034325.html `Capabilities (we already got one)`__ Splinter threads: - `Capabilities `__ - `Security challenge `__ The thread that refuses to die continued into this month. Nothing ground-breaking was said, though. Ben Laurie, though, did say he is working on a PEP_ so hopefully that will make this whole discussion clear. __ http://mail.python.org/pipermail/python-dev/2003-April/034323.html .. _PEP: http://www.python.org/peps/ `[PEP] += on return of function call result`__ Someone wanted to do ``log.setdefault(r, '') += "test %d\n" % t`` which does not work. But it was pointed out you can just do ``temp = log.setdefault(r, ''); temp += "test %d\n" % t``. __ http://mail.python.org/pipermail/python-dev/2003-April/034339.html `How to suppress instance __dict__?`__ This is only of interest to people who use `Boost.Python`_ (which I don't use so I am not going to summarize it; although if you use C++ you will want to look at Boost.Python). __ http://mail.python.org/pipermail/python-dev/2003-April/034319.html .. _Boost.Python: http://www.boost.org/libs/python/doc/ `Super and properties`__ Someone got bit by properties not working nicely with super(). Nathan Srebro subsequently posted a `link `__ to a his own version of super() which handles this problem. __ `fwd: Dan Sugalski on continuations and closures`__ Kevin Altis forwarded some posts by Dan Sugalski (the guy heading the Parrot_ project and who Guido will throw a pie at at OSCON 2004 =) about closures and continuations that he found at http://simon.incutio.com/archive/2003/04/03/#closuresAndContinuations . Very well-written and might clarify things for people if they care to know more about closures, continuations, and why Lisp folks claim they are so damn important. __ http://mail.python.org/pipermail/python-dev/2003-April/034368.html .. _Parrot: http://www.parrotcode.org/ `LONG_LONG`__ Python 2.3 renames the LONG_LONG definition from the C API to PY_LONG_LONG as it should have been renamed. Yes, this will break things, but it was incorrect to have not renamed it. If you need to keep compatibility with code before Python 2.3, just use the following code (contributed by Mark Hammond):: #if defined(PY_LONG_LONG) && !defined(LONG_LONG) #define LONG_LONG PY_LONG_LONG #endif __ http://mail.python.org/pipermail/python-dev/2003-April/034396.html `socket question`__ Someone asking why something didn't build under Solaris and subsequently being redirected to python-list@python.org . __ http://mail.python.org/pipermail/python-dev/2003-April/034399.html `PEP305 csv package: from csv import csv?`__ Why does one have to do ``from csv import csv``? Wouldn't it be more reasonable to just do some magic in __init__.py for the csv_ package to do this properly? Well, Skip Montanaro forwarded the question to cvs development list at csv@mail.mojam.com and said he probably will make the change in the near future. __ http://mail.python.org/pipermail/python-dev/2003-April/034409.html .. _csv: http://www.python.org/dev/doc/devel/lib/module-csv.html `SF file uploads work now`__ Yes, hell must have frozen over since you can now upload a file when you start a new patch or bug report on SourceForge_. __ http://mail.python.org/pipermail/python-dev/2003-April/034416.html `Unicode`__ Splinter threads: - `OT: Signal/noise ratio `__ Once again another question on python-dev that is not appropriate for the list. But this one spawned questions of whether the mailing list should be renamed (answer: no, since it is fairly well-known what python-dev is for) or go back to having the list being closed and requiring moderator approval for posts from people off the list (answer: no, because the amount of work was just too much of a pain and the amount of off-topic emails has not equated to the filtering work done previously). __ http://mail.python.org/pipermail/python-dev/2003-April/034453.html `Placement of os.fdopen functionality`__ It was suggested to make the fdopen method of the os_ module a class method of 'file'. That was determined to be YAGNI and thus won't happen. __ http://mail.python.org/pipermail/python-dev/2003-April/034380.html .. _os: http://www.python.org/dev/doc/devel/lib/os-newstreams.html `Adding item in front of a list`__ Tim Peters wonders how many people would be made upset if list.insert() supported a negative index argument. __ http://mail.python.org/pipermail/python-dev/2003-April/034518.html `Why is spawn*p* not available on Windows?`__ Shane Halloway might add one of the os.spawn*p*() functions to Windows. __ http://mail.python.org/pipermail/python-dev/2003-April/034473.html `tzset`__ time.tzset() is no longer on Windows because it is broken (and I will behave and not make a joke about how it would be just as broken as the OS or anything because I am unbiased). __ http://mail.python.org/pipermail/python-dev/2003-April/034480.html `backporting string changes to 2.2.3`__ Neal Norwitz updated docs and back-ported changes to the string_ module to bring it in sync with the actual string object. __ http://mail.python.org/pipermail/python-dev/2003-April/034489.html .. _string: http://www.python.org/dev/doc/devel/lib/module-string.html `List wisdom`__ http://www.python.org/cgi-bin/moinmoin/PythonDevWisdom is a wiki page created to contain the random nuggets of wisdom that come up on python-dev. __ http://mail.python.org/pipermail/python-dev/2003-April/034575.html `ValueErrors in range()`__ Fixed the error where range() returned ValueError when it should return TypeError. __ http://mail.python.org/pipermail/python-dev/2003-April/034617.html `_socket efficiencies ideas`__ Marcus Mendenhall wanted to get a patch applied that would allow you to create a socket that could skip a DNS lookup. He also wanted to add the ability to include a '' prefix IP addresses to make sure that DNS lookup was skipped. Various ways of trying to cut back on time wasted on unneeded DNS lookups was discussed but no solution was found acceptable. __ http://mail.python.org/pipermail/python-dev/2003-April/034403.html `tp_clear return value`__ tp_clear could stand to return void, but can't change because of backwards-compatibility. Will most likely end up documenting to ignore what is returned by what is put into tp_clear. __ http://mail.python.org/pipermail/python-dev/2003-April/034433.html `More socket questions`__ Someone suggested fixing something that has been solved in Python 2.3. __ http://mail.python.org/pipermail/python-dev/2003-April/034472.html `Embedded python on Win2K, import failures`__ Someone had errors embedding Windows. No real conclusion came out of it. __ http://mail.python.org/pipermail/python-dev/2003-April/034506.html `More int/long integration issues`__ Splintered threads: - `range() as iterator `__ Before Python 3.0 (when xrange() will disappear), there is a good chance that the idiom ``for x in range(): ...`` will be caught by the compiler and compiled into a lazy generator (probably a generator). __ http://mail.python.org/pipermail/python-dev/2003-April/034516.html `Changes to gettext.py for Python 2.3`__ Barry Warsaw suggested some changes to gettext_ but none of them seemed to catch on. But Barry has checkin rights and is one of apparently three people in the world who uses the module so they were added anyway. =) __ http://mail.python.org/pipermail/python-dev/2003-April/034511.html .. _gettext: http://www.python.org/dev/doc/devel/lib/module-gettext.html `Evil setattr hack`__ Someone discovered how to set attributes on built-in types. Guido checked in code to prevent it. __ http://mail.python.org/pipermail/python-dev/2003-April/034535.html `Using temp files and the Internet in regression tests`__ I asked if it was okay to use in regression tests temporary files (answer: yes it is and if you only need one use test.test_support.TESTFN) or sockets (answer: yes as long as test.test_support.is_resource_enabled("network") is True). It led to me being unofficially assigned the task of coming up with documentation for test_support and regrtest for both the library documentation and Lib/test/README. I also got CVS commit privileges on Python itself! I became an official Python developer! Woohoo! __ http://mail.python.org/pipermail/python-dev/2003-April/034538.html `migration away from SourceForge?`__ It was suggested we revisit the idea of moving Python development off of SourceForge_ because of the usual crappy CVS performance and underwhelming tracker performance. There is also the issue that problems with the setup cannot be fixed on our schedule. GForge_ and Roundup_ were both suggested as alternatives. Roundup specifically has gotten a decent amount of support since it is in Python and thus we could get things fixed quickly. Trouble is that it is not polished enough yet and we would need to furnish our own CVS (but Ben Laurie might be gracious enough to help us out on that front with possible hosting at http://www.thebunker.net/ ). If you would like to help get Roundup and the install at http://www.python.org:8080/ up and going, please do so. __ http://mail.python.org/pipermail/python-dev/2003-April/034540.html .. _GForge: http://gforge.org/ .. _Roundup: http://roundup.sf.net/ `How should time.strptime() handle UTC?`__ I asked if anyone thought time.strptime() should recognize UTC and GMT timezones by default for setting whether or not daylight savings was being used. No one has given their opinion yet (do you have one?). __ http://mail.python.org/pipermail/python-dev/2003-April/034543.html `Big trouble in CVS Python`__ CVS Python was crashing on the regression tests. It turned out to be from the reuse of a variable in the code that implements range(). Tim Peters said a "Word to the wise: don't ever try to reuse a variable whose address is passed to PyArg_ParseTuple for anything other than holding what PyArg_ParseTuple does or doesn't store into it". __ http://mail.python.org/pipermail/python-dev/2003-April/034544.html `GIL vs thread state`__ Discovered the docs for PyThreadState_Clear() are incorrect (or at least not very clear). __ http://mail.python.org/pipermail/python-dev/2003-April/034574.html `test_pwd failing`__ test_pwd was failing and now it isn't. __ http://mail.python.org/pipermail/python-dev/2003-April/034626.html `lists v. tuples`__ You can tell whether a comparison function does a 3-way or 2-way (using <); but that is not Pythonic and thus won't be done so as to allow someone to pass either a 2 or 3-way comparison function to list.sort() and have the method figure out what type of sort it is. __ http://mail.python.org/pipermail/python-dev/2003-April/034646.html `LynxOS 4 port`__ Duane Voth wants to get Python ported to the LynxOS on PPC. __ http://mail.python.org/pipermail/python-dev/2003-April/034647.html `sre.c and sre_match()`__ The C code for the re module is not simple. =) __ http://mail.python.org/pipermail/python-dev/2003-April/034653.html +++++++++++++++++++++++++++++++++++++++++++++++++++++ python-dev Summary for 2003-04-16 through 2003-04-30 +++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from April 16, 2003 through April 30, 2003. It is intended to inform the wider Python community of on-going developments on the list and to have an archived summary of each thread started on the list. To comment on anything mentioned here, just post to python-list@python.org or `comp.lang.python`_ with a subject line mentioning what you are discussing. All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on something. And if all of this really interests you then get involved and join `python-dev`_! This is the sixteenth summary written by Brett Cannon (writing history the way I see fit =). All summaries are archived at http://www.python.org/dev/summary/ . Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sf.net/rst.html . Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo =); you can safely ignore it, although I suggest learning reST; its simple and is accepted for `PEP markup`__. Also, because of the wonders of programs that like to reformat text, I cannot guarantee you will be able to run the text version of this summary through Docutils_ as-is unless it is from the original text file. __ http://www.python.org/peps/pep-0012.html .. _python-dev: http://www.python.org/dev/ .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. contents:: .. _last summary: http://www.python.org/dev/summary/2003-04-01_2003-04-15.html ====================== Summary Announcements ====================== So no one responded to my question last time about whether anyone cared if I stopped linking to files in the Python CVS online through ViewCVS. So silence equals what ever answer makes my life easier, so I won't link to files anymore. .. _ViewCVS: http://viewcvs.sf.net/ ================== `2.3b1 release`__ ================== __ http://mail.python.org/pipermail/python-dev/2003-April/034682.html Splinter threads: - `Masks in getargs.c `__ - `CALL_ATTR patch `__ - `Built-in functions as methods `__ - `Tagging the tree `__ - `RELEASED: Python 2.3b1 `__ Guido announced he wanted to get `Python 2.3b1`_ out the door by Friday, April 25 (which he did). He also said if something urgently needed to get in before then to set the priority on the item to 7. The rules for betas is you can apply bug fixes (it is the point of the releases). New unit tests can also be added as long as the entire regression testing suite passes with them in there; since this is a beta any bugs found should be patched along with adding the tests. This led to some patches to come up that some people would like to see get into b1. One is Thomas Heller and his patch at http://www.python.org/sf/595026 which adds new argument masks for PyArg_ParseTuple(). Thomas' patch adds two new masks ('k' and 'K') and modifies some others so that their range checking (if they kept any) were more reasonable. This is when Jack Jansen chimed in saying that he didn't notice any mask that worked between 2.2 and 2.3 that converts 32 bit values without throwing a fit. Basically the changes to the 'h' mask left all of the Mac modules broken. The change was backed out, though, and the issue was solved. Martin v. Löwis wanted to get IDNA (International Domain Names in Applications) in (which he did). UnixWare was (and as of this writing still is) broken. It's being worked on, though, by Tim Rice. The CALL_ATTR patch that Thomas Wouters and I worked on at PyCon came up. We were trying to come up with an opcode to replace the common ``LOAD_ATTR; CALL_FUNCTION`` opcode pair that happens whenever you call a method. The hope was to short-circuit the pushing on to the stack the method object since it gets popped off immediately by CALL_FUNCTION. Initially the patch only worked for classic classes but Thomas has since cleaned it up and added support for new-style classes. To help out Thomas, Guido gave an overview of new-style classes and how descriptors work. Basically a descriptor is what exists in a class' __dict__ and "primarily affects instance attribute lookup". When the attribute lookup finds the descriptor it wants, it calls its __get__ method (tp_descrget slot for C types). The lookup then "binds" this to the instance; this is what separates a bound method from a function since functions are also descriptors. Properties are just descriptors whose __get__ calls whatever you passed for the fget argument. Class attribute lookup also calls __get__ but the instance attribute is made None (or NULL for C code). __set__ is called on a descriptor for instance attribute assignment but not for class attribute assignment. Guido clarified this later somewhat by the example having a descriptor f that when ``f.__get__(obj)`` is called it returns a function g which acts like a curried function (read the Python Cookbook if you don't know what currying_ is). Now when you call ``g(arg1, ...)`` you are basically doing ``f(obj, arg1, ...)``; so this all turns into ``f.__get__(obj)(arg1, ...)``. The problem with the CALL_ATTR patch is that there is turning out to be zero benefit from it beyond from having a nicer opcode for a common operation when the code for working with new-style classes in the code. This could be from cache misses because of the increased size of the interpreter loop or just too many branches to possibly take. As of now the patch is still on SF and has not been applied. .. _Python 2.3b1: http://www.python.org/2.3/ .. _currying: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52549 ========================= `Super and properties`__ ========================= __ http://mail.python.org/pipermail/python-dev/2003-April/034338.html This thread was initially covered in the `last summary`_. Guido ended up explaining why super() does not work for properties. super() does not stop on the first hit of finding something when that "something" is a data descriptor; it ignores it and just keeps on looking. Now super() does this so that it doesn't end up looking like something it isn't. Think of the case of __class__; if it returned what object's __class__ returned it would cause super to look like something it isn't. Guido figured people wouldn't want to override data descriptors anyway, so this made sense. But now there is a use case for this, so Guido is changing this for Python 2.3 so that data descriptors are properly hit in the inheritance chain by super(). ====================== `Final PEP 311 run`__ ====================== __ http://mail.python.org/pipermail/python-dev/2003-April/034705.html Mark Hammond's `PEP 311`_ has now been implemented! What Mark has done is implement two functions in C; PyGILState_Ensure() and PyGILState_Restore(). Call the first one to get control of the GIL, without having to know its current state, to allow you to use the Python API safely. The second releases the GIL when you are done making calls out to Python. This is a much simpler interface than what was previously needed when you did not need a very fancy threading interface with Python and just needed to hold the GIL. As always, read the PEP to get the full details. .. _PEP 311: http://www.python.org/peps/pep-0311.html ================================================ `summing a bunch of numbers (or "whatevers")`__ ================================================ __ http://mail.python.org/pipermail/python-dev/2003-April/034767.html Splinter threads: - `stats.py `__ - `''.join() again `__ How would use sum a list of numbers? Traditionally there have been two answers. One is to use the operator module and 'reduce' in the idiomatic ``reduce(operator.add, list_of_numbers)``. The other is to do a simple loop:: running_sum = 0 for num in iterable_producing_numbers: running_sum += num Common complaints against the 'reduce' solution are that is just is ugly. People don't like the loop solution because it is long for such a simple operation. And a knock against both is that new users of Python do not necessarily think of either solution initially. So, what to do? Well, Alex Martelli to the rescue. Alex proposed adding a new built-in, 'sum', that would take a list of numbers and return the sum of those numbers. Originally Alex also wanted to special-case the handling of a list of strings so as to prevent having to tell new Python programmers that ``"".join(list_of_strings)`` is the best way to concatenate a bunch of strings and that looping over them is *really* bad (the amount of I/O done in the loop kills performance). But this special-casing was shot down because it seemed rather magical and can still be taught to beginners easily enough ('reduce' tends to require an understanding of functional programming). But the function still got added for numbers. So, as of Python 2.3b1, there is a built-in named 'sum' that has the parameter list "sum(iterable_producing_numbers [, start=0]) -> sum of the numbers given by iterable_producing_numbers". The 'start' parameter allows you to specify an initial value. And since this is a function with a very specific use it is the fastest way you can sum a list of numbers. The question of adding a statistics module came up during this discussion. The thought was presented to come up with a good, basic stats module to have in the stdlib. The arguments against this is that there are already several good stats modules out there so why bother with including one with Python? It would cause some overshadowing of any 3rd-party stats modules. Eventually the "nays" had it and the idea was dropped. And for all his work Alex got CVS commit privileges. Python, the gift that keeps on giving you more responsibility. =) =================================== `When is it okay to cvs remove?`__ =================================== __ http://mail.python.org/pipermail/python-dev/2003-April/035011.html Related threads: - `Rules of a beta release? `__ Being probably the most inexperienced person with CVS commit privileges on Python, I am continuing with my newbie questions in terms of applying patches to the CVS tree (and since I control the Summary I am going to document the answers I get here so I don't have to write them down somewhere else =). This time I asked about when it was appropriate to use ``cvs remove``, specifically if it was reasonable if a file was completely rewritten. The answer was to not bother with it unless you are actually removing the file forever; don't bother if you are just rewriting the file. Also, don't bother with changing the version number when doing a complete rewrite; just make sure to mention in the CVS commit message that it is a rewrite. I also learned that the basic guideline to follow in terms of whether a patch should be put up on SF_ or just committed directly is that if you are unsure about the usefulness or correctness then you should post it on SF. But if you don't think there is anyone who can answer it on SF it will just languish there for eternity. Also learned the rules of a beta release. Basically no changes that would cause someone's code to not work the same way as when the beta was released can be checked in. New tests are okay, though. .. _SF: http://www.sf.net/ ========= Quickies ========= `3-way result of PyObject_IsTrue() considered PITA`__ Raymond Hettinger discovered that PyObject_IsTrue() promises that there is never an error from running the function, which is not how the function performs. Raymond fixed the docs to match the code. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034658.html `Python dies upon printing UNICODE using UTF-8`__ Windows NT 4's support of UTF-8 is broken. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034666.html `shellwords`__ Gustavo Niemeyer asked if there was any chance of getting shellwords_ into the stdlib so as to be able to have POSIX command line word parsing. The basic response was that shlex_ should be enhanced to do what Gustavo wanted. He has since written `patch #722686`_ that implements the features he wanted. It was also discovered that distutils.util.split_quoted comes close. If someone wants to document Distutils utilities it would be greatly appreciated. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034670.html .. _shellwords: http://www.crazy-compilers.com/py-lib/shellwords.html .. _shlex: http://www.python.org/dev/doc/devel/lib/module-shlex.html .. _patch #722686: http://www.python.org/sf/722686 `Changes to gettext.py for Python 2.3`__ This thread was originally covered in the `last summary`_. Barry Warsaw and Martin v. Löwis discussed the gettext_ and whether there should be a way to coerce strings to other encodings. They ended up agreeing on defaulting on Unicode for storing the strings and having .gettext() coerce to an 8-bit string while .ugettext() returns the original Unicode string. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034511.html .. _gettext: http://www.python.org/dev/doc/devel/lib/module-gettext.html `Stackless 3.0 alpha 1 at blinding speed`__ Christian Tismer has done it again; he improved Stackless_ and now has managed to have merged the abilities of Stackless 1 with 2 which has led to 3a. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034708.html .. _Stackless: http://www.stackless.com `Build errors under RH9`__ Python was not building under Red Hat 9, but Martin v. Löwis checked in a fix. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034724.html `Wrappers and keywords`__ Matt LeBlanc asked why there wasn't a nice syntax for doing properties staticmethods and classmethods. The answer is that it was felt it was more important to get the ability to use those new descriptors out there instead of letting a syntax debate hold them up. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034715.html `Startup overhead due to codec usage`__ MA Lemburg and Martin v. Löwis discussed startup time taken up by seeing what encoding is used by the local filesystem. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034742.html `test_pwd failing`__ Initially covered in the `last summary`_. test_grp was failing for the same reasons test_pwd was failing. It has been fixed. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034626.html `Evil setattr hack`__ Someone found a way to set an attribute on a type which is a no-no. The lesson learned here was don't mess with an instance's __dict__ directly; we will let you but if you get burned its your own fault. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034633.html `heapq`__ Splinter threads: - `FIFO data structure? `__ - `heaps `__ The idea of turning the heapq_ module into a class came up, and later led to the idea of having a more proper FIFO (First In, First Out) data structure. Both ideas were shot down. The reason for this was that the stdlib does not need to try to grow every single possible data structure in programming. Guido's design philosophy is to have a few very powerful data structures that other ones can be built off of. This is why the bisect_ and heapq modules just work on standard lists instead of defining a new class. Queue_ is an exception, but it is designed to mediate messages between threads instead of being a general implementation of a queue. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034768.html .. _heapq: http://www.python.org/dev/doc/devel/lib/module-heapq.html .. _bisect: http://www.python.org/dev/doc/devel/lib/module-bisect.html .. _Queue: http://www.python.org/dev/doc/devel/lib/module-Queue.html `New re failures on Windows`__ Splinter threads: - `sre vs gcc `__ The re_ module was failing after some changes were made to it. The pain of it all was that it was failing only on certain platforms running gcc_. Initial attempts were to make it "just work", but then it was stressed that it is more important to find the offending C code and figure out why gcc on certain platforms was compiling bad assembly. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034776.html .. _re: http://www.python.org/dev/doc/devel/lib/module-re.html .. _gcc: http://gcc.gnu.org/ `os.path.walk() lacks 'depth first' option`__ Someone requested that os.path.walk support breadth-first walking (yes, the title of the thread is wrong). The request was deemed not important enough to bother implementing, but Tim Peters did implement a new function named os.walk that is a much improved replacement for os.path.walk and lets you control which direction the traversl goes (top-down or bottom-up). .. __: http://mail.python.org/pipermail/python-dev/2003-April/034792.html `Weekly Python Bug/Patch Summary`__ Skip Montanaro's weekly reminder that there is work to be done! Summary for week 2 can be found `here `__. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034797.html `Hook Extension Module Import?`__ Want to do something that requires a special import hook in C? Then override the __import__ built-in with what you need. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034804.html `Bug/feature/patch policy for optparse.py`__ Greg Ward asked if it would be okay to keep the official version of optparse_ at http://optik.sf.net/ (Optik is the project name for optparse). Guido said sure. The justification for this is that Greg wants Optik to be available to people for use in earlier versions of Python. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034833.html .. _optparse: http://www.python.org/dev/doc/devel/lib/module-optparse.html `LynxOS4 dynamic loading with dlopen() and -ldl`__ LynxOS4 does not like dynamic linking. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034878.html `Embedded python on Win2K, import failures`__ I don't like Windows. And no, this has nothing to do with this single email that is a short continuation of one covered in the `last summary`_. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034506.html `New thread death in test_bsddb3`__ After Mark Hammond's new thread code got checked in the bsddb module broke. Mark went in, though, and using the wonders that is the C preprocessor and NEW_PYGILSTATE_API_EXISTS, Mark fixed the code to use the new PyGILState API as covered in `PEP 311`_ when possible and to use the old solution when needed. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034901.html `Magic number needs upgrade`__ Guido noticed that the PYC magic number needed to be incremented to handle Raymond Hettinger's new bytecode optimizations. But then Guido questioned the need of Raymond's changes. Basically Raymond's changes didn't speed anything up but cleaned up the emitted bytecode. Guido didn't like the idea of adding more code without an actual speed improvement. Since neither this code nor any of the other proposed speedup changes (CALL_ATTR and caching attribute lookup results) are panning out, Guido questioned why Raymond's should get in. Guido suggested rewriting the interpreter from scratch since all new changes seem to be breaking some delicate balance that has developed in it. He also thought putting effort into other things like pysco_. Eventually Raymond's changes were backed out. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034905.html .. _pysco: http://psyco.sf.net/ `draft PEP: Trace and Profile Support for Threads`__ Jeremy Hylton has a draft PEP on how to add hooks for profile and trace code in threads. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034909.html `Data Descriptors on module objects`__ Never going to happen. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035025.html `Metatype conflict among bases?`__ "The metaclass [of a class] must be a subclass of the metaclass of all the bases" of that class. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034910.html `okay to beef up tests on the maintenance branch?`__ Answer: yes! .. __: http://mail.python.org/pipermail/python-dev/2003-April/034939.html `Cryptographic stuff for 2.3`__ AM Kuchling wanted to add an implementation of the AES_ encryption algorithm to the stdlib. After a long discussion the idea was shot down because having crypto that strong in the stdlib would cause export issues for Python. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034957.html .. _AES: http://csrc.nist.gov/encryption/aes/ `vacation`__ Neal Norwitz is on vacation from April 26 till May 6. He pointed out some nagging errors coming up from the `Snake Farm`_ that could use some working on. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034942.html .. _Snake Farm: http://www.lysator.liu.se/xenofarm/python/latest.html `test_getargs2 failures`__ Not anymore. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034944.html `Democracy`__ Guido pointed out a paper on democracy (in the ancient Athenian sense) and the organization of groups at http://www.acm.org/ubiquity/interviews/b_manville_1.html that was interesting. Sparked some discussion on proper comparisons to open source projects and such. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034946.html `Updating PEP 246 for type/class unification, 2.2+, etc.`__ Phillip Eby proposed some changes to `PEP 246`_. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034955.html .. _PEP 246: http://www.python.org/peps/pep-0246.html `why is test_socketserver in expected skips?`__ Skip Montanaro noticed that socketserver was listed as an expected test to be skipped on all platforms sans os2emx even though it works on all platforms with networking (basically all of them). So it was removed from the expected skip list. Skip also tweaked test_support.requires to always pass when the caller is __main__. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034973.html `netrc.py`__ Bram Moolenaar, author of the `greatest editor in the world`_ and AAP_, requested a changed to netrc_ that got implemented. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034983.html .. _greatest editor in the world: http://www.vim.org/ .. _AAP: http://www.a-a-p.org/ .. _netrc: http://www.python.org/dev/doc/devel/lib/module-netrc.html `PyRun_* functions`__ They take FILE* arguments and it is going to stay that way. Just make sure the files are opened with the same library as being built against. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034990.html `Python Developers`__ Related threads: - `Getting mouse position interms of canvas unit. `__ - `2.3b1, and object() `__ Posted to the wrong email list. .. __: http://mail.python.org/pipermail/python-dev/2003-April/034969.html `New test failure on Windows`__ re_ was failing but got fixed. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035009.html `More new Windos test failures`__ Just before `Python 2.3b1`_ got pushed out the door, some last-minute test failures cropped up (some of them were my fault). But they got fixed. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035047.html `should sre.Scanner be exposed through re and documented?`__ re.Scanner shall remain undocumented. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035066.html `LynxOS4 port: need pre-ncurses curses!`__ The LynxOS is hoping curses will go away. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035052.html `test_s?re merge`__ test_re and test_sre have been merged and moved over to unittest_ thanks to Skip Montanaro. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035067.html .. _unittest: http://www.python.org/dev/doc/devel/lib/module-unittest.html `test_ossaudiodev hanging again`__ Some people are still having issues with ossaudiodev tests hanging. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035056.html `bz2 module fails to compile on Solaris 8`__ The joys of being cross-platform. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035068.html `test_logging hangs on Solaris 8`__ Splinter threads: - `test_logging hangs on OS X `__ - `test_logging hangs on Solaris 8 (and 9) `__ The joys of threading and trying to avoid deadlock. A fix has been checked in that seems to fix this on OS X; don't know about Solaris yet. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035065.html `Python 2.3b1 documentation`__ Fred L. Drake, Jr. posted the documentation for Python 2.3b1. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035064.html `Accepted PEPs?`__ Splinter threads: - `Reminder to PEP authors `__ - `proposed amendments to PEP 1 `__ The status of some PEPs got updated along with some proposed changes to `PEP 1`_. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035104.html .. _PEP 1: http://www.python.org/peps/pep-0001.html `Problems w/ Python 2.2-maint and Redhat 9`__ Dealing with some issues of Python 2.2-maint and linking against a dbm. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035120.html `Why doesn't the uu module give you the filename?`__ Someone wanted the uu_ module to let you know what the name of the encoded file is. Was told to post a patch. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035129.html .. _uu: http://www.python.org/dev/doc/devel/lib/module-uu.html `Antigen found CorruptedCompressedUuencodeFile virus`__ The joys of having to watch out for viruses in emails and get false positives. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035130.html `Python 2.3b1 has 20% slower networking?`__ Splinter threads: - `Python-Dev digest, Vol 1 #3221 - 4 msgs `__ Networking throughput did not have as high of a max when in a loop as before. Has been fixed, though. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035132.html `cvs socketmodule.c and IPV6 disabled`__ Discovered some code that couldn't compile because a test for a specific C function was not specific enough. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035146.html `Introduction :)`__ Someone else with the first name of Brett introduced themselves to the list (Brett Kelly). You can tell us apart because I am taller. =) .. __: http://mail.python.org/pipermail/python-dev/2003-April/035162.html `Dictionary tuning`__ Splinter threads: - `Dictionary tuning upto 100,000 entries `__ Raymond Hettinger did a bunch of attempted tuning of dictionary accesses and came up with one solution that managed to be beneficial for large dictionaries and not detrimental for small ones. He basically just caused dictionary sizes to grow by a factor of 4 instead of 2 so as to lower the number of collisions. The objection that came up was that some dictionaries would be larger than they were previously. It looks like it would be applied, but Raymond's notes on everything will most likely end up as a text file in Python. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035151.html `Thoughts on -O`__ It was suggested to change what the -O and -OO command-line switches did since at this moment they don't do much (Guido has even suggested eliminating -O). But the discussion has been partially put on hold until development for Python 2.4 starts. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035165.html `Initialization hook for extenders`__ It has been suggested to add a Py_AtInit() hook to Python to be symmetric with Py_AtExit(). The debate over this is still going. .. __: http://mail.python.org/pipermail/python-dev/2003-April/035226.html From uwe.schmitt@procoders.net Thu May 8 14:43:25 2003 From: uwe.schmitt@procoders.net (Uwe Schmitt) Date: 8 May 2003 13:43:25 GMT Subject: WebWare + Zope Page Templates Message-ID: Hi, I wrote a class which mixes Python/WebWare Servlets and the Zope templating language TAL. The usage is quite easy, many things as caching of compiled templates, is done automatically. For more information look at http://www.procoders.net/pythonstuff Greetings, Uwe. -- Dr. rer. nat. Uwe Schmitt http://www.procoders.net schmitt@procoders.net "A service to open source is a service to mankind." From itamar@zoteca.com Thu May 8 21:42:20 2003 From: itamar@zoteca.com (Itamar Shtull-Trauring) Date: Thu, 8 May 2003 16:42:20 -0400 Subject: ANN: Twisted 1.0.5 Message-ID: Twisted is an event-driven networking framework for server and client applications. More detailed information can be found after the "What's New" section. For more information, visit http://www.twistedmatrix.com, join the list http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python or visit us on #twisted at irc.freenode.net. What's New in 1.0.5 =================== - Twisted requires Python 2.2 and later. Python 2.1 is no longer supported. - TLS on the fly support, i.e. it's possible switch to TLS in the middle of TCP connection. - Component architecture is now closer to Zope3 (Interface to Interface adaptation). - Refactored logging system. - Documentation for the Woven web system. - Bug fixes, documentation improvements and speed enhancements. 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 supports many event loops for both server apps and GUI integration on the client side, including: - Win32 events, including GUI support - GTK+ - GTK+ 2 - Qt - wxPython - Tkinter Twisted can run protocols over TCP, SSL, UDP, multicast, 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 - IMAP - DNS - FTP - HTTP, including a complete web framework - XML-RPC - SOAP server framework - NNTP and complete NNTP server framework - SOCKSv4 (server only) - SMTP - IRC - telnet - POP3 - AOL's instant messaging TOC - MSN messaging - OSCAR, used by AOL-IM as well as ICQ (client only) - MouseMan serial mice, and GPS devices - Twisted Perspective Broker, a remote object protocol From theller@python.net Fri May 9 19:39:33 2003 From: theller@python.net (Thomas Heller) Date: 09 May 2003 20:39:33 +0200 Subject: py2exe 0.3.4 released Message-ID: After one year of silence I've released py2exe 0.3.4. py2exe is a distutils extension to build Windows executables from python scripts. Not too much has changed: there is now support for including early bound COM code generated by makepy (I'm not sure if this is a good idea), and a binary distribution for the beta Python 2.3 version. http://starship.python.net/crew/theller/py2exe/ Enjoy, Thomas From akuchlin@mems-exchange.org Fri May 9 20:18:02 2003 From: akuchlin@mems-exchange.org (Andrew Kuchling) Date: Fri, 09 May 2003 15:18:02 -0400 Subject: Quixote 0.6 released Message-ID: We've just issued the final release of Quixote 0.6. With this release, 0.6 becomes the new stable version of Quixote; it has already seen production use on our web site. The change list from 0.5.1 is extensive: * A new and preferred syntax for declaring PTL templates has been added. Instead of 'template func(): ...', the new form is 'def func [plain] ()'. This uses a notation that's been suggested for adding type information to Python functions. The Emacs Python mode already handles this properly, and it may be more compatible with future versions of Python. The 'template' keyword is still supported, but we encourage you to switch to the new syntax when you get a chance. * Rename _q_getname() to _q_lookup(). The name '_q_getname' is still supported, but will log a warning whenever it's encountered. This change will require users to modify their applications. * Quixote now supports a new kind of template that automatically performs HTML escaping. Here's an example. (Notice that the '[plain]' annotation is changed to '[html]' to enable this feature.) def header [html] (title): "%s" % title If the 'title' argument is something like "R&D", it will automatically be converted to "R&D" following the rules for escaping HTML special characters. The aim is to avoid cross-site scripting attacks by automatically quoting unsafe characters in text. See http://www.mems-exchange.org/software/quixote/doc/PTL.html for more information about how this works. This escaping is implemented using either a Python 'htmltext' class or a C implementation. Both implementations have seen production use on our web site. * The form framework now uses this automatic HTML escaping. This means that applications using the form framework will have to either be changed to use automatic HTML escaping themselves, or to use str() to convert 'htmltext' instances back to Python strings. As part of this change, form/form.py and form/form_templates.ptl were merged into form/form.py. See http://www.mems-exchange.org/software/quixote/doc/upgrading.html for more information. * Added a new hook, _q_resolve(), that can be used to delay importing modules until they're actually accessed. Consult doc/programming.txt for an explanation. (Original suggestion and patch by Jon Corbet. In the process of adding it, Publisher.get_component() was rearranged to clarify the logic.) Smaller changes: * Make Quixote a bit more friendly to multi-threaded applications by allowing multiple simultaneous requests (patch by Titus Brown). * Make util.xmlrpc() return an HTTP 405 Method Not Allowed error if the method isn't a POST. * Added demo/run_cgi.py, a script that makes it easy to write one file CGI applications that use Quixote. See the comments at the top of the demo/run_cgi.py file for instructions. * Added StaticFile and StaticDirectory classes to quixote.util. Consult doc/static-files.txt for examples. (Contributed and documented by Hamish Lawson.) * Added quixote.server.twisted_http, which serves a Quixote application using the Twisted event-driven framework (www.twistedmatrix.com). Contributed by Graham Fawcett. We don't use this code ourselves, but patches and bug fixes from Twisted users will be gratefully accepted. * If Quixote looks for _q_index() in a namespace and doesn't find it, it raises AccessError (resulting in an HTTP 403 Forbidden error) rather than failing with an ImportError. A minor side effect of this change: Quixote will never attempt to import a module named '_q_index', nor will it pass '_q_index' to any _q_resolve() function. We don't expect this to be a backward compatibility problem . * Factored out the traverse_url() and get_component() method from the Publisher class. * Fix generation of temporary filenames in upload.py: filename collisions should be impossible now. * Documented _q_exception_handler(). Please send comments and questions to c.l.python or to the quixote-users mailing list. --amk (www.amk.ca) "Amberley excelled at chess -- one mark, Watson, of a scheming mind." -- Sherlock Holmes, in "The Adventure of the Retired Colourman" From mal@egenix.com Fri May 9 20:32:47 2003 From: mal@egenix.com (M.-A. Lemburg) Date: Fri, 09 May 2003 21:32:47 +0200 Subject: ANN: eGenix mxODBC Zope Database Adapter, Version 1.0.5 Message-ID: ________________________________________________________________________ ANNOUNCEMENT EGENIX.COM mxODBC Zope Database Adapter Version 1.0.5 Available for Zope 2.3 - 2.6 on Windows, Linux and Solaris ________________________________________________________________________ INTRODUCTION The eGenix mxODBC Zope Database Adapter (Zope DA) allows you to easily connect your Zope installation to just about any database backend on the market today, giving you the reliability of the commercially supported eGenix.com product mxODBC and the flexibility of the ODBC standard as middle-tier architecture. Unlike Zope's ZODBC Zope DA, the mxODBC Zope DA works on Windows XP/NT/2000/98/95, Linux and Solaris using the same interface on all platforms. The mxODBC Zope DA implements thread-safe connection pooling and multiple physical connects per logical Zope connection. You can safely run Z SQL Methods in parallel, achieving a much better performance than ZODBC Zope DA or similar Zope database adapters under heavy load. This makes it ideal for deployment in Zope Clusters and Zope hosting environments where stability and high performance are a top priority. ________________________________________________________________________ FEATURES * Zope Level 3 Database Adapter: the mxODBC Zope DA is fully multi-threaded and can handle multiple connections to multiple databases. * Fully compatible to Z SQL Methods. * Drop-in compatible to the ZODBC DA: the mxODBC Zope DA provides the same interfaces as Zope's ZODBC DA to allow a smooth upgrade path from this simplistic adapater to the high performance mxODBC Zope DA. * Fully compatible to the Znolk SQL Wizard Product and other similar products relying on the common database schema access methods .tables() and .columns(). * Connection Pooling: physical database connections are pooled and kept open, to reduce the connection overhead to a minimum. This is especially important for high latency database connections and ones like Oracle which take a considerable amount of time to setup * Parallel Execution of Queries on a single logical connection: the mxODBC Zope DA can manage any number of physical connections on a single logical connection. This enables running truly parallel Z SQL Method queries -- a feature not available in other Zope DAs. * Robust Mode of Operation: connections which have timed out or go away due to network problems are automatically reconnected. * Cross-platform Connection Objects: The Zope DA will automatically choose the right platform specific ODBC manager for you. * Per Connection Adjustable ODBC Interface: mxODBC comes with many different subpackages to choose from on Unix. The Zope DA allows you to select these subpackages on a per-connection basis. * Per Connection Error Handling: you can tell each connection whether it should report ODBC warnings or not; furthermore all warnings and errors are made available as list .messages on the DatabaseConnection object. * Transaction safe automatic reconnect: when the DA finds that a connection has timed out, it automatically tries a reconnect and replays the transaction on the connection (unlike other DAs which break the transaction scheme by doing a reconnect without replay). * Built-in Schema Cache: this results in improved performance under heavy load. * Database Schema Access: all ODBC catalog methods are made available for much better database schema inquiry. The catalog methods allow building generic database interrogation or manipulation tools and facilitates writing database independent Zope products. * Lazy Connect: the mxODBC Zope DA only connects to the database backends when a connection is actually requested. This results in a better use of resources compared to other Zope DAs. ________________________________________________________________________ NEWS Version 1.0.5 introduces the following new features compared to version 1.0.4: * Support for multi-statement queries. Z SQL Methods allow multiple statements in a single query via the feature. mxODBC Zope DA 1.0.5 now supports this feature as well. * Lazy Connect: mxODBC Zope DA 1.0.5 only reconnects mxODBC Connection objects if Zope requests a connection object. This results in better use of available resources. Other Zope DAs tend to always reconnect when loading the connection objects into memory, e.g. when loading the folder containing the connection object, even though the connection is not really used for anything. In short: mxODBC Zope DA is continuing to become the number one solution for integrating relational databases with Zope applications. ________________________________________________________________________ UPGRADING If you have already bought mxODBC Zope DA licenses, you can use these license for the updated version as well. There is no need to buy new licenses. The same is true for evaluation license users. ________________________________________________________________________ MORE INFORMATION For more information on the mxODBC Zope DA, licensing and download instructions, please visit our web-site: http://www.egenix.com/ ________________________________________________________________________ Thank you, -- Marc-Andre Lemburg eGenix.com Professional Python Software directly from the Source (#1, May 09 2003) >>> Python/Zope Products & Consulting ... http://www.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ EuroPython 2003, Charleroi, Belgium: 46 days left From Jack.Jansen@cwi.nl Fri May 9 23:12:23 2003 From: Jack.Jansen@cwi.nl (Jack Jansen) Date: Sat, 10 May 2003 00:12:23 +0200 Subject: MacPython-2.3b1 binary installers available Message-ID: Binary installers for MacPython 2.3b1 are available at . For 2.3 MacPython will come in two flavors: MacPython-OS9 which runs on MacOS8.6, MacOS9 and MacOSX and the all-new MacPython-OSX which includes a normal unix-Python. In addition to all the normal Python goodies both contain an IDE and a large collection of modules that give access to MacOS functionality (Carbon, QuickTime, AppleScript). MacPython-OSX also has a Package Manager, which allows easy installation of selected packages (either in source or binary form) such as Numeric, PIL, wxPython and PyObjC. The latter is an exciting new package that allows transparent bidirectional bridging with Objective-C, thereby giving full access to Cocoa from Python. -- - Jack Jansen http://www.cwi.nl/~jack - - If I can't dance I don't want to be part of your revolution -- Emma Goldman - From falted@openlc.org Sat May 10 12:38:25 2003 From: falted@openlc.org (Francesc Alted) Date: Sat, 10 May 2003 13:38:25 +0200 Subject: PyTables 0.5 released Message-ID: Announcing PyTables 0.5 ----------------------- This is the second public beta release. On this release you will find a 20% of I/O speed improvement over the previous one (0.4), some bugs has been fixed and support for a couple of compression (LZO and UCL) libraries has been added, and... a long awaited Windows version is finally available!. More in detail: What's new ----------- - As a consequence of some twiking the write/read performance has been improved by a 20% overall. One particular case were performance has largely increased (0.5 is up to 6 times faster than 0.4) is when column elements are unidimensional arrays. This impressive speed-up is mainly because of the recent improvements in numarray 0.5 performance (good work, folks!). With that, the reading speed is reaching its theoretical maximum (at least when using the current data access schema). - When reading a Table object, and the user wants to fetch column elements which are unidimensional arrays, a copy of the array from the I/O buffer is delivered automatically to him, so that there is no need to make a call to .copy() method of the numarray arrays anymore. It think this is more comfortable for the user. - The compression was enabled by default in version 0.4, despite of what was stated in the documentation. Now, this has been corrected and compression is *disabled* by default. - Support for two new compression libraries: LZO and UCL (http://www.oberhumer.com/opensource/). These libraries are made by Markus F.X.J. Oberhumer, and they stand for allowing *very* fast decompression. Now, if your data is compressible, you can obtain better reading speed than if not using compression at all!. The improvement is still more noticeable if your are dealing with extremely large (and compressible) data sets. Read the online documentation for more info about that: http://pytables.sourceforge.net/html-doc/usersguide-html3.html#subsection= 3.4.1 - A couple of memory leaks has been isolated and fixed (it was hard, but I finally did it!). - A bug with column ordering of tables that happens in some special situations has been fixed (thanks to Stan Heckman for reporting this and suggesting the patch). - File class has now an 'isopen' attribute in order to check if a file is open or not. - Updated documentation, specially for giving advice about the use of the new compression libraries. See "Compression issues" subsection, (also on the web: http://pytables.sourceforge.net/html-doc/usersguide-html.html) - Added more unit tests (up to 218 now!) - PyTables has been tested against newest numarray 0.5 and it works just fine. It even works well with Python 2.3b1. - And last, but not least, a Windows version is available!. Thanks to Alan McIntyre for its porting!. There is even a binary ready for click and install. What it is ---------- In short, PyTables provides a powerful and very Pythonic interface to process and organize your table and array data on disk. Its goal is to enable the end user to manipulate easily scientific data tables and Numerical and numarray Python objects in a persistent hierarchical structure. The foundation of the underlying hierarchical data organization is the excellent HDF5 library (http://hdf.ncsa.uiuc.edu/HDF5). A table is defined as a collection of records whose values are stored in fixed-length fields. All records have the same structure and all values in each field have the same data type. The terms "fixed-length" and strict "data types" seems to be quite a strange requirement for an interpreted language like Python, but they serve a useful function if the goal is to save very large quantities of data (such as is generated by many scientific applications, for example) in an efficient manner that reduces demand on CPU time and I/O resources. Quite a bit effort has been invested to make browsing the hierarchical data structure a pleasant experience. PyTables implements just two (orthogonal) easy-to-use methods for browsing. What is HDF5? ------------- For those people who know nothing about HDF5, it is is a general purpose library and file format for storing scientific data made at NCSA. HDF5 can store two primary objects: datasets and groups. A dataset is essentially a multidimensional array of data elements, and a group is a structure for organizing objects in an HDF5 file. Using these two basic constructs, one can create and store almost any kind of scientific data structure, such as images, arrays of vectors, and structured and unstructured grids. You can also mix and match them in HDF5 files according to your needs. Platforms --------- I'm using Linux as the main development platform, but PyTables should be easy to compile/install on other UNIX machines. This package has also passed all the tests on a UltraSparc platform with Solaris 7 and Solaris 8. It also compiles and passes all the tests on a SGI Origin2000 with MIPS R12000 processors and running IRIX 6.5. With Windows, PyTables has been tested with Windows 2000 Professional SP1 and Windows XP, but it should also work with other flavors. An example? ----------- For online code examples, have a look at http://pytables.sourceforge.net/tut/tutorial1-1.html and=20 http://pytables.sourceforge.net/tut/tutorial1-2.html Web site -------- Go to the PyTables web site for more details: http://pytables.sourceforge.net/ Share your experience --------------------- Let me know of any bugs, suggestions, gripes, kudos, etc. you may have. Have fun! -- Francesc Alted From webmaster@keyphrene.com Sun May 11 10:39:35 2003 From: webmaster@keyphrene.com (webmaster@keyphrene.com) Date: Sun, 11 May 2003 9:39:35 GMT Subject: ANNOUNCE: Naja 0.7.9 is now available Message-ID: Naja is a freeware tool written in Python/wxPython. Naja is a download manager and a website grabber. It can be used for extract JPEG images from news server. Version 0.7.9 of Naja has been released and is available for download from the Keyphrene web site: http://www.keyphrene.com products/naja From mgencer@acikkanal.net Sun May 4 18:48:35 2003 From: mgencer@acikkanal.net (Mehmet Gencer) Date: Sun, 4 May 2003 13:48:35 -0400 (EDT) Subject: [Application] ISOS/v0.7.1a Message-ID: ISOS/v0.7.1a ------------ A bundle of SMTP, POP3, HTTP servers, and a management console. ISOS is a purely Python server for small organizations. It contains e-mail(SMTP & POP3) servers, a simple HTTP server, and a console based management program for controlling services, creating users and e-mail groups. Most suitable for small organizations that has little expertise in such services and software, and mediocre performance considerations Turkish and English interface. GPL licensed. ISOS provides a quick start for e-presence of small organizations/comapnies, if you don't want to pay for MS Exchange server, and lack the experience to get software like Sendmail, Courier and Apache do what you need. Works on both Windows and Linux. URL: http://isos.acikkanal.net/ Download: http://isos.acikkanal.net/index.en.html License: GPL Platform: Linux, Win32 Categories: Servers Mehmet Gencer (mgencer@acikkanal.net) http://isos.acikkanal.net/ -- ISOS/v0.7.1a -- A bundle of SMTP, POP3, HTTP servers, and a management console. From ngps@netmemetic.com (Ng Pheng Siong) Sun May 11 17:24:08 2003 From: ngps@netmemetic.com (Ng Pheng Siong) (Ng Pheng Siong) Date: 11 May 2003 16:24:08 GMT Subject: M2Crypto 0.10 Message-ID: Hi, M2Crypto 0.10 is now available. This release updates to OpenSSL 0.9.7a and provides AES-128/192/256. Thanks to Toby Allsopp, Dave Berkeley and Gian Paolo Ciceri for patches. As usual, M2Crypto is here: http://www.post1.com/home/ngps/m2 Cheers. -- Ng Pheng Siong http://firewall.rulemaker.net -+- Manage Your Firewall Rulebase Changes http://www.post1.com/home/ngps -+- Open Source Python Crypto & SSL From mwh@python.net Mon May 12 17:58:58 2003 From: mwh@python.net (Michael Hudson) Date: 12 May 2003 17:58:58 +0100 Subject: [ANN] EuroPython 2003 Message-ID: CHARLEROI, MAY 12th 2003 - Second Annual European Python and Zope Conference to be held in Charleroi, Belgium on June 25-27, 2003. Announcing: European Python and Zope Conference 2003 Annual event for growing developer community in Europe. Open source leaders to give keynotes European Python and Zope Conference 2003 (EuroPython 2003) June 25-27, 2003 Charleroi, Belgium http://www.europython.org Only once a year do European software developers have the opportunity to learn about Python, the fastest growing, sophisticated open source application development platform. The second annual Europython conference, being held this year in Charleroi, Belgium on June 25-27, 2003, is also an opportunity to meet with fellow developers and exchange ideas and experiences. With keynote speeches that include the creator of Python; a renowned trainer and mentor in the C++ world; as well as major developer activities, the conference promises to be a breakthrough event for open software in Europe. The EuroPython conference is the premiere venue for meeting Python and Zope developers from Europe and beyond. As one of the first community-organized Python and Zope conferences, the EuroPython Conference delivers the atmosphere and information developers want. Hundreds of new and experienced developers attending the conference will see a full program, including: Keynote by Guido van Rossum, creator of Python. He created Python in the early 1990s at CWI in Amsterdam (the National Research Institute for Mathematics and Computer Science in the Netherlands). He is still actively involved in the development of the language. In 1995 he moved to the US where he now works for Zope Corporation as Director of PythonLabs, the core Python development group hosted by the same company. Keynote by Francis Glassborow, a renowned trainer and mentor in the C++ world. Over 8 years as Chairman of the Association of C & C++ Users, he built up a flourishing organisation which hosts a successful conference and associated standards committee meetings, publishes several journals, and has a strong community embracing the authors and leading lights of C++, Java and now Python. The conference program has over 50 presentations and tutorials in 5 tracks, including Python In Business, Python Frameworks, Python Language, Python In Science and Industry, and Zope. The program contains tutorials, presentations, lightning talks, and "birds of a feather" gatherings. Additional events include a PyPy and Zope3 sprint. EuroPython 2003 will be held in Charleroi, Belgium, a city close to Brussels. Space is filling quickly, so early registration at the EuroPython website (http://www.europython.org) is encouraged. Student discounts are available. The EuroPython 2003 conference continues this year's series of open source developer events in Europe, including FOSDEM and Python-UK, which each attracted thousands of attendees. Like these conferences, EuroPython 2003 is organized by a volunteer group of open source developers. About Python Python is a leading object-oriented open source programming language that runs on all modern platforms. By integrating ease-of-use, clarity in coding, enterprise application connectivity and rapid application design, Python is an ideal programming platform for todays IT challenges. More information, including the Python source code and binaries for Linux and Windows, are available at http://www.python.org. About Zope Zope is a leading open source application server, specializing in content management, portals, and custom applications. Since Zope Corporation introduced Zope as an open source product in 1998, it has become the platform of choice for content publishers, managers and application developers. Zope comes with complete source code, most of which is written in Python. More information, including the Zope source code and binaries for Linux and Windows, are available at http://www.zope.org. Python and Zope are maintained and enhanced in open source fashion by an international community of programmers and companies. Contacts Conference Organization EuroPython Conference Team P3B c/o Aragne Boulevard Giniral Michel 1E B-6000 Charleroi. tel:+32(0)71/270.389 mailto:europython@p3b.org International Contacts Belgium Denis Frhre, mailto:denis@aragne.com, tel: +32(0)479.651.442 Tom Deprez, mailto:tom@aragne.com, tel: +32(0)2.479.63.88 France Nicolas Chauvat, mailto:nicolas.chauvat@logilab.fr, tel: +33 (0)1.45.32.03.12 Germany Marc-Andri Lemburg, mailto:mal@egenix.com, tel: +49(0) 211.9304112 Netherlands Martijn Faassen, mailto:faassen@vet.uu.nl, tel: +31(0) 10.243.7051 United Kingdom ReportLab Europe Ltd, tel: +44-20-8540-9926 Tim Couper, mailto:tim@2wave.net, tel: +44 (0)1582 463120 From falted@openlc.org Mon May 12 19:12:00 2003 From: falted@openlc.org (Francesc Alted) Date: Mon, 12 May 2003 20:12:00 +0200 Subject: PyTables 0.5.1 Message-ID: PyTables 0.5.1 -------------- This is a maintenance release of PyTables. Due to a problem with an speci= fic optimization in PyTables 0.5, it does not work with numarray 0.4 (althoug= h it works just fine with numarray 0.5). Thanks to Marc Gehling for reporti= ng that. Todd Miller has already warned me that this optimization was not safe, so= I am *disabling* it in 0.5.1. The consequence is that the 20% of improvemen= t during reading tables has almost evaporated to a rather small 4%, but tha= t's life!. If you already have installed PyTables 0.5, I strongly suggest you to upgrade to 0.5.1, even if you are already using numarray 0.5. I will try = to further investigate the problem, and, if a good solution is found, I will enable again the optimization in a future release. Another new thing you can find in 0.5.1 is that the use of "UInt64" data types has been removed (it has been replaced by the "Int64" type) of the tutorial chapters in User's Manual. I've done that because the numarray Windows version does not support such a type (due to MSVC compiler limitations). Now, the tutorial section should run fine in all the suppor= ted platforms (even Windows). My apologies for being a sinner and trying to optimize too soon ;-) Web site -------- Go to the PyTables web site for more details: http://pytables.sourceforge.net/ Share your experience --------------------- Let me know of any bugs, suggestions, gripes, kudos, etc. you may have. Have fun! -- Francesc Alted From altis@semi-retired.com Mon May 12 20:58:26 2003 From: altis@semi-retired.com (Kevin Altis) Date: Mon, 12 May 2003 12:58:26 -0700 Subject: less than two weeks left for Python 11 - OSCON 2003 early bird registration Message-ID: The deadline for Python 11 - OSCON 2003 early bird registration is May 23rd, 2003. The conference will be held July 7-11, 2003 in Portland, Oregon, USA. http://conferences.oreillynet.com/os2003/ http://conferences.oreillynet.com/pub/w/23/register.html Save up to $400 when you register by May 23rd for the Python 11/OSCON 2003 conference. Additional discounts are available. I'm including the text of the special discounts available for the conference below since they are quite significant; see the URL above for further info and mailto links. All of the discounts listed at the bottom of the registration page are in addition to the early bird discount. The early bird discount is (obviously) time-limited, but the others are not. Special Discounts ================= Early Bird Pricing - Save up to $400 when you register by May 23, 2003. SPECIAL TUTORIAL OFFER - Buy 2 tutorials, get 2 free (when you purchase a full conference pass). Full Time Student - 65% off with proof of status, a copy of ID & class schedule. Fax to 707-829-1342. Please use os03st in discount field. Academic Instructor - 50% off with proof of full time academic instructor status on organization letterhead. Fax to 707-829-1342. Please use os03ac in discount field. Academic Staff - 25% off with proof of full time academic employee status on organization letterhead. Fax to 707-829-1342. Please use os03sa in discount field. Company Team Discount - 10% off per person if you register 3 or more people from one company. Please use os03team in discount field. Proof of status of employment for each attendee must be faxed to 707-829-1342. Federal Government Discount - 20% off with proof of agency connection. Use discount code, os03gov, and fax to 707-829-1342. User Group Members - UG discounts are available. For discount information or to see if your group is eligible please email Marsee Henon for details. To sign your group up with the O'Reilly User Group Program please go to http://ug.oreilly.com/. Alumni - Have you attended one of our O'Reilly conferences? If so, you are eligible for a 30% alumni discount. Please email Linda Holder for verification and your special discount code. ka --- Kevin Altis, Python 11 co-chair altis@semi-retired.com http://altis.pycs.net/ http://www.pythoncard.org/ From fredrik@pythonware.com Tue May 13 12:23:40 2003 From: fredrik@pythonware.com (Fredrik Lundh) Date: Tue, 13 May 2003 13:23:40 +0200 Subject: ANN: Python Imaging Library 1.1.4 final (may 10, 2003) Message-ID: the labs proudly presents PIL 1.1.4 final: The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities, including display support for Windows and Tkinter. Version 1.1.4 adds improved build scripts, truetype/opentype font support, memory mapping support also for non-Windows platforms, screen and clipboard grabbing on Windows, support for CSS-style color strings, support for IPTC/NAA and EXIF metadata, and more. See below for a full list. Get your copy of the source kit here: http://www.pythonware.com/products/pil/ enjoy, the pil team "Secret Labs -- makers of fine pythonware since 1997." -- changes in this version (relative to 1.1.3) -- + Improved building on Mac OS X (from Jack Jansen). + Improved building on Windows with MinGW (from Klamer Shutte). + If no font is specified, ImageDraw now uses the embedded default font. Use the "load" or "truetype" methods to load a real font. + Added embedded default font to the ImageFont module (currently an 8-pixel Courier font, taken from the X window distribution). + Added experimental EXIF support for JPEG files. To extract EXIF information from a JPEG file, open the file as usual, and call the "_getexif" method. If successful, this method returns a dictionary mapping EXIF TIFF tags to values. If the file does not contain EXIF data, the "_getexif" method returns None. The "ExifTags" module contains a dictionary mapping tags to tag names. This interface will most likely change in future versions. + Fixed a bug when using the "transparency" option with the GIF writer. + Added limited support for "bitfield compression" in BMP files and DIB buffers, for 15-bit, 16-bit, and 32-bit images. This also fixes a problem with ImageGrab module when copying screen- dumps from the clipboard on 15/16/32-bit displays. + Added experimental WAL (Quake 2 textures) loader. To use this loader, import WalImageFile and call the "open" method in that module. + Added updated SANE driver (Andrew Kuchling, Abel Deuring) + Use Python's "mmap" module on non-Windows platforms to read some uncompressed formats using memory mapping. Also added a "frombuffer" function that allows you to access the contents of an existing string or buffer object as if it were an image object. + Fixed a memory leak that could appear when processing mode "P" images (from Pier Paolo Glave) + Ignore Unicode characters in the BDF loader (from Graham Dumpleton) + Added experimental RGBA-on-RGB drawing support. To use RGBA colours on an RGB image, pass "RGBA" as the second string to the ImageDraw.Draw constructor. + Added support for non-ASCII strings (Latin-1) and Unicode to the truetype font renderer. + The ImageWin "Dib" object can now be constructed directly from an image object. + The ImageWin module now allows you use window handles as well as device contexts. To use a window handle, wrap the handle in an ImageWin.HWND object, and pass in this object instead of the device context. + Improved support for 16-bit unsigned integer images (mode "I;16"). This includes TIFF reader support, and support for "getextrema" and "point" (from Klamer Shutte). + Made the BdfFontFile reader a bit more robust (from Kevin Cazabon and Dmitry Vasiliev) + Changed TIFF writer to always write Compression tag, even when using the default compression (from Greg Couch). + Added "show" support for Mac OS X (from Dan Wolfe). + Added clipboard support to the "ImageGrab" module (Windows only). The "grabclipboard" function returns an Image object, a list of filenames (not in 1.1.4), or None if neither was found. + Improved support for drawing RGB data in palette images. You can now use RGB tuples or colour names (see below) when drawing in a mode "P" image. The drawing layer automatically assigns color indexes, as long as you don't use more than 256 unique colours. + Moved self test from MiniTest/test.py to ./selftest.py. + Added support for CSS3-style color strings to most places that accept colour codes/tuples. This includes the "ImageDraw" module, the Image "new" function, and the Image "paste" method. Colour strings can use one of the following formats: "#f00", "#ff0000", "rgb(255,0,0)", "rgb(100%,0%,0%)", "hsl(0, 100%, 50%)", or "red" (most X11-style colour names are supported). See the documentation for the "ImageColor" module for more information. + Fixed DCX decoder (based on input from Larry Bates) + Added "IptcImagePlugin.getiptcinfo" helper to extract IPTC/NAA newsphoto properties from JPEG, TIFF, or IPTC files. + Support for TrueType/OpenType fonts has been added to the standard distribution. You need the freetype 2.0 library. + Made the PCX reader a bit more robust when reading 2-bit and 4-bit PCX images with odd image sizes. + Added "Kernel" class to the ImageFilter module. This class allows you to filter images with user-defined 3x3 and 5x5 convolution kernels. + Added "putdata" support for mode "I", "F" and "RGB". + The GIF writer now supports the transparency option (from Denis Benoit). + Added support for Palm pixmaps (from Bill Janssen). This change was listed for 1.1.3, but the "PalmImagePlugin" driver didn't make it into the distribution. + Improved decoder error messages. -- end -- From edreamleo@charter.net Tue May 13 13:27:06 2003 From: edreamleo@charter.net (Edward K. Ream) Date: Tue, 13 May 2003 07:27:06 -0500 Subject: ANN: Leo 3.11.1 outlining editor Message-ID: leo.py 3.11.1 is now available at: http://sourceforge.net/projects/leo/ This version fixes two bugs found in the recent 3.11 version: - Leo had startup problems on some Linux systems. - Creating clones by control dragging did not always work. This bug has existed in Leo for a long time. 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. leo.py requires Python 2.1 or above and tcl/tk 8.3 or above. leo.py works on Linux, Windows and MacOs X Jaguar. Links: ------ Leo: http://webpages.charter.net/edreamleo/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 -------------------------------------------------------------------- Edward K. Ream email: edreamleo@charter.net Leo: Literate Editor with Outlines Leo: http://webpages.charter.net/edreamleo/front.html -------------------------------------------------------------------- From dyoo@acoma.Stanford.EDU Tue May 13 17:33:28 2003 From: dyoo@acoma.Stanford.EDU (Danny Yoo) Date: Tue, 13 May 2003 16:33:28 +0000 (UTC) Subject: ANN: BayPIGgies mtg Wed May 14, 7:30pm Message-ID: BayPIGgies: Silicon Valley - San Francisco Bay Area Python Users's Group When: May 14 @ 7:30pm Where: Carnegie Institute of Washington at Stanford University, Palo Alto, CA Agenda: Compedium of talks from PyCon 2003 Speaker: Wesley Chun We will give a high-level overview of some of the talks which were given at the PyCon 2003 Python Community Conference which happened at the end of March in Washington, DC. For more information and directions, see: http://www.baypiggies.net/ From fredrik@pythonware.com Tue May 13 19:35:05 2003 From: fredrik@pythonware.com (Fredrik Lundh) Date: Tue, 13 May 2003 20:35:05 +0200 Subject: ANN: ElementTree 1.1 Message-ID: The Element type is a simple but flexible container object, designed to store hierarchical data structures, such as simplified XML infosets, in memory. The ElementTree toolkit contains an Element implementation in Python, and code to read XML and HTML files into trees of Element objects, and write them out as XML. You can get the ElementTree toolkit from: http://effbot.org/downloads#elementtree Changes in 1.1 include XML literal factory, a self-contained ElementTree module, use ASCII as default encoding, various minor speed and memory optimizations, etc. See the README file for details: http://effbot.org/downloads/index.cgi/elementtree-1.1-20030511.zip/README Brief documentation and some code samples (including an XML-RPC unmarshaller in 16 lines) are available from: http://effbot.org/zone/element-index.htm For more background, see Uche Ogbuji's xml.com article: "Simple XML Processing With elementtree" http://www.xml.com/pub/a/2003/02/12/py-xml.html enjoy /F From smulloni@smullyan.org Wed May 14 17:10:46 2003 From: smulloni@smullyan.org (Jacob Smullyan) Date: 14 May 2003 12:10:46 -0400 Subject: SkunkWeb 3.4b3 Message-ID: SkunkWeb 3.4b3 has been released. What It Is ---------- SkunkWeb is a configurable, extensible, scalable and robust high-performance multi-process Python web application server with a powerful templating system that encourages component based design. It is known to work on Linux, FreeBSD, Solaris, HPUX 11, MacOS X, and Cygwin. SkunkWeb includes services to provide, among other things, url rewriting, database connection caching, product distribution, remote component calls, usertracking, authorization, and persistent cgi. It can be used with its builtin standalone web server, with apache using the mod_skunkweb module, or with apache or another web server using a scgi, fastcgi, or cgi connector. SkunkWeb was created by Drew Csillag, and is maintained by him and me (Jacob Smullyan). What Is New ----------- This release features many performance and feature enhancements, including: * Configuration variable lookups are now *much* faster. * swpython (a Python interpreter which loads the SkunkWeb environment) can now be used in shebangs for shell scripts. * now works on HPUX 11. * many enhancements to the standalone web server (httpd service), including support for byte-range requests, Etag headers and gzip compression. * works with Python 2.3. Resources --------- Latest release: http://prdownloads.sourceforge.net/skunkweb/skunkweb-3.4b3.tar.gz Home page: http://skunkweb.sourceforge.net/ Sourceforge project page: http://sourceforge.net/projects/skunkweb/ Online documentation: http://skunkweb.sourceforge.net/docs.html Mailing list: http://sourceforge.net/mail/?group_id=32756 Two recent articles about SkunkWeb (by JS): http://opensourcedigest.com/ Cheers, Jacob Smullyan From jdhunter@nitace.bsd.uchicago.edu Wed May 14 20:38:25 2003 From: jdhunter@nitace.bsd.uchicago.edu (John Hunter) Date: Wed, 14 May 2003 14:38:25 -0500 Subject: ANN: matplotlib-0.2 matlab style plotting for python Message-ID: Announcing Matplotlib 0.2 matplotlib is a pure python plotting library designed to bring publication quality plotting to python with a syntax familiar to matlab users. Although the goal of publication quality is not yet attained, the library does produce high quality 2D plots. All of the plotting commands can be accessed either via a functional interface familiar to matlab users or an object oriented interface familiar to python users. http://matplotlib.sourceforge.net matplotlib requires python2.2, Numeric-22+ and pygtk-1.99.16, and should run anywhere those packages are available. It has been tested under linux and win32. The following matlab compatible plotting commands are provided: axes, axis, bar, close, errorbar, figure, gca, gcf, get, hist, plot, scatter, set, subplot, text, title, xlabel, ylabel What's new in 0.2 Font handling - Major improvements in font and text handling. matplotlib 0.1 drew all text in the same, non-configurable font. In 0.2, font name, size, weight, and angle, color, rotation, and more are easily configurable. See the text tutorial on the website Multiple figures -- Multiple figures supported with the figure command. See the Working with multiple figures and axes in the tutorial Interactive shell -- Interactive use from the python shell if you have pygtk compiled with threads. See Using matplotlib interactively. Saving figures- Ability to save figures in arbitrary resolution PNG or TIFF with a bug fix that caused saved figures to be corrupted by anything blocking the figure window. A GUI widget has been added to the figure toolbar to save figures and a new comand savefig has been added. Navigation - A new and hopefully improved navigation toolbar has been added that doesn't require a wheel mouse, but still works with one. See the Navigation tutorial. More examples and screenshots - New examples and screenshot illustrating the new text functionality, the new plot types, and new commands. See the examples subdirectory in the src distribution. Patches - A Patch class added for drawing patches (rectangles, polygons, circles). This supports three new plotting commands scatter, hist and bar, with more to come. New commands - New plotting commands bar, close, errorbar, figure, hist, text, scatter, savefig, ylabel. Matplotlib on sourceforge - matplotlib homepage moved to sourceforge with a (hopefully) more useful homepage. Documentation - Much better documentation and a tutorial. Refactoring - Substantial rewrite of class library. All text now handled by the AxisText class in text.py. Axis handling refactored into a dedicated class Axis defined in figure.py. From mal@egenix.com Wed May 14 21:20:07 2003 From: mal@egenix.com (M.-A. Lemburg) Date: Wed, 14 May 2003 22:20:07 +0200 Subject: ANN: eGenix mxODBC Zope Database Adapter, Version 1.0.6 Message-ID: ________________________________________________________________________ ANNOUNCEMENT EGENIX.COM mxODBC Zope Database Adapter Version 1.0.6 Available for Zope 2.3 - 2.6 on Windows, Linux and Solaris ________________________________________________________________________ INTRODUCTION The eGenix mxODBC Zope Database Adapter (Zope DA) allows you to easily connect your Zope installation to just about any database backend on the market today, giving you the reliability of the commercially supported eGenix.com product mxODBC and the flexibility of the ODBC standard as middle-tier architecture. Unlike Zope's ZODBC Zope DA, the mxODBC Zope DA works on Windows XP/NT/2000/98/95, Linux and Solaris using the same interface on all platforms. The mxODBC Zope DA implements thread-safe connection pooling and multiple physical connects per logical Zope connection. You can safely run Z SQL Methods in parallel, achieving a much better performance than ZODBC Zope DA or similar Zope database adapters under heavy load. This makes it ideal for deployment in Zope Clusters and Zope hosting environments where stability and high performance are a top priority. ________________________________________________________________________ FEATURES * Zope Level 3 Database Adapter: the mxODBC Zope DA is fully multi-threaded and can handle multiple connections to multiple databases. * Fully compatible to Z SQL Methods. * Drop-in compatible to the ZODBC DA: the mxODBC Zope DA provides the same interfaces as Zope's ZODBC DA to allow a smooth upgrade path from this simplistic adapater to the high performance mxODBC Zope DA. * Fully compatible to the Znolk SQL Wizard Product and other similar products relying on the common database schema access methods .tables() and .columns(). * Connection Pooling: physical database connections are pooled and kept open, to reduce the connection overhead to a minimum. This is especially important for high latency database connections and ones like Oracle which take a considerable amount of time to setup * Parallel Execution of Queries on a single logical connection: the mxODBC Zope DA can manage any number of physical connections on a single logical connection. This enables running truly parallel Z SQL Method queries -- a feature not available in other Zope DAs. * Robust Mode of Operation: connections which have timed out or go away due to network problems are automatically reconnected. * Cross-platform Connection Objects: The Zope DA will automatically choose the right platform specific ODBC manager for you. * Per Connection Adjustable ODBC Interface: mxODBC comes with many different subpackages to choose from on Unix. The Zope DA allows you to select these subpackages on a per-connection basis. * Per Connection Error Handling: you can tell each connection whether it should report ODBC warnings or not; furthermore all warnings and errors are made available as list .messages on the DatabaseConnection object. * Transaction safe automatic reconnect: when the DA finds that a connection has timed out, it automatically tries a reconnect and replays the transaction on the connection (unlike other DAs which break the transaction scheme by doing a reconnect without replay). * Built-in Schema Cache: this results in improved performance under heavy load. * Database Schema Access: all ODBC catalog methods are made available for much better database schema inquiry. The catalog methods allow building generic database interrogation or manipulation tools and facilitates writing database independent Zope products. * Lazy Connect: the mxODBC Zope DA only connects to the database backends when a connection is actually requested. This results in a better use of resources compared to other Zope DAs. ________________________________________________________________________ NEWS Version 1.0.6 includes the following changes and enhancements: * The lazy connect feature was turned into a per-connection option. This gives you more control over which connections are maintained in connect-on-demand state and which are always connected. * A new option was introduced to let the mxODBC Zope DA return the natively used mxDateTime values instead of converting them to Zope's DateTime instances. This is a faster if you're dealing with a lot of date/time values and also provides more flexibility in data access. See the mxDateTime documentation for full details on what this package can offer. * A bug in the version 1.0.5 lazy connect feature was fixed. In short: mxODBC Zope DA is continuing to become the number one solution for integrating relational databases with Zope applications. ________________________________________________________________________ UPGRADING If you have already bought mxODBC Zope DA licenses, you can use these license for the updated version as well. There is no need to buy new licenses. The same is true for evaluation license users. ________________________________________________________________________ MORE INFORMATION For more information on the mxODBC Zope DA, licensing and download instructions, please visit our web-site: http://www.egenix.com/ You can buy mxODBC Zope DA licenses online from the eGenix.com shop at: http://shop.egenix.com/ ________________________________________________________________________ Thank you, -- Marc-Andre Lemburg eGenix.com Professional Python Software directly from the Source (#1, May 14 2003) >>> Python/Zope Products & Consulting ... http://www.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ EuroPython 2003, Charleroi, Belgium: 41 days left From mary-python@puzzling.org Thu May 15 00:20:08 2003 From: mary-python@puzzling.org (Mary Gardiner) Date: Thu, 15 May 2003 09:20:08 +1000 Subject: Sydney, Australia: Python Interest Group: Monday 19th May Message-ID: Hi everyone, The Sydney Python Interest Group is on this Monday. Alan Green will talk about "Python Web Services using the Zolera SOAP Infrastructure". He will begin with a quick introduction to Web Services. and then move onto implementing both "quick and dirty" and "proper" web services. Date: Monday May 19th Time: 7:00pm Location: University of Technology, Sydney (UTS) Broadway campus, building 10, room 2.440 (computer lab, on the entrance level). -Mary ---- Sydney Python Interest Group meetins are announced on: * comp.lang.python.announce and python-announce-list@python.org[0] * the Australasian 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. See the PIG webpage: http://pig.slug.org.au/ for previous talks. From ahaas@airmail.net Wed May 14 23:18:03 2003 From: ahaas@airmail.net (Art Haas) Date: Wed, 14 May 2003 17:18:03 -0500 Subject: [ANNOUNCE] PythonCAD mailing list now available Message-ID: Hi. I'm pleased to announce that a mailing list for PythonCAD is now active. Visit the following page for information about subscribing to the list: http://mail.python.org/mailman/listinfo/pythoncad My thanks to Barry Warsaw for setting up the list on the Python home. Art Haas -- To announce that there must be no criticism of the President, or that we are to stand by the President, right or wrong, is not only unpatriotic and servile, but is morally treasonable to the American public. -- Theodore Roosevelt, Kansas City Star, 1918 From alan_salmoni@yahoo.com Thu May 15 13:36:02 2003 From: alan_salmoni@yahoo.com (Alan James Salmoni) Date: 15 May 2003 05:36:02 -0700 Subject: ANN: Another release of SalStat (20030513) Message-ID: Hi everyone, Just to announce a new release of the SalStat Statistics Package, the cross-platform, Python/wxPython powered application for scientific statistical analysis (version 20030513). There is a self-installing Windows binary for people who don't have Python (so why am I telling this to this list then???), and for everyone else, the source code is available. Website is: http://salstat.sunsite.dk Source code: http://salstat.sunsite.dk/salstat.20030513.zip Binary for Win32: http://salstat.sunsite.dk/salstat.20030513.setup.exe Download page: http://salstat.sunsite.dk/download.html I have also been tabled to talk about SalStat at EuroPython - I'm not exactly sure what shape the talk will be in, but I'm working on it. Hope to meet a lot of you people there! Have fun and be good! Alan. From rodrigob@elo.utfsm.cl Sat May 17 13:50:27 2003 From: rodrigob@elo.utfsm.cl (Rodrigo Benenson) Date: Sat, 17 May 2003 12:50:27 +0000 Subject: PyScilab. Scilab into Python. Release 0.0.1: Acid apple. Message-ID: PyScilab. Scilab into Python. Release 0.0.1: Acid apple. This is an inmature release oriented to programmers who could help to the development of the package. The code is functional but there are some topics missing. The source code is aviable at: http://pdilib.sf.net If you don't know what is python nor scilab http://www.scilab.org, the best free matrix computation package aviable. http://www.python.org, the best free general use scripting language aviable. README --------------------------------------------------------------- PyScilab. Rodrigo Benenson. 2003. under GPL. Release 0.0.1: THIS AN HACKER RELEASE, NOT RECOMENDED FOR END USERS The main objective are: - allow to python devellopers to use a true matrix processing system. - allow the scilab users to use they function in other contexts. - to have a true pythonic interface. The expected methods are: - init and destroy scilab sessions - create matrix, vectors, lists, (sciobjects in general) - automaticaly detect the aviable functions - offer a pythonic interface to call all of this functions - allow operators between sci objects - allow plotting The aviables methods are: - init an scilab session - create matrix, vectors, numbers - allow pythonic scilab code calls - allow pythonic scilab data retreival Example session (real example, with release 0.1): scilab = ScilabSession(SCI= os.getcwd() + '/scilab-2.7/', STAR = os.getcwd() + '/scilab.star', ) print 'setting a, and b' a = [[1,2],[3,4]] b = [[5,6],[7,8]] scilab['a'] = a scilab['b'] = b print 'a:', scilab.get('a') print 'b:', scilab.get('b') print print 'calling "c= a + b"' scilab.call('c= a + b') print 'Obtaining the result' print 'c : ', scilab['c'] print print 'calling "c= a * b"' scilab.call('c= a * b', a= [5,3], b= 2) print 'c : ', scilab['c'] print print 'calling "e= svd(a), a = [1,2;3,4]"' scilab.call('e= svd(a)', a= a) print 'Obtaining the result' print 'e:', scilab['e'] print returns [rodrigob@localhost pyscilab]$ python2.2 ./pyscilab.py PyScilab test. ========== scilab-2.7 Copyright (C) 1989-2003 INRIA/ENPC ========== Starting with exec("/home/rodrigob/projets/pyscilab/scilab.star",-1);quit; Startup execution: loading initial environment setting a, and b a: [[ 1. 2.] [ 3. 4.]] b: [[ 5. 6.] [ 7. 8.]] calling "c= a + b" Obtaining the result c : [[ 6. 8.] [ 10. 12.]] calling "c= a * b" c : [[ 10.] [ 6.]] calling "e= svd(a), a = [1,2;3,4]" Obtaining the result e: [[ 5.4649857 ] [ 0.36596619]] Know bugs: - Any window invoking function should crash the python (please fix it!) - The instalation is tricky and will probably fail - If the objects are not matrix, vectors or numbers, everything crash Feedback: This realease is an acid green apple. Please, help us, report a succesfull compilation, report an unsuccesfull compilation, hack the setup.py to be more flexible, hack the code to allow plotting, report a successfull usage or just say hello. Please fell free to mail any feedback at rodrigob at elo dot utfsm dot cl Other notes: The development is made using Leo, the outline editor. http://leo.sf.net Look at the pyscilab.leo file for more info. From nieder@mail.ru Sun May 18 02:57:36 2003 From: nieder@mail.ru (Ricardo Niederberger Cabral) Date: Sat, 17 May 2003 22:57:36 -0300 Subject: ANN: imgSeek 0.7.1 Message-ID: imgSeek ------- imgSeek is a photo collection manager and viewer with content-based search and many other features. The query is expressed either as a rough sketch painted by the user or as another image you supply (or an image in your collection). You may also do slideshows, generate web photo albums, edit image metadata including EXIF and IPTC data, organize images into a keyword hierarchy and have images clustered automatically by color, content, date or filename for easy browsing. Changes ------- This release comes with a few bug fixes, new similarity grouping methods, improved thumbnail browsing and lossless rotation using jpegtran. Requires -------- - Python 2.2.x, QT 3.x and PyQT 3.5. (3.4 should work) - ImageMagick development files or QT development files. Recommended: - Python Imaging Library. Links ----- Download: http://prdownloads.sourceforge.net/imgseek/imgSeek-0.7.1.tar.bz2 http://prdownloads.sourceforge.net/imgseek/imgSeek-0.7.1-1.i386.rpm Homepage: http://imgseek.sourceforge.net/ Screenshots: http://imgseek.sourceforge.net/sshot/ Complete ChangeLog: http://imgseek.sourceforge.net/changelog.html Best regards, -- rnc From jan@jandecaluwe.com Mon May 19 09:27:27 2003 From: jan@jandecaluwe.com (Jan Decaluwe) Date: Mon, 19 May 2003 10:27:27 +0200 Subject: ANNOUNCE: MyHDL 0.2 Message-ID: "Write your HDL test benches in Python!" I am happy to announce the release of MyHDL 0.2, a Python package for using Python as a hardware description & verification language. You can find it at http://jandecaluwe.com/Tools/MyHDL/Overview.html. MyHDL 0.2 --------- MyHDL is a Python package for using Python as a hardware description language. Popular hardware description languages, like Verilog and VHDL, are compiled languages. Python with MyHDL can be viewed as a "scripting language" counterpart of such languages. However, Python is more accurately described as a very high level language (VHLL). MyHDL users have access to the amazing power and elegance of Python for their modeling work. The key idea behind MyHDL is to use Python generators to model the concurrency required in hardware descriptions. As generators are a recent Python feature, MyHDL requires Python 2.2.2 or higher. MyHDL can be used to experiment with high level modeling, and with verification techniques such as unit testing. The most important practical application however, is to use it as a hardware verification language by co-simulation with Verilog and VHDL. The present release, MyHDL 0.2, enables MyHDL for co-simulation. The MyHDL side is designed to work with any simulator that has a PLI. For each simulator, an appropriate PLI module in C needs to be provided. The release contains such a module for the Icarus Verilog simulator. -- Jan Decaluwe - Resources bvba Losbergenlaan 16, B-3010 Leuven, Belgium mailto:jan@jandecaluwe.com http://jandecaluwe.com From gmcm@hypernet.com Mon May 19 15:10:55 2003 From: gmcm@hypernet.com (Gordon McMillan) Date: Mon, 19 May 2003 10:10:55 -0400 Subject: ANN: Installer 5b5 Message-ID: Announcing version 5b5 of Installer: http://www.mcmillan-inc.com/installer_dnld.html Changes in 5b5: Bug fixes: * Works with Python 2.3 * A --onefile always uses a temporary directory (no conflicts between multiple copies) * A --onefile cleans up under any but the most extreme circumstances * reload works properly Enhancements: * Can UPX your executables (and DLLs on Windows), if installed. * Improved COM Server support from Mark Hammond. Platforms: Windows Linux Unix (relying on volunteers) Python versions: Python 1.5 to 2.3 What is it: The Installer package is any easy way to deploy Python apps to systems without Python installed (or with incompatible Pythons installed). Installer support single-file and single-directory deployments. On Windows, Installer supports COM, including in-process COM servers. License: MIT style. Contact: gmcm@hypernet.com

Installer Release 5b5/A>Easy Python app deployment. (19-May- 2003). From mwh@python.net Mon May 19 17:43:18 2003 From: mwh@python.net (Michael Hudson) Date: 19 May 2003 17:43:18 +0100 Subject: EuroPython: Less than two weeks to go for Early Bird registration! Message-ID: EuroPython 2003 is on the way! We have a tremendous selection of over seventy (!) talks available for you in the three days at EuroPython: This includes a wide selection of Zope talks across all three days as well -- so if you are interested in Zope, don't miss the largest Zope event ever. Here is more information about the schedule: To make sure you are part of this exciting event, register today! The early bird rate of 200 Euros is available until May 31st -- less than two weeks from today. You can review the rates and register here: From jxri2000@yahoo.co.uk Tue May 20 11:28:46 2003 From: jxri2000@yahoo.co.uk (JXRI) Date: 20 May 2003 03:28:46 -0700 Subject: For all those in theUK Message-ID: Team, Linux World 2003 in Birmingham (that's UK, not Alabama), has a Python pavillion ... check out http://www.linuxworld2003.co.uk. Anyone going? JXRI From pythonguy@Hotpop.com Tue May 20 12:31:55 2003 From: pythonguy@Hotpop.com (Anand Pillai) Date: 20 May 2003 04:31:55 -0700 Subject: Pider 0.8 beta Message-ID: PIDER is an experimental webcrawler written in python using urllib2. It uses python's HTMLParser for parsing webpages. PIDER is released under a GNU kind of license. You are free to download the source, use it and extend it, as long as you maintain the original copyright. The program has been tested on Windows NT/Window 2000 on python 2.2. URL: http://members.fortunecity.com/anandpillai If you like the program or just plain want to criticise it, drop a mail. I am always looking forward to improving my python skills :-) Thanks !!! The 'Python Guy', Anand Pillai From tbryan@python.net Wed May 21 12:36:32 2003 From: tbryan@python.net (Tom Bryan) Date: Wed, 21 May 2003 11:36:32 GMT Subject: TriZPUG May Meeting: ReportLab - PDF made easy Message-ID: TriZPUG May Meeting: ReportLab - PDF made easy The Triangle Zope/Python User Group (TriZPUG) will hold its next meeting on Wednesday, May 28, at 6:30 p.m. in Raleigh, NC. We will be meeting in the DELTA conference room(s) at Venture III, who has kindly permitted us to use their meeting room, on NCSU's Centennial Campus. Directions to Venture III are below. Ian Sparks will be giving a talk on the ReportLab library. Hope to see you there! Title: ReportLab - PDF made easy ================================ Reportlab is a python library for the creation of Adobe Portable Document Format (PDF) documents. This talk introduces the foundation of the library: the canvas object. We'll start with canvas primitives : drawing, writing text, importing graphics etc and go on to examine how the canvas exposes some of PDFs special capabilities. Finally we'll take a look at PLATYPUS (Page Layout and Typography Using Scripts), a high-level library built on the canvas which makes creating complex documents a breeze. Directions to the TriZPUG Meeting: ================================== If you need directions to NCSU's Centennial Campus, try the following link http://centennial.ncsu.edu/howtogethere/htgh.htm If you need directions to the Venture III building, follow this link http://lts.ncsu.edu/about/venture3.html, but skip step #3 since the meeting is after hours. For more about TriZPUG: ======================= Web page http://dev.zope.org/Members/tbryan/TriZPUG/FrontPage Mailing list http://starship.python.net/mailman/listinfo/triangle-zpug From knight@baldmt.com Thu May 22 04:50:34 2003 From: knight@baldmt.com (Steven Knight) Date: Wed, 21 May 2003 22:50:34 -0500 (CDT) Subject: ANNOUNCE: SCons.0.14 adds Java support, Autoconf-like functionality Message-ID: SCons is a software construction tool (build tool, or make tool) written in Python. It is based on the design which won the Software Carpentry build tool competition in August 2000. Version 0.14 of SCons has been released and is available for download from the SCons web site: http://www.scons.org/ Or through the download link at the SCons project page at SourceForge: http://sourceforge.net/projects/scons/ RPM and Debian packages and a Win32 installer are all available, in addition to the traditional .tar.gz and .zip files. This release most notably adds support for Java builds (javac, javah, rmic and jar), and adds Autoconf-like functionality for finding #include files and libraries. It also adds significant performance improvements over previous versions. WHAT'S NEW IN THIS RELEASE? IMPORTANT: Release 0.14 contains the following interface changes: - Tool specifications no longer take a "platform" argument. - Emitter functions in Builders are now passed Node objects, not strings, for all targets and sources. - New TargetSignatures() and SourceSignatures() functions have been added to replace SetBuildSignatureType() and SetContentSignatureType(). - The Export() function and the exported variables argument of SConscript() now search for variables using the same rules as Python: local first, then global. - The SetJobs() and GetJobs() functions have been deprecated in favor of using SetOption('num_jobs', num) and GetOption('num_jobs'). - Callable expansions of construction variables in a command line now take a fourth "for_signature" argument that is set when the expansion is being called to generate a build signature. - Construction variables for building a target are now frozen when the Builder is called; later changes to the Environment do not necessarily affect how the target is build. See the release notes for more information about these changes. This release adds the following features: - Support for the Java tools javac, javah, rmic and jar has been added. - A Configure() function has been added that supports a lot of functionality similar to Autoconf. - A new PLATFORM construction variable stores a string representing the platform on which SCons is being run. - Dependencies may now be specified on in-core Python values. - Help text can now be sorted arbitrarily. - New $TARGET and $SOURCE attributes: ".posix" expands to a path name with forward slashes as separators, even on Win32 systems; ".srcpath" expands to a path to the source of a file in a BuildDir; ".srcdir" expands to a path to the BuildDir itself. - A new clear() method resets a Node's state for re-use by continuous integration build interfaces. - Support for using Ghostscript to convert Postscript to PDF files has been added. - A stand-alone "Alias" function has been added. - Import('*') will now import everything that's been Export()ed. - New SetOption() and GetOption() functions support setting and fetching various command-line options within an SConscript file. - The Tool() function now adds tool names to a $TOOLS variable, which may be used to examine what tools are available. - The C preprocessor "#import" statement is now supported. - Newly-built .dll files can now be registered with the Windows registry using regsvr32. - An IDL scanner has been added. - A builder for Windows type library (.tlb) files from IDL files. The following fixes have been added: - Cygwin fixes: Use the .dll extension for shared libraries; don' use -fPIC when compiling shared libraries; use 'rm' to remove files; use MSVC '@' syntax for linking long command-lines. - The SYSTEMROOT environment variable on Win32 systems is now automatically propagated to the execution ENV environment. - Remote CVS file names are now checked out using Posix-style path names. - Trying to expand an out-of-range subscript for a construction variable like $TARGETS or $SOURCES now interpolates the null string. - SCons now correctly links or duplicates files in subsidiary BuildDir() directories. - SCons now reports "Cleaning targets ..." when the -c option is used. - The "Entering directory" message now quotes the directory name exactly like Make does. - Export() now works correctly for local Python variables, and can accept a dictionary as an argument. - PDB files now get put in a BuildDir() correctly. Performance has been improved as follows: - Unnecessary redundant signature calculations for command lines and Nodes have been eliminated. Development tests suggest this may speed up builds up to 30% or more. ABOUT SCONS Distinctive features of SCons include: - a global view of all dependencies; no multiple passes to get everything built properly - configuration files are Python scripts, allowing the full use of a real scripting language to solve difficult build problems - a modular architecture allows the SCons Build Engine to be embedded in other Python software - the ability to scan files for implicit dependencies (#include files); - improved parallel build (-j) support that provides consistent build speedup regardless of source tree layout - use of MD5 signatures to decide if a file has really changed; no need to "touch" files to fool make that something is up-to-date - easily extensible through user-defined Builder and Scanner objects - build actions can be Python code, as well as external commands An scons-users mailing list is available for those interested in getting started using SCons. You can subscribe at: http://lists.sourceforge.net/lists/listinfo/scons-users Alternatively, we invite you to subscribe to the low-volume scons-announce mailing list to receive notification when new versions of SCons become available: http://lists.sourceforge.net/lists/listinfo/scons-announce ACKNOWLEDGEMENTS Thanks to Chad Austin, Allen Bierbaum, Steve Christensen, Charles Crain, Damyan Pepper, Stefan Reichor, Anthony Roach, Greg Spencer, and Christoph Wiedemann for their contributions to this release. Special thanks to David Snopek for donating base code for the new Config functionality that had been originally written under a different license. On behalf of the SCons team, --SK From terry@wayforward.net Thu May 22 05:45:34 2003 From: terry@wayforward.net (Terence Way) Date: Thu, 22 May 2003 00:45:34 -0400 Subject: ANN: Design By Contract for Python 1.0 beta 1 Message-ID: Announcing Design By Contract for Python 1.0 beta 1 Design by Contract is familiar to anyone who has spent time with the Eiffel programming language. This implementation is a cross between full Eiffel-style contracts and the doctest module. Contracts are high-level assertions that are part of the program's documentation. Modules and classes have invariants, expressions that must be true at the start and end of every public function or method call. Methods and functions have pre-conditions, expressions that must be true on entry; and post-conditions, expressions that must be true on exit. http://www.wayforward.net/pycontract/ This version supports the full contract feature set: * pre: expressions in function and method docstrings; * post: expressions in function and method docstrings; * inv: expressions in class and module docstrings; * post: expressions can access __old__ values and the __return__ value; * pre: expressions are weakened by derived methods; and * post: and inv: expressions are tightened by derived classes.

Contract 1.0 beta1 - Design By Contract for Python. (21-May-03) From altis@semi-retired.com Thu May 22 19:29:08 2003 From: altis@semi-retired.com (Kevin Altis) Date: Thu, 22 May 2003 11:29:08 -0700 Subject: final day for Python 11 - OSCON 2003 early bird registration Message-ID: The deadline for Python 11 - OSCON 2003 early bird registration is May 23rd, 2003. If you're planning to attend, save yourself some money and register today! You can save up to $400 when you register by May 23rd for the Python 11/OSCON 2003 conference. All of the discounts listed at the bottom of the registration page are in addition to the early bird discount. The early bird discount is (obviously) time-limited, but the others are not. http://conferences.oreillynet.com/pub/w/23/register.html The conference will be held July 7-11, 2003 in Portland, Oregon, USA. http://conferences.oreillynet.com/os2003/ I've started a wiki page that has direct links to all the Python pages on the OSCON site. http://www.python.org/cgi-bin/moinmoin/Python11 ka --- Kevin Altis, Python 11 co-chair altis@semi-retired.com http://altis.pycs.net/ http://www.pythoncard.org/ From stuff@nonpoint.mailzilla.net Thu May 22 19:58:04 2003 From: stuff@nonpoint.mailzilla.net (Phil) Date: 22 May 2003 11:58:04 -0700 Subject: Kodos 1.5 - Python regular expression debugger Message-ID: Kodos 1.5 has been released and is available at: http://kodos.sourceforge.net Changes since 1.3: - New feature: examine regex has been added. The examine feature is useful in the event when a regex that you have been editing no longer matches the text string. In some instances you may have inadvertantly added a character. Normally, the only indication that you have that the regex doesn't match is the status bar indicator. Although this alone may be useful, Kodos provides the examine feature to help pinpoint errors. By examining the regex, Kodos will locate the longest possible match by scanning the current regex. - Bug fixes: the clear all option behaves better - Help: the help section has been redone. About Kodos: Kodos is a regular expression designer, tester, debugger and validator that allows a developer to create and modify regular expressions against a test string. The intuitive grahpical interface allows the developer the ability to modify the regular expression (regex) and to see the effects against their test string in real-time. Key Features: - Matches can be easily viewed and each match can be seen distinctly - Regex groups and named groups are clearly displayed - Sample source code is shown so even python developers new to regular expressions can quickly add the produced regular expressions to their own projects. - Ability to load and save your test cases - Kodos relies on PyQt for the GUI elements. http://kodos.sourceforge.net From fmc@inf.ufg.br Thu May 22 20:12:19 2003 From: fmc@inf.ufg.br (Fabio M. Costa) Date: Thu, 22 May 2003 16:12:19 -0300 Subject: Middleware2003: 16-20 June: Call for Participation Message-ID: This is a multi-part message in MIME format. --------------020100020208080004020705 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Please see the attached Call for Participation. Our apologies if you receive multiple copies. --------------020100020208080004020705 Content-Type: text/plain; name="call-for-part.txt" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="call-for-part.txt" CALL FOR PARTICIPATION ACM/IFIP/USENIX INTERNATIONAL MIDDLEWARE CONFERENCE Rio de Janeiro, Brazil, 16-20 June 2003 http://middleware2003.inf.puc-rio.br Come to Rio to participate in the premier event on Middleware research and technology in 2003. Researchers, industrialists, and experts from all over the world will get together to present and discuss the recent advancements in Distributed Object Systems, Internet Technologies, and Middleware Platforms. Following the success of past conferences in this series (Lake District/UK, 1998, Palisades/NY, 2000, and Heidelberg/Germany, 2001), Middleware'2003 will host a very strong technical papers track featuring state of the art research in the field, as well as high-quality advanced workshops and a number of tutorials by technology experts. The conference will also include work-in-progress and posters sessions as well as social events. The location, Rio de Janeiro, is known as one of South America´s most outstanding areas of natural and historical beauty. REGISTRATION ============ Register online until May 15th and receive an early registration discount. For registration information visit http://middleware2003.inf.puc-rio.br/registration.htm TECHNICAL SESSIONS ================== A very strong technical papers track will feature state of the art research in the field (http://middleware2003.inf.puc-rio.br/programstruct.htm). Work-in-progress and Posters sessions will show promising ongoing work and experience reports. TUTORIALS ========= High quality tutorials by industry and university experts http://middleware2003.inf.puc-rio.br/tutorials.htm 1) J2EE vs. .NET Michael Stal Siemens AG, Corporate Technology, Munich, Germany 2) Peer-to-Peer Technologies Vana Kalogeraki University of California, Riverside, California, USA 3) Realization of Distributed Applications using MDA and the CORBA Component Model Marc Born and Tom Ritter Fraunhofer FOKUS, Berlin, Germany Phillipe Merle Unversity of Lille, Villeneuve d'Ascq, France 4) Object-Oriented Middleware and Components for the Grid Denis Caromel University of Nice Sophia Antipolois, France Christian Perez INRIA, France 5) Advanced Publish/Subscribe Services Alexander L. Wolf and Antonio Carzaniga University of Colorado, Boulder, Colorado, USA 6) Network and Web Services Security Concepts Using Java Raghavan N. Srinivas Sun Microsystems Inc., USA WORKSHOPS ========= 1) Middleware for Pervasive and Ad-Hoc Computing http://www.smartlab.cis.strath.ac.uk/MPAC/ 2) Reflective and Adaptive Middleware Systems http://tao.doc.wustl.edu/~corsaro/RM2003/ 3) Middleware for Grid Computing http://virtual01.lncc.br/mgc2003 4) Model-driven Approaches to Middleware Applications Development (MAMAD) http://www.dstc.edu.au/mamad-2003/ ORGANIZATION ============ General Chair: Carlos J.P. Lucena (PUC-Rio, Brazil) Program co-Chairs: Douglas Schmidt (Vanderbilt University, USA) Markus Endler (PUC-Rio, Brazil) Local Arrangements co-Chairs: Alexandre Sztajnberg (UERJ, Brazil) Renato Cerqueira (PUC-Rio, Brazil) WiP and Posters Chair: Guruduth S. Banavar (IBM T.J. Watson, USA) Advanced Workshops Chair: Gordon Blair (Lancaster University, UK) Tutorials Chair: Frank Buschmann (Siemens AG, Germany) Publicity co-Chairs: Fabio Costa (UFG, Brazil) Fabio Kon (IME-USP, Brazil) FOR MORE INFORMATION ==================== For further information, please visit the conference home page: http://middleware2003.inf.puc-rio.br If you have any question contact the local arrangements chairs, Alexandre Sztajnberg (alexszt@uerj.br) or Renato Cerqueira (rcerq@inf.puc-rio.br). Middleware'2003 is partially sponsored by Sony and IBM. We hope to see you in Rio in June! --------------020100020208080004020705-- From barry@python.org Fri May 23 04:30:45 2003 From: barry@python.org (Barry Warsaw) Date: Thu, 22 May 2003 23:30:45 -0400 Subject: RELEASED Python 2.2.3c1 Message-ID: I'm happy to announce the release of Python 2.2.3c1 (release candidate 1). This is a bug fix release for the stable Python 2.2 code line. Barring any critical issues, we expect to release Python 2.2.3 final by this time next week. We encourage those with an interest in a solid 2.2.3 release to download this candidate and test it on their code. The new release is available here: http://www.python.org/2.2.3/ Python 2.2.3 has a large number of bug fixes and memory leak patches. For full details, see the release notes at http://www.python.org/2.2.3/NEWS.txt There are a small number of minor incompatibilities with Python 2.2.2; for details see: http://www.python.org/2.2.3/bugs.html Perhaps the most important is that the Bastion.py and rexec.py modules have been disabled, since we do not deem them to be safe. 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 or Linux RPMs are available, although I expect them to appear soon after 2.2.3 final is released. On behalf of Guido, I'd like to thank everyone who contributed to this release, and who continue to ensure Python's success. Enjoy, -Barry From h.goebel@goebel-consult.de Sat May 24 12:59:01 2003 From: h.goebel@goebel-consult.de (Hartmut Goebel) Date: Sat, 24 May 2003 13:59:01 +0200 Subject: ANN: managesieve 0.2 Message-ID: Announcing: managesieve ============= Version 0.2 A MANGAGESIEVE client library for remotely managing Sieve scripts, including an interactive 'sieveshell'. This module allows accessing a Sieve-Server for managing Sieve scripts there. For more information about the MANAGESIEVE protocol see draft http://www.ietf.org/internet-drafts/draft-martin-managesieve-04.txt . What is MANAGESIEVE? -------------------- Sieve scripts allow users to filter incoming email. Message stores are commonly sealed servers so users cannot log into them, yet users must be able to update their scripts on them. This module implements a protocol "managesieve" for securely managing Sieve scripts on a remote server. This protocol allows a user to have multiple scripts, and also alerts a user to syntactically flawed scripts. This an interim measure as it is hoped that eventually Sieve scripts will be stored on ACAP. Availablity ----------- 'managesieve' is available for download at http://www.crazy-compilers.com/py-lib/managesieve.html Requirements ------------ Requires Python >= 2.0 Not yet implemented ------------------- - Only athentication method LOGIN is currently supported. - STARTTLS is not yet implemented. - sieve-names are only quoted dump (put into quotes, but no escapes yet). Copyright/License ----------------- (C) Copyright 2003 by Hartmut Goebel License: Python Software Foundation License http://www.opensource.org/licenses/PythonSoftFoundation.html License for 'sieveshell' and test suite: GPL http://www.opensource.org/licenses/gpl-license.php Credits ------- Based on Sieve.py from Ulrich Eck which is part of of 'ImapClient' (see http://www.zope.org/Members/jack-e/ImapClient), a Zope product. Some ideas taken from imaplib written by Piers Lauder et al. From manish.j@gmx.net Sun May 25 04:27:41 2003 From: manish.j@gmx.net (Manish Jethani) Date: 24 May 2003 20:27:41 -0700 Subject: msnp.py: MSN messaging in Python Message-ID: http://msnp.sourceforge.net/ msnp.py is an implementation of the latest MSN Messenger protocol (currently, version 7) in object-oriented Python. Current Release: v0.2 v0.2 Features * Login; logout * Presence states (online, away, etc.) * Syncing of friend lists * Chat conversations (start, join, leave) * Instant messages * Typing notifications * HTTP proxy (tunnelling) support -- Manish Jethani (manish.j at gmx.net) phone (work) +91-80-51073488 From drifty@bigfoot.com Fri May 23 22:05:10 2003 From: drifty@bigfoot.com (Brett C.) Date: 23 May 2003 14:05:10 -0700 Subject: python-dev Summary for 2003-05-01 through 2003-05-15 Message-ID: +++++++++++++++++++++++++++++++++++++++++++++++++++++ python-dev Summary for 2003-05-01 through 2003-05-15 +++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from May 1, 2003 through May 15, 2003. It is intended to inform the wider Python community of on-going developments on the list and to have an archived summary of each thread started on the list. To comment on anything mentioned here, just post to python-list@python.org or `comp.lang.python`_ with a subject line mentioning what you are discussing. All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on something. And if all of this really interests you then get involved and join `python-dev`_! This is the seventeenth summary written by Brett Cannon (going to grad school, baby!). All summaries are archived at http://www.python.org/dev/summary/ . Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sf.net/rst.html . Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo =); you can safely ignore it, although I suggest learning reST; its simple and is accepted for `PEP markup`__. Also, because of the wonders of programs that like to reformat text, I cannot guarantee you will be able to run the text version of this summary through Docutils_ as-is unless it is from the original text file. __ http://www.python.org/peps/pep-0012.html The in-development version of the documentation for Python can be found at http://www.python.org/dev/doc/devel/ . To view files in the Python CVS online, go to http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/ . .. _python-dev: http://www.python.org/dev/ .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. contents:: .. _last summary: http://www.python.org/dev/summary/2003-04-16_2003-04-30.html ====================== Summary Announcements ====================== So, to help keep my sanity longer than my predecessors I am no longer going to link to individual modules in the stdlib nor to files in CVS. It sucks down a ton of time and at least Raymond Hettinger thinks it clutters the summaries. Along the lines of the look of the summaries, I am trying out a new layout for listing splinter threads. If you have a preference in comparison to the old style or new style speak up and let me know. ========================== `Dictionary sparseness`__ ========================== __ http://mail.python.org/pipermail/python-dev/2003-May/035295.html Splinter threads: `Where'd my memory go?`__ __ http://mail.python.org/pipermail/python-dev/2003-May/035340.html After all the work Raymond Hettinger did on dictionaries he suggested two possible methods on dictionaries that would allow the programmer to control how sparse (at what point a dictionary doubles its size in order to lower collisions) a dictionary should be. Both got shot down on the grounds that most people would not know how to properly use the methods and are more likely to shoot themselves in the foot than get any gain out of them. There was also a bunch of talk about the "old days" when computers were small and didn't measure the amount of RAM they had in megabytes unless they were supercomputers. But then the discussion changed to memory footprints. There was some mention of the extra output one can get from a special build (all listed in Misc/SpecialBuilds.txt) such as Py_DEBUG. But the issue at hand is that there int, float, and frameobject free lists which keep alive any and all created constant values (although the frameobject is bounded in size). This is why if you do ``range(2000000)`` you won't get the memory allocated for all of those integers back until you shut down the interpreter. This led to the suggestion of just doing away with the free lists. There would be a performance hit since numerical constants would have to be reallocated if they are constantly created deleted, and then created again. It was also suggested to limit the size of the free lists and basically chop off the tail if they grew too large. But it turns out that the memory is allocated in large blocks that are chopped up by intobject.c. Thus there is no way to just get rid of a few entries without taking out a whole block of objects. ================================= `__slots__ and default values`__ ================================= __ http://mail.python.org/pipermail/python-dev/2003-May/035575.html Ever initialized a variable in a class that uses __slots__? If you have you may have discovered that the variable becomes read-only:: class Parrot(object): __ slots__ = ["dead"] dead = True bought_bird = Parrot() bought_bird.dead = False That raises an AttributeError saying that 'dead' is read-only. This occurs because the class attribute "overrides the descriptor created by __slots__" and "now appears read-only because there is no instance dict" thanks to __slots__ suppressing the creation of one. But don't go using this trick! If you want read-only attributes use a property with its set function set to raise an exception. If you want to avoid this problem just do your initialization of attributes in the __init__ call. You can also include __dict__ in __slots__ and then your instances will have a fully functioning instance __dict__ (new in 2.3). The key thing to come away with this twofold. One is the resolution order of attribute lookup when __slots__ is used which class/type and then the instances __slots__ attributes only if the class/type hierarchy did not turn up a data descriptor. The other is that __slots__ is meant purely to cut down on memory usage, nothing more. Do not start abusing it with little tricks like the one mentioned above or Guido will pull it from the language. ========= Quickies ========= `Draft of dictnotes.txt`__ After all the work Raymond Hettinger did to try to speed up dictionaries, he wrote a text file documenting everything he tried and learned. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035246.html `_socket efficiencies ideas`__ This thread was first covered in the `last summary`_. Guido discovered that the socket module used to special-case receiving a numeric address in order to skip any overhead in bother to resolve the IP address. It has been put back into the code. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035248.html `Demos and Tools in binary distributions`__ Jack Jansen asked where other platform-specific binary distributions of Python put the Demo and Tools directories. The thread ended with the winning solution be putting them in /Applications/Python2.3/Extras/ so they are a level below the root directory to prevent newbies from getting overwhelmed by the code there since it is not all simple. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035252.html `updated notes about building bsddb185 module`__ Splinter threads: - `bsddb185 module changes checked in`__ Someone wanted the bsddb185 module back. Initially it was suggested to build that module as bsddb if the new bsddb3 module could not be built (since that module currently gets named bsddb). The final outcome was that bsddb185 will get built under certain conditions and be named bsddb185. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035257.html __ http://mail.python.org/pipermail/python-dev/2003-May/035409.html `broke email date parsing`__ ... but it got fixed. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035259.html `New thread death in test_bsddb3`__ This is a continuation from the `last summary`_. You can create as many thread states as you like as long as you only use one at any given point. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035230.html `removing csv directory from nondist/sandbox - how?`__ Joys of CVS. You can never removed a directory unless you have direct access the the physical directory on the CVS root server. The best you can do is to empty the directory (make sure to get files named ".*") and assume people will do an ``cvs update -dP``. You can also remove the empty directories locally by hand if you like. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035270.html `posixmodule.c patch to support forkpty`__ A patch was sent to python-dev incorrectly that tries to get os.forkpty to work on more platforms. It is now up on SourceForge_ and it is `patch #732401 `__. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035281.html .. _SourceForge: http://www.sf.net/projects/python `Timbot?`__ There is a real Timbot robot out there: http://www.cse.ogi.edu/~mpj/timbot/#Programming . .. __: http://mail.python.org/pipermail/python-dev/2003-May/035287.html `optparse docs need proofreading`__ What the 'subject' says. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035288.html `heaps`__ This is a continuation of a thread from the `last summary`_. Lots of talk about heaps, priority queues, and other theoretical algorithm talk. It was felt that a more thorough API to allow for more fancy heap implementations would be helpful than what heapq provides. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035343.html Weekly Python Bug/Patch Summary First one ended on `2003-05-04 `__. The second one ended on `2003-05-11 `__. `Distutils using apply`__ Since Distutils must be kept backwards-compatible (as stated in `PEP 291`_), it still uses 'apply'. This raises a PendingDeprecation warning which is normally silent unless you want all warnings raised. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035293.html .. _PEP 291: http://www.python.org/peps/pep-0291.html `How to test this?`__ Dummy files can be checked into Lib/test . .. __: http://mail.python.org/pipermail/python-dev/2003-May/035318.html `Windows installer request...`__ Someone wanted the default drive on the Windows installer to be your boot drive and not C. It has been fixed. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035319.html `Election of Todd Miller as head of numpy team`__ What the 'subject' says. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035326.html `Startup time`__ Guido noticed that although Python 2.3 is already faster than 2.2, its startup time is slower. It looks like it is from failing stat calls. Speeding this all up is still being worked on. Prime suspects are the importation of codecs and re. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035359.html `testing with and without pyc files present`__ Why does ``make test`` delete all .pyc and .pyo files before running the regression tests? To act as a large scale test of the marshaling code. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035362.html `pyconfig.h not regenerated by "config.status --recheck"`__ ``./config.status --recheck`` doesn't work too well. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035366.html `Python Technical Lead, New York, NY - 80-85k`__ Wrong place for a job announcement. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035369.html `RedHat 9 _random failure under -pg`__ gcc ain't perfect. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035386.html `SF CVS offline`__ ... but it came back up. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035398.html `Microsoft speedup`__ It was noticed that turning on more aggressive inlining for VC6 sped up pystone by 2.5% while upping the executable size by 13%. Tim Peters noted that "A couple employers ago, we disabled all magical inlining options, because sometimes they made critical loops faster, and sometimes slower, and you couldn't guess which as the code changed". .. __: http://mail.python.org/pipermail/python-dev/2003-May/035454.html `Relying on ReST in the core?`__ Although docutils_ is not in the core yet, it is being used more and more. But is this safe? As long as it's kept conservative and not required anywhere, yes. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035465.html `Make _strptime only time.strptime implementation?`__ As long as no one complains to loudly by 2.3b2, _strptime.strptime will become the exclusive implementation of time.strptime. _strptime.strptime also learned how to recognize UTC and GMT as timezones. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035481.html `Building Python with .NET 2003 SDK`__ Logistix was nice enough to try to build Python on .NET 2003 and post notes on how he did it at http://www.cathoderaymission.net/~logistix/python/buildingPythonWithDotNet.html . .. __: http://mail.python.org/pipermail/python-dev/2003-May/035485.html `local import cost`__ Trying to find out how the cost of doing imports in the local namespace costs compared to doing it at the global level. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035486.html `Subclassing int?`__ This thread started `two summaries ago `__. Subclassing int to make it mutable just doesn't work. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035500.html `patch 718286`__ Originally this summary was just going to be "The patch was applied". But no! Some of you actually want to know the patch is about. Geez! Isn't knowing that one more patch was closed enough for you people?!? I guess not! Well, the patch added support for the DESTDIR variable for auto-generated makefiles. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035538.html `Need some patches checked`__ Some patches needed to be cleared by more senior members of python-dev since they were being handled by the young newbie of the group. Jeremy Hylton also mentioned that a full-scale refactoring of urllib2 is needed and would allow the closure of some patches. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035540.html `os.path.walk() lacks 'depth first' option`__ Splinter threads: - `os.walk() silently ignores errors`__ This thread started in the `last summary`_. LookupError exists and subclasses both IndexError and KeyError. Rather handy when you don't care whether you are dealing with a list or dictionary but do care if what you are looking for doesn't exist. os.walk also gained a parameter argument called onerror that takes a function that will be passed any exception raised by os.walk as it does its thing; previously os.walk ignored all errors. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035546.html __ http://mail.python.org/pipermail/python-dev/2003-May/035574.html `Random SF tracker ettiquete questions`__ Does python-dev care about dealing with RFEs? Sort of; it isn't a priority like patches and bugs, but cleaning them out once in a while doesn't hurt. Is it okay to assign a tracker item to yourself even if it is already assigned to another person? If the original person it was assigned to is not actively working on it, then yes. When should someone be put into the Misc/ACKS file? When they have done something that required some amount of brain power (yes, this includes one-line patches); some people, though, think it should take more. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035549.html `codeop: small details (Q); commit priv request`__ Some issues with codec were worked out and Samuele Pedroni got commit privileges. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035556.html `Python 2.3b1 _XOPEN_SOURCE value from configure.in`__ Python.h should always be included in extension modules first before any other header files. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035560.html `Inplace multiply`__ Someone thought they had found a bug. Michael Hudson thought it was an old bug that was fixed. How did it end? Beats the heck out of me. =) .. __: http://mail.python.org/pipermail/python-dev/2003-May/035591.html `sf.net/708007: expectlib.py telnetlib.py split`__ A request for people to look at http://www.python.org/sf/708007 . .. __: http://mail.python.org/pipermail/python-dev/2003-May/035605.html `Simple dicts`__ Tim Peters suggested that if someone wanted something to do they could try re-implementing dicts to using chaining instead of open addressing. It turns out Damien Morton (who did a ton of work trying to optimize Python's bytecode) is working on an immplementation. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035625.html `python/dist/src/Lib warnings.py,1.19,1.20`__ As part of the attempts to speed up startup time, the attempted elimination of the required import of the re module came up. This thread brought up the question as to whether it was desired to be able to pass a regexp as an argument for the -W command-line option for Python. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035616.html `[PEP] += on return of function call result`__ You can't assign on the return value of a method calls. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035640.html `Vacation; Python 2.2.3 release.`__ Guido is going on vacation and won't be back until May 26. He would like Python 2.2.3 to be out shortly after he gets back, although if it comes out while he is gone he definitely won't complain. =) You can get an anonymous CVS checkout of the 2.2 maintenance branch by executing ``cvs -d :pserver:anonymous@cvs.python.sourceforge.net:/cvsroot/python checkout -d

-r release22-maint python`` and changing the <> note to be the directory you want to put your CVS copy into. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035642.html `MS VC 7 offer`__ At `Python UK`_ Guido was offered free copies of `Visual C++ 2003`_ by the project lead of VC, Nick Hodapp, for key developers (a free copy of the compiler is available at http://www.msdn.microsoft.com/netframework/downloads/howtoget.aspx ). This instantly led to the discussion of whether Python's binary distribution for Windows should be moved off of VC 6 to 7. The biggest issue is that apparently passing FILE * values across library boundaries breaks code. The final decision seemed to be that Tim, Guido, and developers of major extensions should get free copies. Then an end date of when Python will be moved off of VC 6 and over to 7 will be decided. None of this will affect Python 2.3 . This thread was 102 emails long. I don't use Windows. This was painful. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035375.html .. _Python UK: http://www.python-uk.org/ .. _Visual C++ 2003: http://msdn.microsoft.com/visualc/ From h.goebel@goebel-consult.de Mon May 26 12:09:29 2003 From: h.goebel@goebel-consult.de (Hartmut Goebel) Date: Mon, 26 May 2003 13:09:29 +0200 Subject: ANN: managesieve 0.2 Message-ID: Announcing: managesieve ============= Version 0.2 A MANGAGESIEVE client library for remotely managing Sieve scripts, including an interactive 'sieveshell'. This module allows accessing a Sieve-Server for managing Sieve scripts there. For more information about the MANAGESIEVE protocol see draft http://www.ietf.org/internet-drafts/draft-martin-managesieve-04.txt . What is MANAGESIEVE? -------------------- Sieve scripts allow users to filter incoming email. Message stores are commonly sealed servers so users cannot log into them, yet users must be able to update their scripts on them. This module implements a protocol "managesieve" for securely managing Sieve scripts on a remote server. This protocol allows a user to have multiple scripts, and also alerts a user to syntactically flawed scripts. This an interim measure as it is hoped that eventually Sieve scripts will be stored on ACAP. Availablity ----------- 'managesieve' is available for download at http://www.crazy-compilers.com/py-lib/#managesieve Requirements ------------ Requires Python >= 2.0 Not yet implemented ------------------- - Only athentication method LOGIN is currently supported. - STARTTLS is not yet implemented. - sieve-names are only quoted dump (put into quotes, but no escapes yet). Copyright/License ----------------- (C) Copyright 2003 by Hartmut Goebel License: Python Software Foundation License http://www.opensource.org/licenses/PythonSoftFoundation.html License for 'sieveshell' and test suite: GPL http://www.opensource.org/licenses/gpl-license.php Credits ------- Based on Sieve.py from Ulrich Eck which is part of of 'ImapClient' (see http://www.zope.org/Members/jack-e/ImapClient), a Zope product. Some ideas taken from imaplib written by Piers Lauder et al. From peter@engcorp.com Mon May 26 16:14:09 2003 From: peter@engcorp.com (Peter Hansen) Date: Mon, 26 May 2003 11:14:09 -0400 Subject: Next meeting: Tuesday night Message-ID: The Python user's group for the Greater Toronto Area will meet at the usual location (519 Church St.) on Tuesday, May 27, from 8 to 10 pm. Details are here: http://web.engcorp.com/pygta/wiki/NextMeeting I'm planning an informal presentation about a new tool we've developed at Kaval, which is a Python-based testing framework for Javascript in Internet Explorer on Windows. The combination of Python tools involved includes: - PyUnit (aka standard module unittest, for the tests) - win32com (Mark Hammond's amazing library, for ActiveX control of IE) - Twisted (for serving test pages locally) In a nutshell, tests are written in Python in the usual manner, but the code under test executes within IE, served up from localhost, under ActiveX control. -Peter From Thomas Guettler Sun May 25 21:20:41 2003 From: Thomas Guettler (Thomas Guettler) Date: Sun, 25 May 2003 22:20:41 +0200 Subject: OOPServer 0.2 Released Message-ID: This is the 0.2 release of OOPServer. It is a 100% Python solution for developing customised document management systems. It uses Zope as web application server. It includes an Upload-Client for integrating office or other software installed at the client. Up to now the target group are developers. Changes: OOPEmail is an email archive with full-text search, search for email adresses and display of *discussion threads* You can get the source from: http://guettli.sourceforge.net A demo is available: http://guettli.dyndns.org:8080 Thank you very much, to all who provided feedback to the last release! Thomas Guettler -- Thomas Guettler http://www.thomas-guettler.de From fdui@openlight.com Tue May 27 13:58:33 2003 From: fdui@openlight.com (fdui@openlight.com) Date: Tue, 27 May 2003 08:58:33 -0400 Subject: Flightdeck-UI MVM and Library 0.2.0 (Stable) Released Message-ID: This is a stable (production) release of the Flightdeck-UI library and Multi-Variable Monitor (MVM). Downloads are available from the project homepage ("http://www.openlight.com/fdui/"). The screenshots are here: "http://www.openlight.com/fdui/screens.html". The goal of the Flightdeck-UI project is to apply ideas from aircraft instrumentation design to general purpose user interfaces. The project consists of a library (which provides widgets based on the basic instruments of flight) and the Multi-Level Monitor (MVM) monitoring application. MVM can be quickly configured to track data from several sources (for example free disk space on your machine, the local weather, the number of visits to your website, etc.). It will then sit in some corner of your desktop, allowing you to read this information with an occasional glance. MVM includes a graphical editor and theme support. Support for multiple concurrency models in MVM plug-ins has been added in this release (asynchronous I/O and thread pool examples are included in the distribution). In addition, it is now easier to write simple plug-in modules, with functions that return integer or floating point numbers. For more information, see the README-MVM.TXT file ("http://www.openlight.com/fdui/README-MVM.TXT"). A number of bugfixes (particularly in the graphical editor) as well as enhanced error notification have also been added. Some of the new plug-ins (most notably the ones using thread pools) perform a clean shutdown when you exit MVM. If your Internet connection is hung up, you might have to wait a little for the I/O to time out so that the threads can stop (it is not possible to interrupt a Python thread). MVM and the Flightdeck-UI library are both open source/free software. They have been tested under Linux (RedHat 7.2) and under Windows 95. Questions can be emailed to originator of this message. Your ideas and participation will be appreciated! From gmcm@hypernet.com Thu May 29 15:58:37 2003 From: gmcm@hypernet.com (Gordon McMillan) Date: Thu, 29 May 2003 10:58:37 -0400 Subject: ANN: Installer 5b5_3 Message-ID: A bug fix release (5b5_3) is available here: http://www.mcmillan-inc.com/installer_dnld.html The major fix is to Windows onefile support which is completely broken in earlier 5b5 releases. Another fix (UPX binaries caching code) applies to both Linux and Windows. Platforms: Windows Linux Unix (relying on volunteers) Python versions: Python 1.5 to 2.3 What is it: The Installer package is any easy way to deploy Python apps to systems without Python installed (or with incompatible Pythons installed). Installer support single-file and single-directory deployments. On Windows, Installer supports COM, including in-process COM servers. License: MIT style. Contact: gmcm@hypernet.com

Installer Release 5b5_3/A>Easy Python app deployment. (29-May- 2003). From gideon@computer.org Thu May 29 17:51:44 2003 From: gideon@computer.org (gideon may) Date: Thu, 29 May 2003 18:51:44 +0200 Subject: ANN: PyOSG 0.4.0 - Python OpenSceneGraph bindings Message-ID: Announcing Python OpenSceneGraph bindings version 0.4.0 alpha PyOSG is a wrapper library for the the OpenSceneGraph real-time visualisation library and Python. It is available at http://sourceforge.net/projects/pyosg The Open Scene Graph is a cross-platform C++/OpenGL library for the real-time visualization. Uses range from visual simulation, scientific modeling, virtual reality through to games. OpenSceneGraph is available at http://www.openscenegraph.org/ PyOSG uses the Boost.Python library, which enables a very powerful set of features like subclassing C++ classes in Python, default arguments, function overloading. Boost.Python is available at http://www.boost.org/ Requirements ------------ Python 2.2.X OpenSceneGraph 0.9.4 Producer 0.8.2-2 Boost.Python 1.30.0 Platforms --------- PyOSG has been tested on Windows 2000/NT using the MSVC.Net 7.0 compiler and Linux 2.4.X using the gcc 3.2 C++ compiler. Best regards, gideon may From nas@mems-exchange.org Thu May 29 23:18:30 2003 From: nas@mems-exchange.org (Neil Schemenauer) Date: Thu, 29 May 2003 18:18:30 -0400 Subject: ANNOUNCE: Dulcinea 0.1 released Message-ID: Version 0.1 of the Dulcinea package is available from http://www.mems-exchange.org/software/dulcinea/ Dulcinea is a collection of modules useful for developing applications with Quixote and the ZODB, including: * A set of modules that simplify using the ZODB. * Some useful classes for use with Quixote. * Various miscellaneous modules that we've found to be useful. -- Neil Schemenauer http://www.mems-exchange.org/ From nas@mems-exchange.org Thu May 29 23:20:10 2003 From: nas@mems-exchange.org (Neil Schemenauer) Date: Thu, 29 May 2003 18:20:10 -0400 Subject: ANNOUNCE: Sitereaper 0.1 released Message-ID: Version 0.1 of the Sitereaper package is available from http://www.mems-exchange.org/software/sitereaper/ Sitereaper is a link-checker that can optionally spell-check and do HTML validation while checking links. Sitereaper is developed using Python 2.2. -- Neil Schemenauer http://www.mems-exchange.org/ From halley@play-bow.org Fri May 30 12:23:38 2003 From: halley@play-bow.org (Bob Halley) Date: 30 May 2003 04:23:38 -0700 Subject: ANN: dnspython 1.0.0a1 Message-ID: I'm pleased to announce the initial release of dnspython! INTRODUCTION dnspython is a DNS toolkit for Python. It supports all of the common record types, and will support all types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython provides both high and low level access to DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. To see a few of the ways dnspython can be used, look at http://www.dnspython.org/examples.html dnspython originated at Nominum where it was developed to facilitate the testing of DNS software. Nominum has generously allowed it to be open sourced under a BSD-style license, and helps support its future development by continuing to employ the author :). ABOUT THIS RELEASE This is dnspython 1.0.0a1, the first release of dnspython. Although the software is already useful, there are a number of things to do before the first stable release, including: implementing the rest of the DNS rdata types, improving the documentation, and thorough testing. REQUIREMENTS Python 2.2 or later. INSTALLATION To build and install dnspython, type python setup.py install HOME PAGE For the latest in releases, documentation, and information, visit the dnspython home page at http://www.dnspython.org/ DOCUMENTATION Documentation is sparse at the moment. Use pydoc or read the HTML documentation at the dnspython home page. BUG REPORTS Bug reports may be sent to bugs@dnspython.org MAILING LISTS A number of mailing lists are available. Visit the dnspython home page to subscribe or unsubscribe. From DavidA@ActiveState.com Fri May 30 17:39:00 2003 From: DavidA@ActiveState.com (David Ascher) Date: Fri, 30 May 2003 09:39:00 -0700 Subject: Today is the last day for nominations for the Python ActiveAward winner Message-ID: For the third year, ActiveState is running the ActiveAwards -- a way to recognize some of the most influential, helpful, or important people in the world of open source languages. Nominate your favorites in the Programmers' Choice Active Awards. Until June 1, 2003, you can select the one programmer that you think has done the most for Python (and other languages if you so choose). We'll tally up the nominees and present five finalists in each category. Voting for the winner will take place from June 3 to June 30, 2003. See the details and enter your favorites at: http://www.activestate.com/Corporate/ActiveAwards/ Cheers, -- David Ascher ActiveState PS: Winners for previous years were: 2002 Programmers' Choice: Robin Dunn 2002 Activators' Choice: Alex Martelli 2001 Programmers' Choice: Christian Tismer 2001 Activators' Choice: Greg Ward From jeremy@zope.com Fri May 30 23:27:09 2003 From: jeremy@zope.com (Jeremy Hylton) Date: 30 May 2003 18:27:09 -0400 Subject: ZODB 3.2 beta 1 released Message-ID: I'm pleased to announce the release of ZODB 3.2 beta 1. We have completed all the new features planned for ZODB 3.2 and have wrung out a number of bugs. I expect this release is still a bit rough, so I expect to do another beta release. ZODB 3.2 has a number of new features and improvements over ZODB 3.1: - improve performance and stability of ZEO - new ZEO authentication protocol - new configuration language, ZConfig, for databases, storages, and ZEO servers - many bug fixes This release of ZODB has been tested with Python 2.1.3, 2.2.3, and 2.3b1. It should also be compatible with Zope 2.6; Zope users should be able to install the new ZODB code on top of an existing Zope 2.6 installation. You can download the source release and Windows installers for 2.1 and 2.2 from http://www.zope.org/Products/ZODB3.2. I've included the most recent entries from NEWS.txt below. Jeremy What's new in ZODB3 3.2 beta 1 ============================== Release date: 30-May-2003 ZODB ---- Invalidations are now processed atomically. Each transaction will see all the changes caused by an earlier transaction or none of them. Before this patch, it was possible for a transaction to see invalid data because it saw only a subset of the invalidations. This is the most likely cause of reported BTrees corruption, where keys were stored in the wrong bucket. When a BTree bucket splits, the bucket and the bucket's parent are both modified. If a transaction sees the invalidation for the bucket but not the parent, the BTree in memory will be internally inconsistent and keys can be put in the wrong bucket. The atomic invalidation fix prevents this problem. A number of minor reference count fixes in the object cache were fixed. That's the cPickleCache.c file. It was possible for a transaction that failed in tpc_finish() to lose the traceback that caused the failure. The transaction code was fixed to report the original error as well as any errors that occur while trying to recover from the original error. The "other" argument to copyTransactionsFrom() only needs to have an .iterator() method. For convenience, change FileStorage's and BDBFullStorage's iterator to have this method, which just returns self. Mount points are now visible from mounted objects. Fixed memory leak involving database connections and caches. When a connection or database was closed, the cache and database leaked, because of a circular reference involving the cache. Fixed the cache to explicitly clear out its contents when its connection is closed. The ZODB cache has fewer methods. It used to expose methods that could mutate the dictionary, which allowed users to violate internal invariants. ZConfig ------- It is now possible to configure ZODB databases and storages and ZEO servers using ZConfig. ZEO & zdaemon ------------- ZEO now supports authenticated client connections. The default authentication protocol uses a hash-based challenge-response protocol to prove identity and establish a session key for message authentication. The architecture is pluggable to allow third-parties to developer better authentication protocols. There is a new HOWTO for running a ZEO server. The draft in this release is incomplete, but provides more guidance than previous releases. See the file Doc/ZEO/howto.txt. The ZEO storage server's transaction timeout feature was refactored and made slightly more rebust. A new ZEO utility script, ZEO/mkzeoinst.py, was added. This creates a standard directory structure and writes a configuration file with mostly default values, and a bootstrap script that can be used to manage and monitor the server using zdctl.py (see below). Much work was done to improve zdaemon's zdctl.py and zdrun.py scripts. (In the alpha 1 release, zdrun.py was called zdaemon.py, but installing it in /bin caused much breakage due to the name conflict with the zdaemon package.) Together with the new mkzeoinst.py script, this makes controlling a ZEO server a breeze. A ZEO client will not read from its cache during cache verification. This fix was necessary to prevent the client from reading inconsistent data. The isReadOnly() method of a ZEO client was fixed to return the false when the client is connected to a read-only fallback server. The sync() method of ClientStorage and the pending() method of a zrpc connection now do both input and output. The short_repr() function used to generate log messages was fixed so that it does not blow up creating a repr of very long tuples. Storages -------- FileStorage has a new pack() implementation that fixes several reported problems that could lead to data loss. Two small bugs were fixed in DemoStorage. undoLog() did not handle its arguments correctly and pack() could accidentally delete objects created in versions. Fixed trivial bug in fsrecover that prevented it from working at all. FileStorage will use fsync() on Windows starting with Python 2.2.3. FileStorage's commit version was fixed. It used to stop after the first object, leaving all the other objects in the version. BTrees ------ Trying to store an object of a non-integer type into an IIBTree or OIBTree could leave the bucket in a variety of insane states. For example, trying b[obj] = "I'm a string, not an integer" where b is an OIBTree. This manifested as a refcount leak in the test suite, but could have been much worse (most likely in real life is that a seemingly arbitrary existing key would "go missing"). When deleting the first child of a BTree node with more than one child, a reference to the second child leaked. This could cause the entire bucket chain to leak (not be collected as garbage despite not being referenced anymore). Other minor BTree leak scenarios were also fixed. Tools ----- New tool zeoqueue.py for parsing ZEO log files, looking for blocked transactions. New tool repozo.py (originally by Anthony Baxter) for performing incremental backups of Data.fs files. The fsrecover.py script now does a better job of recovering from errors the occur in the middle of a transaction record. Fixed several bugs that caused partial or total failures in earlier versions. From srackham@methods.co.nz Fri May 30 23:43:33 2003 From: srackham@methods.co.nz (Stuart Rackham) Date: 30 May 2003 15:43:33 -0700 Subject: ANN: AsciiDoc 3.2 released Message-ID: AsciiDoc -------- AsciiDoc is an uncomplicated text document format for writing articles, manuals and UNIX man pages. AsciiDoc files can be translated to HTML: (with or without stylesheets); DocBook (articles, books and refentry documents); and LinuxDoc using the asciidoc(1) command. AsciiDoc can also be used to build and maintain websites. AsciiDoc is highly configurable: both the AsciiDoc source file syntax and the backend output markups (which can be almost any type of SGML/XML markup) can be customized and extended by user. Requisites ---------- Python 1.5.2 or higher. Obtaining AsciiDoc ------------------ The latest AsciiDoc version and online documentation can be found at the AsciiDoc website http://www.methods.co.nz/asciidoc/ AsciiDoc is also hosted at the SourceForge at http://sourceforge.net/projects/asciidoc/ Best regards, --- Stuart Rackham From barry@python.org Sat May 31 04:11:45 2003 From: barry@python.org (Barry Warsaw) Date: 30 May 2003 23:11:45 -0400 Subject: RELEASED Python 2.2.3 (final) Message-ID: I'm happy to announce the release of Python 2.2.3 (final). This is a bug fix release for the stable Python 2.2 code line. It contains more than 40 bug fixes and memory leak patches since Python 2.2.2, and all Python 2.2 users are encouraged to upgrade. The new release is available here: http://www.python.org/2.2.3/ For full details, see the release notes at http://www.python.org/2.2.3/NEWS.txt There are a small number of minor incompatibilities with Python 2.2.2; for details see: http://www.python.org/2.2.3/bugs.html Perhaps the most important is that the Bastion.py and rexec.py modules have been disabled, since we do not deem them to be safe. As usual, a Windows installer and a Unix/Linux source tarball are made available. The documentation has been updated as well, and is available both on-line and in many different formats. At the moment, no Mac version or Linux RPMs are available, although I expect them to appear soon. On behalf of Guido, I'd like to thank everyone who contributed to this release, and who continue to ensure Python's success. Enjoy, -Barry From Tom Deprez" Hi! As last year we plan to close the gap until EuroPython2003 with interviews. Moshe Zadka is the first of this year to give an interview. Interested? Have look at: http://www.europython.org/other/interviews/entries/moshe_zadka Regards, EuroPython.