From claird@NeoSoft.com Thu Aug 2 21:36:45 2001 From: claird@NeoSoft.com (Cameron Laird) Date: Thu, 2 Aug 2001 15:36:45 -0500 (CDT) Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Jul 30) Message-ID: Quotes of the week: Paul Prescod: Perl users seem remarkably accepting of change considering the installed base of the language. Paul Prescod: Moore's law is slowly making type declarations irrelevant. Stephen: The web just doesn't lend itself to building look-ahead auto-complete fields for names, emails etc. Uwe Zessin releases Python 2.1.1 for OpenVMS http://www.decus.de/~zessin/python2/ Harry George offers example use of setup.py http://groups.google.com/groups?th=18626bc240f7e9e3 June Kim and Dave Brueck present the argument in favor of dynamic typing http://groups.google.com/groups?th=2d17178851b0f98e Thomas Weholt's relatively innocent question about distributed computing technologies leads to deep (if largely Python-free) and even important analyses by Tim Daneliuk, Graham Dumpleton, Galen Swint, and others. Also in the same thread, Ng Pheng Siong provides nice performance boosts for SOAP. http://groups.google.com/groups?th=559ffaccf0ac9907 You can submit a paper for the tenth Python Conference http://www.python10.org/p10-callpapers.html Duncan Grisby provides a fine quick-start tutorial to CORBA use, as well as directions to a public fortune-cookie service http://groups.google.com/groups?th=2244bf713d379f2e Guido launches a lively and important newsgroup thread on the reality of type-class unification (and discloses his own temporal intuition is accurate only to a decimal order-and-a-half of magnitude) http://groups.google.com/groups?th=a8dc15aab8832a6b Front Range Pythoneers energetically dispute the validation theology involved in PyUnit (look for "Doctest" as a subject) http://community.tummy.com/pipermail/frpythoneers/2001-July/thread.html David Mertz teaches that Pippy is a port of Python to PalmOS http://www-106.ibm.com/developerworks/linux/library/l-pippy?open&l=252,t=grl,p=Pyth4PalmOS Now it's called, "Zope Corporation" http://www.zope.com/News/PressReleases/DC2ZC ======================================================================== Everything you want is probably one or two clicks away in these pages: Python.org's Python Language Website is the traditional center of Pythonia http://www.python.org Notice especially the master FAQ http://www.python.org/doc/FAQ.html PythonWare complements the digest you're reading with the daily python url http://www.pythonware.com/daily comp.lang.python.announce announces new Python software. Be sure to scan this newly-revitalized newsgroup at least weekly. http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python.announce Michael Hudson continues Andrew Kuchling's marvelous tradition of summarizing action on the python-dev mailing list once every other week. http://starship.python.net/crew/mwh/summaries/ http://www.amk.ca/python/dev The Vaults of Parnassus ambitiously collect Python resources http://www.vex.net/~x/parnassus/ Much of Python's real work takes place on Special-Interest Group mailing lists http://www.python.org/sigs/ The Python Software Foundation has replaced the Python Consortium as an independent nexus of activity http://www.python.org/psf/ Cetus does much of the same http://www.cetus-links.de/oo_python.html Python FAQTS http://python.faqts.com/ Python To-Do List anticipates some of Python's future direction http://www.python.org/cgi-bin/todo.py Python Journal is at work on its second issue http://www.pythonjournal.com Links2Go is a new semi-automated link collection; it's impressive what AI can generate http://www.links2go.com/search?search=python Archive probing tricks of the trade: http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python&num=100 http://groups.google.com/groups?meta=site%3Dgroups%26group%3Dcomp.lang.python.* Previous - (U)se the (R)esource, (L)uke! - messages are listed here: http://purl.org/thecliff/python/url.html or http://groups.google.com/groups?oi=djq&as_q=+Python-URL!&as_ugroup=comp.lang.python Suggestions/corrections for next week's posting are always welcome. [http://www.egroups.com/list/python-url-leads/ is hibernating. Just e-mail us ideas directly.] To receive a new issue of this posting in e-mail each Monday morning, ask to subscribe. Mention "Python-URL!". -- The Python-URL! Team-- Dr. Dobb's Journal (http://www.ddj.com) is pleased to participate in and sponsor the "Python-URL!" project. From richard@bizarsoftware.com.au Fri Aug 3 02:41:46 2001 From: richard@bizarsoftware.com.au (Richard Jones) Date: Fri, 3 Aug 2001 11:41:46 +1000 Subject: Roundup issue tracker version 0.2.4 Message-ID: Roundup 0.2.4 - an issue tracking system Changes: See the release notes on the website or the CHANGES.txt distributed with the source. This is another bug-fix and feature-add release. Existing users are encouraged to upgrade as some usability bugs are fixed. The major bugs fixed are the removal of a python 2.1-specific call and cleaner importing of instances (you may now call instances "roundup" and it won't get confused). 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@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.0+ 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 and three database back-ends. Back-ends for relational databases are being developed. Source is available at the website: http://sourceforge.net/projects/roundup/ From djc@object-craft.com.au Fri Aug 3 02:47:04 2001 From: djc@object-craft.com.au (Dave Cole) Date: 03 Aug 2001 11:47:04 +1000 Subject: Sybase module 0.31 released In-Reply-To: Dave Cole's message of "18 Jul 2001 13:09:33 +1000" Message-ID: What is it: The Sybase module provides a Python interface to the Sybase relational database system. It supports all of the Python Database API, version 2.0 with extensions. Commercial support is available for this module. Please refer to our website for details: http://www.object-craft.com.au/support.html For those people who do not have LaTeX installed there is a PDF document. These is also a PostScript document which prints out a handy A5 booklet on an A4 duplex printer. The module and documentation are all available on here: http://www.object-craft.com.au/projects/sybase/ Thanks ------ Timothy Docker reported and fixed two bugs one of which was quite nasty. Derek Harland supplied a patch to allow mxDateTime.DateTime objects to be supplied as parameters to cursor.execute(). Changes for this release ------------------------ 1) The Connection.execute() method was incorrectly returning DATETIME column values. This was due to a bug in the internal DataBuf implementation which always returned the DATETIME value at index 0 in the buffer regardless of the fact that the buffer contained 16 column values. Note that the Cursor.execute() method was not affected since it only allocates buffers for one row. Thanks to Timothy Docker for fixing this. 2) The internal Sybase.py context initialisation was being performed before the DB-API exceptions were defined. If the initialisation failed the module tried to raise an exception which had not been defined. Ooops. Thanks to Timothy Docker for fixing this. 3) The internal DateTime object no longer allows you to modify the cracked datetime attributes. Previously you may have been fooled into thinking that modifying these attributes would change the internal value... Thanks to Derek Harland for pointing this out. 4) You can now pass an mxDateTime.DateTime object as a parameter to Cursor.execute(). Thanks to Derek Harland for implementing this feature. - Dave -- http://www.object-craft.com.au From akuchlin@mems-exchange.org Fri Aug 3 03:18:44 2001 From: akuchlin@mems-exchange.org (Andrew Kuchling) Date: Thu, 02 Aug 2001 22:18:44 -0400 Subject: python-dev summary, July 5-15 Message-ID: This is a summary of traffic on the python-dev mailing list between July 5 and July 15 (inclusive) 2001. It is intended to inform the wider Python community of ongoing developments. To comment, just post to python-list@python.org or comp.lang.python in the usual way. Give your posting a meaningful subject line, and if it's about a PEP, include the PEP number (e.g. Subject: PEP 201 - Lockstep iteration) All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on a PEP if you have an opinion. Summaries are archived at: Michael Hudson is taking a break from writing the python-dev summaries, so I'll be writing them for the summer. This summary for July 4-15 is quite late, having been delayed first by my week-long vacation in Quebec and then by the file getting accidentally deleted from my laptop -- remember, kids, don't leave important text files sitting in /tmp/. Anyway, after unpacking my luggage and running 'strings' on my root partition, here it is. --am"crawling from the wreckage"k XML-RPC added to standard library ================================= Eric S. Raymond forwarded a suggestion from Dave Winer to add XML-RPC support to Python's standard library. Dave suggests that the open-source community can turn up the heat on Microsoft by visibly supporting and promoting open RPC standards that compete with .NET, such as XML-RPC and SOAP 1.1. He thinks that the implementors of scripting languages like Perl and Python are in a particularly good position to make this happen, by making XML-RPC and/or SOAP 1.1 fully documented parts of their standard libraries. XML-RPC is a simple protocol for making remote procedure calls; function parameters are converted into an XML format and sent using HTTP. Implementations exist for many different languages, and there are two Python implementations, /F's xmlrpclib.py and Eric Kidd's C library. Kidd posted to suggest using /F's code: My library, although nice, is intended for C programmers, and needlessly duplicates a lot of Python functionality. It has its own data model (based on Python's), UTF-8 processing (based on Python's), structure builder (based on Python's), and so on. You get the picture. One objections raised was that XML-RPC is ostensibly ASCII-only, though almost everyone seems to ignore this and supports Unicode anyway, as Eric Kidd pointed out: Fredrik's library supports Unicode. My library supports Unicode. The Java libraries all support Unicode. And furthermore, we all appear to have interop. I was +0, as while XML-RPC works pretty well, what it does isn't very much: My misgiving is that XML-RPC is pretty limited, the lack of support for None being particularly painful to a Python programmer. Perhaps, if we can only have one, SOAP would be better, but I haven't used SOAP seriously for anything yet. /F was +1 on adding xmlrpclib.py, -0 on SOAP support: -0 on soap support in 2.2 (it's still a moving target; a new spec draft was released this weekend). if we want something now, it should be cayce ullman's SOAP.py, not my soaplib.py. but I don't think we need SOAP in the standard library for another year or two. (fwiw, my current thinking is that SOAP is a flawed idea, and that the need for SOAP will go away when people get better XML/Schema tools, but that's another story. and don't get me started on SOAP BDG...) So he checked in the code, and ESR contributed documentation for the module. There's no sign that SOAP is going into 2.2, as everyone seemed rather lukewarm about it. GvR also wondered if Python 2.2 should support DAV ("That's another open protocol that Python could easily support out of the box.") and /F agreed, but Greg Stein, the DAV expert and champion on python-dev, remained silent. site-packages on Windows ======================== On Windows, third-party Python packages get installed into the root of the Python installation, C:\PYTHON2.1. Pete Shinners complained about this: for the love of all things good, can we please make a recommendation in our PEP that the windows installation location be something other than "C:\PYTHON21"? something like "C:\PYTHON21\SITE-PACKAGES" would be a big improvement. i thought i heard that macpython recently made this "fix", why is the windows version lagging on this? PEP 250, by Paul Moore, discusses fixing this. http://python.sourceforge.net/peps/pep-0250.html Encodings for Unicode literals ============================== Another lengthy thread centred around PEP 263, "Defining Unicode Literal Encodings", by M.-A. Lemburg, which suggests using the directive statement proposed by PEP 244 to define a default encoding for Unicode literals. Right now a Unicode literal always uses the 'unicode-escape' encoding, so a literal such as u"\u1234\u4720" is turned into a 2-character Unicode string consisting of U+1234, U+4720. PEP 263 suggests that you could define the encoding to be something else, so you could put, say, Cyrillic characters into a Unicode literal and have them be automatically converted. Most of the problems people have aren't with the idea of indicating the encoding, but rather with how it should be done. PEP 263 suggests something like this: directive unicodeencoding = "UTF-8" But that syntax isn't actually allowed by PEP 244. There's also a circular problem with module docstrings; many tools expect the module docstring to be the very first thing in the file, preceded only by comments and blank lines, so putting a directive first will break such tools. But the encoding should apply to the docstring if it's a Unicode literal, so the directive has to come first. Discussion was inconclusive. Some people liked the idea; others think a comment would be better and easier for non-Python tools such as editors to deal with; yet others don't approve of having a 'directive' statement at all. There seems agreement that the issue of source file encoding is worth clearing up, but no obvious solution is at hand. Related Links ============= Python-dev archives: http://www.python.org/pipermail/python-dev/ http://aspn.activestate.com/ASPN/Mail/Browse/Threaded/python-dev Python project page on SourceForge: http://sourceforge.net/projects/python Python Enhancement Proposals (PEPs): http://python.sourceforge.net/peps/ From richard@bizarsoftware.com.au Fri Aug 3 04:50:18 2001 From: richard@bizarsoftware.com.au (Richard Jones) Date: Fri, 3 Aug 2001 13:50:18 +1000 Subject: Roundup issue tracker version 0.2.5 Message-ID: Roundup 0.2.5 - an issue tracking system *** This release fixes the setup.py module for python 2.0 users *** Users should also note that the bsddb3 module currently has a bug that renders it non-functinal. The anydbm or bsddb back-ends should be used instead. See the release notes on the website or the CHANGES.txt distributed with the source for more information. 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.0+ 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 and three database back-ends. Back-ends for relational databases are being developed. Source is available at the website: http://sourceforge.net/projects/roundup/ From guido@zope.com Fri Aug 3 18:11:36 2001 From: guido@zope.com (Guido van Rossum) Date: Fri, 03 Aug 2001 13:11:36 -0400 Subject: www.python.org is back! Message-ID: The Python sites http://www.python.org and ftp://ftp.python.org are back up, thanks to the energetic help of Thomas Wouters and XS4ALL (the dutch ISP that's his employer). We're still fetching some missing files from a mirror, so please be patient if your favorite download isn't there yet. We're also still working on restoring the FAQ wizard and the 2.0 MoinMoin and restarting the Ultraseek engine (search.python.org) -- I hope this will be completed later today. Thanks again to XS4ALL (http://www.xs4all.nl/) and Thomas! --Guido van Rossum (home page: http://www.python.org/~guido/) From andymac@bullseye.apana.org.au Sun Aug 5 14:04:26 2001 From: andymac@bullseye.apana.org.au (Andrew MacIntyre) Date: Sun, 5 Aug 2001 23:04:26 +1000 (EST) Subject: ANN: port of Python 2.1.1 to OS/2+EMX In-Reply-To: Message-ID: I have uploaded a port of Python 2.1.1 to the incoming directories of the Hobbes (http://hobbes.nmsu.edu) and LEO (http://archiv.leo.org/) OS/2 software archives. This port, besides updating to the Python 2.1.1 source level, includes the mpz (GNU MP) and crypt (GNU UFC) modules. I hope crypto export laws don't get in the road here. The distributed archives are: python-2.1.1-os2emx-bin-010805.zip (binary installation package, 3.0MB) python-2.1.1-os2emx-src-010805.zip (source patches and makefiles, 106kB) In addition, the following Python extensions are available in binary packages: Numeric (aka NumPy) v20.1.0 (numericpython-20.1.0-os2emx.zip, 490k) Konrad Hinsen's Scientific v2.2 (scientificpython-2.2-os2emx.zip, 330k) More info available at http://www.andymac.org/software.html; the above archives are also available there if you can't find them at Hobbes or LEO. OS/2 users enjoy! -- Andrew I MacIntyre "These thoughts are mine alone..." E-mail: andymac@bullseye.apana.org.au | Snail: PO Box 370 andymac@pcug.org.au | Belconnen ACT 2616 Web: http://www.andymac.org/ | Australia From stephen_purcell@yahoo.com Mon Aug 6 19:44:51 2001 From: stephen_purcell@yahoo.com (Steve Purcell) Date: Mon, 6 Aug 2001 20:44:51 +0200 Subject: [ANNOUNCE] PyUnit 1.4 released Message-ID: Version 1.4 of the PyUnit testing framework has just been released. The primary intention of this release is to provide a standalone package of the same PyUnit code contained in the Python 2.1 standard library. This is primarily for the benefit of those who use older (or Java-flavoured) versions of Python. The release may also be of interest to Python 2.1 users who would like to run their tests using the Tkinter-based GUI test runner tool which is part of the PyUnit package but is not contained in the Python standard library. Summary of changes since version 1.3.1: - Updated documentation - main() runs all tests in the module __main__ by default - New code allows all test cases in a given module to be located and instantiated - Simplified command line syntax - Made TextTestRunner configurable with verbose and quiet options, and consequently removed obsoleted JUnitTextTestRunner - Test instantiation code now localised in a replaceable TestLoader class - Distutils 'setup.py' contributed by Bill Bumgarner - TestResult.addSuccess() method added (thanks to Frederic Corne) - Stop overridden test methods being run twice (thanks to Brian Zimmer and Maas-Marten Zeeman) - Don't expand GUI's progress bar vertically when resizing (Fred Drake) The release is available from the PyUnit homepage at http://pyunit.sourceforge.net/ or directly from http://prdownloads.sourceforge.net/pyunit/pyunit-1.4.0.tar.gz Very best wishes to all, -Steve -- Steve Purcell, Pythangelist Get testing at http://pyunit.sourceforge.net/ Test your web apps with http://webunit.sourceforge.net/ From PyChecker Tue Aug 7 13:20:58 2001 From: PyChecker (Neal Norwitz) Date: Tue, 07 Aug 2001 08:20:58 -0400 Subject: ANN: PyChecker v0.8 Message-ID: A new version of PyChecker is available for your hacking pleasure. PyChecker is a tool for finding common bugs in python source code. It finds problems that are typically caught by a compiler for less dynamic languages, like C and C++. Comments, criticisms, new ideas, and other feedback is welcome. Change Log from 0.7.5 to 0.8: * Add check for accessing list as list[1,2], should be slice 1:2 * Add -J/maxargs to warn when using too many arguments * Add -K/maxlocals to warn when using too many local variables * Add -D/intdivide to warn when using integer division * Add -O/objattrs to warn when using object.attribute that doesn't exist * Add -M/reimportself to warn when a module imports itself * Add -E/unusednames to provide a list of unused names to ignore (default is: [ '_', 'empty', 'unused' ]) * Major refactoring of warn.py -> utils, msgs, Warning, CodeChecks * Fix spurious warnings for No class attribute for dynamic classes * Fix spurious warnings when using objects from blacklisted modules (Instantiating object with arguments, but no constructor, etc) * Fix spurious warnings when using lambdas * Fix spurious warning (No global Y) when using: from X import Y (problem in python 1.5/1.6 only) In case you missed 0.7.5, here's the change Log from 0.7 to 0.7.5: * Suppress warnings on a per module/function/class/method basis with new suppressions = {} in .pycheckrc * Suppress warnings by setting __pychecker__ in source code * Change long argument behaviour --arg sets arg to true, --no-arg sets arg to false (also works for warning suppression) * Add -U/--reuseattr check if function/class/method names are reused * Add -T/--argsused check for unused method/function arguments * Add -G/--selfused ignore if self is unused in a method (requires --argsused) * Add -q/--stdlib to disable warnings from the standard library * Add -o/--override warning when a method has different signature than one being overridden in a base class * Add -F/--rcfile to generate a .pycheckrc file * Fix checking files in standard library before local file * Fix spurious warning when using from X import Y and imports in methods (Module (m) re-imported) * Fix spurious warning when doing: from X import Y, Z * Fix spurious warning when deriving from Exception() and instantiating object with multiple arguments * Fix method argument checks when calling base class methods * Fix error msg to base constructors (msg count was wrong) * Fix access to builtin module attributes (e.g., sys.exc_value) generating 'No attribute warnings' * Fix tests (forgot to add : after line number in expected results) PyChecker is available on Source Forge: Web page: http://pychecker.sourceforge.net/ Project page: http://sourceforge.net/projects/pychecker/ Neal -- pychecker@metaslash.com From akuchlin@mems-exchange.org Tue Aug 7 15:44:50 2001 From: akuchlin@mems-exchange.org (Andrew Kuchling) Date: Tue, 07 Aug 2001 10:44:50 -0400 Subject: python-dev summary, July 16-31 Message-ID: This is a summary of traffic on the python-dev mailing list between July 16 and July 31 2001. It is intended to inform the wider Python community of ongoing developments. To comment, just post to python-list@python.org or comp.lang.python in the usual way. Give your posting a meaningful subject line, and if it's about a PEP, include the PEP number (e.g. Subject: PEP 201 - Lockstep iteration) All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on a PEP if you have an opinion. Summaries are archived at: And following close behind the grossly delayed July 4-15 one, here's the python-dev summary for July 16-31. Two Python releases came out during this period. As usually happens in the interval surrounding a release, there were two kinds of discussions on python-dev: a few lengthy ones thrashing around an issue, and lots of little short ones to resolve a single bug or issue. --amk Python 2.1.1 released ===================== Python 2.1.1, a bugfix release, was issued on July 20th as announced by GvR. Thomas Wouters was the release manager, and did a fine job of backporting patches from the 2.2 CVS tree. http://www.python.org/2.1.1/ 2.1.1 makes a slight modification to Python's license for the sake of GPL compatibility, so there should no longer be any impediment (if there ever was) to 2.1 finding its way into Linux distributions. Roswell, the new Red Hat beta, already includes Python 2.1.1, and it should also make its way into Debian testing before too long. The first alpha release of Python 2.2 was also issued during this period, on July 18. http://www.python.org/2.2/ 2.2a1 includes new support for iterators and generators, plus the usual pile of bugfixes, of course. The source distribution for 2.2a1 was taken from 'descr-branch', the experimental branch in CVS containing significant changes to the implementation of Python's object model (PEP 252 and 253). Guido is working on a tutorial for these changes: http://www.python.org/2.2/descrintro.html As usual I'm writing up an explanation of the changes in 2.2: http://www.amk.ca/python/2.2/ Neil Schemenauer posted some patches to make ExtensionClass compile with 2.2a1, and ran the MEMS Exchange's basic unit tests successfully; this amounts to 3569 test case over roughly 18,000 lines of code, so this is a good sign. http://mail.python.org/pipermail/python-dev/2001-July/016494.html No one else reported any problems with the descr-branch changes, so on July 31 Tim Peters announced that the descr-branch would be merged back into the trunk and the branch brought to a close. That was done a day or so later. Division ======== I came back from vacation to find comp.lang.python filled with an endless and at times vitriolic flame war over PEP 238, "Non-integer Division". It seems to have been triggered to some degree by GvR posting a proposed patch, which gave the impression that the issue was decided and the solution set in stone: http://mail.python.org/pipermail/python-dev/2001-July/016174.html The resulting firestorm didn't touch python-dev much, so I don't need to summarize them. They did lead to a revised version of PEP 238, discussing many of the suggestions and ideas that were raised: http://python.sourceforge.net/peps/pep-0238.html Parrot ====== Another lengthy thread started when Eric S. Raymond reported on some discussions from the Open Source Conference: "The Perl people are receptive -- indeed, some of them are actively pushing -- the idea that their new bytecode should not be Perl-specific. Dan Sugalski, the current lead for the bytecode interpreter project, has named it Parrot. At the Perl 6 talk I attended, Chip Salzenberg speculated in public about possibly supporting a common runtime for Perl, Python, Ruby, and Intercal(!)." http://mail.python.org/pipermail/python-dev/2001-July/016406.html Guido didn't immediately rule the idea out: "Obviously, just as the new design is aiming at Perl 6, it would be aiming at Python 3. Nothing's impossible these days, so I am keeping an open mind. I expect that in addition to the bytecode, the entire runtime architecture would have to be shared though for this to make sense, and I'm not sure how easy that would be, even if Perl is willing to be flexible. Most of Python's run-time semantics are very carefully defined and shouldn't be changed in order to fit in the common runtime." http://mail.python.org/pipermail/python-dev/2001-July/016413.html The resulting discussions ranged over a number of topics: regex implementations, Python's current virtual machine, the proposed Perl6 virtual machine, how to support both Python and Perl semantics at the same time, and the mechanics of standards committees. The only concrete outcome of all this chatter was that Raymond will write an architectural comparison of the existing Python and Perl bytecodes. It's far too early to say if anything will come of this, so a common VM should be viewed as an interesting, but not particularly likely, possibility for now; when more details of the Parrot VM's design become clear, the idea will no doubt resurface. cgitb.py ======== ?!ng resurfaced after a lengthy absence, and proposed the cgitb module for addition. Demoed at IPC9, cgitb.py sets an exception-handling hook using sys.excepthook that produces a nicely formatted traceback instead of just letting the script cause an HTTP 500 'Internal Server Error'. For your debugging convenience, the traceback also includes the local variables at each level of the stack. The module itself isn't controversial, but ?!ng's suggestion of adding an 'if' to site.py to automatically enable it was. Writing errors to standard output instead of standard error, and in particular sending them out to a potentially hostile Web user, made most people nervous. The consensus was to add the module, but authors of CGI scripts would have to choose to enable the formatted tracebacks, instead of having them automatically enabled. Frank Willison ============== On July 31st, we heard that Frank Willison, the editor-in-chief at O'Reilly, had died suddenly the day before. Paul Prescod posted the news, adding an eloquent tribute: http://mail.python.org/pipermail/python-dev/2001-July/016479.html Tim O'Reilly wrote a memorial on the O'Reilly Web site, and there's also a page of comments from Willison's friends and acquaintances. http://www.oreilly.com/news/frank_0701.html Random bits =========== Panu A Kalliokoski wrote 'Selecting', a module containing an abstraction for writing asynchronous servers, much like asyncore but claimed to be easier to use. http://mail.python.org/pipermail/python-dev/2001-July/016000.html Paul Prescod reported on the existence of a Python port to the Sony Playstation 2. It exists, but unfortunately isn't publicly available. http://mail.python.org/pipermail/python-dev/2001-July/016365.html Moshe Zadka asked if anyone has copies of old versions of Python hanging around. He's found 1.2, but would really like versions preceding 1.0. Discussion of the file encoding directive (covered in the previous python-dev summary) continued, but there was no convergence toward a solution. It looks like this issue will be dropped for a while. IPv6 support for the socket module was committed, and various minor problems came up. All were quickly fixed. http://mail.python.org/pipermail/python-dev/2001-July/016216.html Unanswered questions ==================== Some questions were posted that deserved answers, but didn't get any (in public, at least). I'll misuse my editorial power in an effort to nudge someone into action. Martin Sjögren wondered why the Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS macros don't take an argument specifying a variable to save the thread state to. He said he needed this, but didn't explain why. http://mail.python.org/pipermail/python-dev/2001-July/016190.html Andrew MacIntyre, who's working on an up-to-date OS/2 port of Python, noticed that the parser doesn't use Python's memory allocation hooks to allocate parser nodes. When he tried modifying the parser code to use the allocation hooks, the resulting interpreter worked but took a massive performance hit. http://mail.python.org/pipermail/python-dev/2001-July/016129.html Related Links ============= Python-dev archives: http://www.python.org/pipermail/python-dev/ http://aspn.activestate.com/ASPN/Mail/Browse/Threaded/python-dev Python project page on SourceForge: http://sourceforge.net/projects/python Python Enhancement Proposals (PEPs): http://python.sourceforge.net/peps/ From inigoserna@terra.es Tue Aug 7 21:05:45 2001 From: inigoserna@terra.es (=?ISO-8859-1?Q?I=F1igo?= Serna) Date: 07 Aug 2001 22:05:45 +0200 Subject: ANN: lfm 0.5 Message-ID: Hello again, Here am I to announce the second public release of Last File Manager, version 0.5. lfm is a 'midnight commander' clone written purely in Python and licensed under GNU Public License. It should work on any Unix (and Linux, of course) with curses module compiled in. See README file or visit the web page for more information. http://www.terra.es/personal7/inigoserna/lfm These are the changes since last released version: Version 0.5 ("Last call to London") - 2001/08/07: + F2 file menu, added many functions + F9 general menu, added many functions + Implemented find and grep + File permissions, owner and group has a window now + Implemented preferences, edition has to be improved, of course, but loading and saving works + Added 'show filesystems info' feature + Now 'q' or F10 exits to current path, see proper README section + Default pager changed to 'less' + Documentation has been improved + 'setup.py' now installs docs + Many bug fixes and functions rewrites: - home and end keys work ok now - not all people use bash-type shells, so don't use 2>&1 - use popen2.popen3 instead of os.popen to catch messages - manage problems with move while files don't fit into destination - option 'b' does not exist in Solaris' 'du -s' command - fix a problem while moving files if destination has no enough space - many others Version 0.4 - 2001/07/19: + First public release I'm going to spend a few days in London so I hope to have my mail full of comments, suggestions, patches in the return ;-) Best regards, I=F1igo Serna From richard@bizarsoftware.com.au Wed Aug 8 04:19:27 2001 From: richard@bizarsoftware.com.au (Richard Jones) Date: Wed, 8 Aug 2001 13:19:27 +1000 Subject: [announce] Roundup issue tracker version 0.2.6 Message-ID: Roundup 0.2.6 - an issue tracking system *** Roundup is now released under the same terms as the Python License. *** This is predominantly a bugfix release - a couple of bugs in the init were found which caused problems getting started. Feature: . Added tests for instance initialisation. No more releasing the software with bugs in roundup.init! . Now bundling unittest with the package so that python 2.0 users can use the tests. . Much better error handling and messages generated by the mail gateway. Fixed: . Implemented correct mail splitting. Added unit tests. Also snips signatures now too. . Bug #447671 - typo in roundup/init.py . Changed date.Date to use regular string formatting instead of strftime - win32 seems to have problems with %T and no hour... or something... . Bug #448484 - now catching correct exception from makedirs. . Instances are now opened by a special function that generates a unique module name for the instances on import time. 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@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.0+ 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 and three database back-ends. Back-ends for relational databases are being developed. Source is available at the website: http://sourceforge.net/projects/roundup/ From Drew Csillag Thu Aug 9 17:20:31 2001 From: Drew Csillag (Drew Csillag) Date: Thu, 9 Aug 2001 12:20:31 -0400 Subject: [ANNOUNCE] SkunkWeb 3.0 Beta 1 Released! Message-ID: Version 3.0beta1 of The SkunkWeb Web Application Server has just been released. This is the first public release of skunkweb. The license is the GPL. What is it? ------------------------------ SkunkWeb is (yet another) web application server. The things that make it different from other app servers are: Uses Python * Python is easy to learn for both new programmers and experts alike * senior programmer types like it too (vs. say tcl) * extensible with C/C++ for speed and/or linkage to C/C++ libraries via static *or* dynamic linking Extensible * Relatively simple extension API * can easily handle authentication, custom url building/parsing schemes and custom tags Encourages component based design * more than just "include" * not just another ASP/JSP like thing * a powerful templating language * encouraged by caching options (see below) * component output can be either HTML or Python objects * can write components in either STML or Python * can also call components on other skunkweb servers Message Catalogs * makes multi-lingual sites much easier * support variable substitution in messages Speed * templates are compiled to Python bytecode * extensive caching (to disk and optionally memory) of: o compiled forms of templates o digested message catalogs o output of components o python modules and python components * cache *is* sharable between machines if using a shared filesystem! (can be more than one shared filesystem for speed, redundancy and flexibility) * caching is flexible and as finite as your disk space * components can be rendered after the response is sent if a slightly stale version is available --- resulting in better response times via deferred components Documentation * extensive documentation available in HTML, PostScript, PDF & text --well not yet, but getting there * have automatic documentation tools to generate documentation for STML templates (but don't use the manual stuff, it sucks). Process Model * Uses multi-process, versus multi-threading which makes better use of multiple processors (because of the global interpreter lock in Python), and is safer in that if one process crashes, it won't kill the entire server. No magic (zodb ). The release is available from the SkunkWeb home page at http://skunkweb.sourceforge.net or directly from http://prdownloads.sourceforge.net/skunkweb/skunkweb-3.0beta1.tgz Very best wishes to all, -Drew -- print(lambda(m,d,y):['Sun','Mon','Tues','Wed','Thurs','Fri','Sat'][( lambda(m,d,y):(23*m/9+d+4+y/4-y/100+y/400)%7)(m<3and(m,d+y,y-1)or(m, d+(y-2),y))])(map(int,raw_input('mm/dd/yyyy>').split('/')))+'day' From mal@lemburg.com Wed Aug 8 18:31:01 2001 From: mal@lemburg.com (M.-A. Lemburg) Date: Wed, 08 Aug 2001 19:31:01 +0200 Subject: ANN: eGenix.com mx EXPERIMENTAL Package 0.4.0 Message-ID: ________________________________________________________________________ ANNOUNCING: eGenix.com mx EXPERIMENTAL Extension Package for Python Version 0.4.0 Experimental Python extensions providing important and useful services for Python programmers. ________________________________________________________________________ WHAT IS IT ?: The eGenix.com mx EXPERIMENTAL Extensions for Python are a collection of alpha and beta quality software tools for Python which will be integrated into the other mx Extension Packages after they have matured to professional quality tools. Python is an object-oriented Open Source programming language which runs on all modern platforms (http://www.python.org/). By integrating ease-of-use, clarity in coding, enterprise application connectivity and rapid application design, Python establishes an ideal programming platform for todays IT challenges. ________________________________________________________________________ WHAT'S NEW ? This version includes a new package called *mxTidy*. See below for details. The mxNumber package was only tweaked a little to be more in sync with what Guido thinks numeric types should output under str(). ________________________________________________________________________ EGENIX.COM MX EXPERIMENTAL PACKAGE OVERVIEW: mxNumber - Python Interface to GNU MP Number Types mxNumber provides direct access to the high performance numeric types available in the GNU Multi-Precision Lib (GMP). This library is licensed under the LGPL and runs on practically all Unix platforms. eGenix.com has ported the GMP lib to Windows, to also provide our Windows users with the added benefit of being able to do arbitrary precision calculations. The package currently provide these numerical types: 1. Integer(value) -- arbitrary precision integers much like Python longs only faster 2. Rational(nom,denom) -- rational numbers with Integers as numerator and denominator 3. Float(value[,prec]) -- floating point number with at least prec bits precision 4. FareyRational(value, maxden) -- calculate the best rational represenation n/d of value such that d < maxden mxTidy - Interface to HTML Tidy (HTML/XML cleanup tool) mxTidy provides a Python interface to a thread-safe, library version of the HTML Tidy. command line tool. HTML Tidy helps you to cleanup coding errors in HTML and XML files and produce well-formed HTML, XHTML or XML as output. This allows you to preprocess web-page for inclusion in XML repositories, prepare broken XML files for validation and also makes it possible to write converters from well-known word processing applications such as MS Word to other structured data representations by using XML as intermediate format. ________________________________________________________________________ WHERE CAN I GET IT ? The download archives and instructions for installing the packages can be found at: http://www.lemburg.com/files/python/ ________________________________________________________________________ WHAT DOES IT COST ? The EXPERIMENTAL packages uses different licenses in its subpackages. Please refer to the subpackage documentation for details. Some of them may be integrated into the BASE package, others will be integrated into the COMMERCIAL package. The package come with full source code ________________________________________________________________________ WHERE CAN I GET SUPPORT ? There currently is no support for these packages, since they are still in alpha or beta. Feedback is welcome, though, so don't hesitate to write us about the quirks you find. ________________________________________________________________________ REFERENCE:

eGenix.com mx EXPERIMENTAL Extension Package 0.4.0 - eGenix.com mx EXPERIMENTAL Extension Package 0.4.0 with precompiled binaries for Windows and Linux. (08-Aug-2001) ________________________________________________________________________ Enjoy, -- Marc-Andre Lemburg CEO eGenix.com Software GmbH ______________________________________________________________________ Company & Consulting: http://www.egenix.com/ Python Software: http://www.lemburg.com/python/ From jburton@scw.org Thu Aug 9 19:07:15 2001 From: jburton@scw.org (Joel Burton) Date: Thu, 9 Aug 2001 14:07:15 -0400 (EDT) Subject: Zope/Python Users Group Meeting (Wash, DC USA): Tues Aug 21 Message-ID: The Zope/Python Users Group (held in Washington, DC USA) is holding our third sell-out meeting. Our first hour (Zope stuff) features the fine folks from ZopeCorp; our second hour (Python-o-rama) features Python & Zope guru Andreas Yung. Our meetings are open to everyone, regardless of their knowledge of Python & Zope. The meetings are a great place for networking with Zopistas and Pythoneers, learning about implementing Zope, and picking up rumors about upcoming products and changes. The meeting is held at the Support Center of Washington (Directions at scw.org/about/directions), on Tuesday, August 21, from 7pm to 9pm. Light refreshments are provided at the meeting; for more serious refreshments, we're heading out to a local pub afterwards. For info about zpug, or to join our mailing list, please visit http://zpug.org. -- Joel Burton Director of Information Systems, Support Center of Washington From just@letterror.com Fri Aug 10 10:29:03 2001 From: just@letterror.com (Just van Rossum) Date: Fri, 10 Aug 2001 11:29:03 +0200 Subject: [Package] FontTools: a font manipulation library Message-ID: My FontTools project has moved to SourceForge: http://fonttools.sourceforge.net/ Blurb: FontTools is an open source library for manipulating fonts, written in Python. It supports reading and writing of TrueType fonts, PostScript Type 1 fonts as well as AFM files and some MacOS-specific formats. Goals: quality, completeness, flexibility. Killer app: The package contains command line tools to convert TrueType fonts to an XML-based format, and back. These tools are also known as TTX. This is really a pre-announcement: the project hasn't yet released any files, so for now you're stuck with CVS or the "nightly tarball". FontTools has been in development for about two years, and parts of it (most notably the ttLib subpackage) are quite stable. I need help in the following area: installation on Windows. I would love to offer an easy to install for TTX, ready for *end users*. Yet I know virtually nothing about Windows and I don't even have access to a Windows box. I wouldn't know whether py2exe or the McMillan Installer would be more suited to this particular project. I've created two mailing lists, one for general discussion and development: fonttools-discussion@lists.sourceforge.net And one for CVS checkin messages, powered by syncmail, of python-checkins fame (Hi Barry!): fonttools-checkins@lists.sourceforge.net For subscription info please follow the "Mailing Lists" link at http://sourceforge.net/projects/fonttools/. Just From stephen_purcell@yahoo.com Fri Aug 10 17:26:37 2001 From: stephen_purcell@yahoo.com (Steve Purcell) Date: Fri, 10 Aug 2001 18:26:37 +0200 Subject: [ANNOUNCE] PyUnit 1.4.1 released Message-ID: Version 1.4.1 of the PyUnit testing framework has just been released. This is the inevitable minor bugfix release relative to Monday's 1.4 release. Summary of changes since version 1.4: - fixed an incorrect code example in cookbook document - fixed bug when running 'unittest.py' from the command line in order to execute tests in other modules (thanks to Gary Todd) * - corrected version number in distutils 'setup.py' (spotted by Jerome Marant) The release is available from the PyUnit homepage at http://pyunit.sourceforge.net/ Very best wishes to all, -Steve * This bug is also fixed in the Python CVS tree. -- Steve Purcell, Pythangelist Get testing at http://pyunit.sourceforge.net/ Fingerprint: EB79 2AB1 D494 16F9 8C3B DAC6 5341 30CE BCCA EBEA From twburton@mailaps.org Sat Aug 11 18:32:43 2001 From: twburton@mailaps.org (Tarn Weisner Burton) Date: Sat, 11 Aug 2001 12:32:43 -0500 Subject: ANN: PyOpenGL development status Message-ID: PyOpenGL has been undergoing intense development in the last six months by the PyOpenGL SourceForge group. For those who aren't in the know, PyOpenGL is a Python binding for OpenGL. There are currently two PyOpenGL code branches. The first is based on David Ascher's PyOpenGL 1.5.5 and is a collection of hand written C extensions. About a week ago the PyOpenGL team released what will probably be the last major release of this branch, PyOpenGL 1.5.7. This is mostly a bug fix release but also includes the integration of some array routines into the codebase. The second branch is a complete rewrite of PyOpenGL using the wrapper generator SWIG (you don't need SWIG to build it, only to hack on it). This is the 2.0 branch, which is currently in beta, and offers significant impovements over the previous version of PyOpenGL. Some of the new features are: 1) Complete coverage of OpenGL 1.1 2) GLU 1.3 support 3) GLUT 3.7 support 4) GLE support (Tubing and Extrusion library) 5) Support for a whole pile of OpenGL, GLU, and WGL extensions (~200) Also like PyOpenGL 1.5.7, the new PyOpenGL 2.0 includes the Tkinter widget Togl. PyOpenGL 2.0 is currently known to run Win32 and Linux but will probably work on Unix and Mac (volunteers to test this platform?). To check out either PyOpenGL 1.5.7 or 2.0 see http://pyopengl.sourceforge.net For those so inclined, new developers are always welcome, specifically we would like see PyOpenGL 2.0 running on some other platforms. Drop me a line if you're interested! We are also conducting a *short* survey regarding PyOpenGL usage, fill out copy if you get a chance and help the development effort! http://sourceforge.net/survey/survey.php?group_id=5988&survey_id=12087 thanks, Tarn Weisner Burton From andymac@bullseye.apana.org.au Sun Aug 12 13:54:29 2001 From: andymac@bullseye.apana.org.au (Andrew MacIntyre) Date: Sun, 12 Aug 2001 22:54:29 +1000 (EST) Subject: ANN: updated port of Python 2.1.1 to OS/2+EMX In-Reply-To: Message-ID: I have uploaded an updated port of Python 2.1.1 to the incoming directories of the Hobbes (http://hobbes.nmsu.edu) and LEO (http://archiv.leo.org/) OS/2 software archives. The update contains the following changes:- - os.spawnv() and os.spawnve() use the native EMX routines rather than emulate them with fork(); - pythonpm.exe is now a real PM app with behaviour somewhat akin to the pythonw.exe in the Windows distribution. The distributed archives are: python-2.1.1-os2emx-bin-010812.zip (binary installation package, 3.0MB) python-2.1.1-os2emx-src-010812.zip (source patches and makefiles, 106kB) For those who already have the 010805 distribution, you only need to get python-2.1.1-os2emx-upd-010812.zip (250kB) Note that the update archive has not been uploaded to Hobbes or LEO. It is available at http://www.andymac.org/python.html, along with the above archives are if you can't find them at Hobbes or LEO. OS/2 users enjoy! -- Andrew I MacIntyre "These thoughts are mine alone..." E-mail: andymac@bullseye.apana.org.au | Snail: PO Box 370 andymac@pcug.org.au | Belconnen ACT 2616 Web: http://www.andymac.org/ | Australia From akuchlin@mems-exchange.org Mon Aug 13 16:58:48 2001 From: akuchlin@mems-exchange.org (Andrew Kuchling) Date: Mon, 13 Aug 2001 11:58:48 -0400 Subject: Experimental py2tex 0.90 release Message-ID: I've packaged up Jeroen van Maanen's py2tex, which typesets Python source code into LaTeX. http://www.amk.ca/python/code/py2tex.html The packaging is currently experimental; the largest uncertainty is whether the setup.py script will find your TeX installation. If you try it out, please let me know if the LaTeX .sty file wound up in the right place. (Or, more importantly, if it didn't!) Another question for users: the default setting uses mathematical symbols in a few cases. For example, the 'in' operator in 'A in B' is converted to the mathematical symbol for 'is a member of', and in 'if' statements, 'and' and 'or' are converted to the logical symbols. I'm greatly tempted to turn this off by default, but would like to hear opinions on the issue. --amk From Drew Csillag Mon Aug 13 17:49:49 2001 From: Drew Csillag (Drew Csillag) Date: Mon, 13 Aug 2001 12:49:49 -0400 Subject: [ANN] SkunkWeb 3.0 Beta 2 Message-ID: Version 3.0beta2 of The SkunkWeb Web Application Server has just been released. The release is available from the SkunkWeb home page at http://skunkweb.sourceforge.net or directly from http://prdownloads.sourceforge.net/skunkweb/skunkweb-3.0beta2.tgz What's new? ------------------------------ * Many updates to the Operations Manual * new manual for PyDO * added a FAQ * bugfixes to configure script (no longer requires *GNU* Make or *GNU* install) * sessionHandler bugfixes * added a PostgreSQL session store for sessionHandler * bugfixes to the PyDO package * ubiquitous minor tweaks What is it? ------------------------------ SkunkWeb is (yet another) web application server. The things that make it different from other app servers are: Uses Python * Python is easy to learn for both new programmers and experts alike * senior programmer types like it too (vs. say tcl) * extensible with Python, of course * extensible with C/C++ for speed and/or linkage to C/C++ libraries via static *or* dynamic linking Extensible * Relatively simple extension API * can easily handle authentication, custom url building/parsing schemes and custom tags Encourages component based design * more than just "include" * not just another ASP/JSP like thing * a powerful templating language * encouraged by caching options (see below) * component output can be either HTML or Python objects * can write components in either STML or Python * can also call components on other skunkweb servers Message Catalogs * makes multi-lingual sites much easier * support variable substitution in messages Speed * templates are compiled to Python bytecode * extensive caching (to disk and optionally memory) of: o compiled forms of templates o digested message catalogs o output of components o python modules and python components * cache *is* sharable between machines if using a shared filesystem! (can be more than one shared filesystem for speed, redundancy and flexibility) * caching is flexible and as finite as your disk space * components can be rendered after the response is sent if a slightly stale version is available --- resulting in better response times via deferred components Documentation * extensive documentation available in HTML, PostScript, PDF & text --well not yet, but getting there * have automatic documentation tools to generate documentation for STML templates (but don't use the manual stuff, it sucks). Process Model * Uses multi-process, versus multi-threading which makes better use of multiple processors (because of the global interpreter lock in Python), and is safer in that if one process crashes, it won't kill the entire server. No magic (zodb ). Very best wishes to all, -Drew -- print(lambda(m,d,y):['Sun','Mon','Tues','Wed','Thurs','Fri','Satur'][( lambda(m,d,y):(23*m/9+d+4+y/4-y/100+y/400)%7)(m<3and(m,d+y,y-1)or(m, d+(y-2),y))])(map(int,raw_input('mm/dd/yyyy>').split('/')))+'day' From guido@python.org Tue Aug 14 19:43:34 2001 From: guido@python.org (Guido van Rossum) Date: Tue, 14 Aug 2001 14:43:34 -0400 Subject: Revised PEP 237 - Unifying Long Integers and Integers Message-ID: Please comment on the completely revised PEP 237: http://python.sourceforge.net/peps/pep-0237.html I'm proposing an implementation plan that keeps int and long as separate types, but otherwise will totally remove the differences. I'm also proposing a transition plan that does one easy thing in 2.2 (change ops that raise OverflowError to return a long result instead), and puts off addressing the more severe incompatibilities to 2.3. This is mostly because I don't see how we can make time to design and implement the necessary future statements or other compatibility measures in time. Please mail comments to me or to python-dev@python.org. --Guido van Rossum (home page: http://www.python.org/~guido/) From Drew Csillag Tue Aug 14 20:51:05 2001 From: Drew Csillag (Drew Csillag) Date: Tue, 14 Aug 2001 15:51:05 -0400 Subject: [ANN] PyDO 1.0 Python Data Objects Message-ID: What is PyDO? PyDO is a Object-Relational database access tool. Unlike many other O-R database access tools, PyDO: * easy to wrap your head around * doesn't constrain your schema to what it thinks databases should look like * if you need/want to override the way it does it's work, it's not a major surgical effort * has tools that will, given a database connection (for Oracle and PostgreSQL anyway) can do a lot of the work for you in writing your data classes. * like any good tool, makes the easy stuff a no-brainer and makes the harder things easier too. * works with more than one database (currently Oracle, PostgreSQL and MySQL, but others are definitely possible) * is easy to figure out how it works and when it does things so that you won't piss off your DB admin Go to the PyDO page for more details: http://skunkweb.sourceforge.net/pydo.html Download it here: http://prdownloads.sourceforge.net/skunkweb/PyDO-1.0.tar.gz -- print(lambda(m,d,y):['Sun','Mon','Tues','Wed','Thurs','Fri','Satur'][( lambda(m,d,y):(23*m/9+d+4+y/4-y/100+y/400)%7)(m<3and(m,d+y,y-1)or(m, d+(y-2),y))])(map(int,raw_input('mm/dd/yyyy>').split('/')))+'day' From itang@spc.ca Thu Aug 16 00:05:50 2001 From: itang@spc.ca (Ian Tang) Date: Wed, 15 Aug 2001 16:05:50 -0700 Subject: Mark Lutz's Python: Object Oriented Scripting Seminar Message-ID: Mark Lutz's "Python: Object Oriented Scripting" seminar: http://www.spc.ca/training/public/python.htm is coming to Seattle, Washington October 11-12 Vancouver, Canada October 16-17 Washington, DC October 25-26 Register early to save $120 and to receive a free copy of Mark Lutz's "Programming Python 2nd Edition" (O'Reilly 2001) Details and online registration available at http://www.spc.ca/training/index.htm Questions? Contact training@spc.ca or call toll-free 1-877-548-1948 x. 122. Ian Tang Training Manager Software Productivity Center, Inc. Suite 460 - 1122 Mainland Street Vancouver, BC Canada V6B 5L1 p. 604-662-8181 ext. 122 f. 604-689-0141 From jack@oratrix.nl Thu Aug 16 14:13:39 2001 From: jack@oratrix.nl (Jack Jansen) Date: Thu, 16 Aug 2001 15:13:39 +0200 Subject: MacPython 2.1.1 available Message-ID: MacPython 2.1.1 is available, installers in various forms can be found via http://www.cwi.nl/~jack/macpython.html . Aside from the general 2.1.1 fixes (see www.python.org for a full list) the main things fixed in this release are: - IDE didn't work on MacOS 8.5. Fixed. - Same for the Fm module. - sys.path entries with non-ascii characters didn't work. Fixed. There's a host of minor fixes, the release notes have the details. -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ From Drew Csillag Thu Aug 16 15:47:07 2001 From: Drew Csillag (Drew Csillag) Date: Thu, 16 Aug 2001 10:47:07 -0400 Subject: [ANN] PyDO 1.0.1 Object-Relational mapping released! Message-ID: Go to the PyDO page for more details: http://skunkweb.sourceforge.net/pydo.html Download it here: http://prdownloads.sourceforge.net/skunkweb/PyDO-1.0.1.tar.gz What's new? -------------------- * now works with Python 2.2a1 * many fixes to the PostgreSQL driver What is PyDO? PyDO is a Object-Relational database access tool. Unlike many other O-R database access tools, PyDO: * easy to wrap your head around * doesn't constrain your schema to what it thinks databases should look like * if you need/want to override the way it does it's work, it's not a major surgical effort * has tools that will, given a database connection (for Oracle and PostgreSQL anyway) can do a lot of the work for you in writing your data classes. * like any good tool, makes the easy stuff a no-brainer and makes the harder things easier too. * works with more than one database (currently Oracle, PostgreSQL and MySQL, but others are definitely possible) * is easy to figure out how it works and when it does things so that you won't piss off your DB admin Cheers, Drew -- print(lambda(m,d,y):['Sun','Mon','Tues','Wed','Thurs','Fri','Satur'][( lambda(m,d,y):(23*m/9+d+4+y/4-y/100+y/400)%7)(m<3and(m,d+y,y-1)or(m, d+(y-2),y))])(map(int,raw_input('mm/dd/yyyy>').split('/')))+'day' From knight@baldmt.com Fri Aug 17 17:28:31 2001 From: knight@baldmt.com (Steven Knight) Date: Fri, 17 Aug 2001 11:28:31 -0500 (CDT) Subject: ANNOUNCE: work-in-progress SCons design doc available Message-ID: A work-in-progress design document for the Python-based SCons software construction tool is now available at the SCons documentation page: http://www.scons.org/doc.html The SCons design document is available in HTML, PDF, and PostScript. The design document is very much an in-progress work and will change in response to additional discussion and input. In particular, the document has a number of sections where questions are open, input is needed, etc. Input on these issues (or any other) is very welcome. The design is largely based on the ScCons design from last year's Software Carpentry contest, with changes based on ongoing discussion on the SCons development mailing list: scons-devel@lists.sourceforge.net An initial alpha release of SCons, containing support for an initial, minimal subset of its functionality, is currently targetted for release within the next three months. (Now we'll see how close we come to that... :-) --SK From brian.lloyd@zope.com Fri Aug 17 21:22:12 2001 From: brian.lloyd@zope.com (Brian Lloyd) Date: Fri, 17 Aug 2001 16:22:12 -0400 Subject: ANNOUNCE: Zope 2.4.1 beta 1 released Message-ID: Hello all, Zope 2.4.1 beta 1 has been released - you can download it from Zope.org: http://www.zope.org/Products/Zope/2.4.1b1/ Zope 2.4.1 contains several fixes including fixes to product auto-refresh, WebDAV locking and the ZCatalog. It also contains all hotfixes to date. For more information on what is new in this release, see the CHANGES.txt and HISTORY.txt files for the release: http://www.zope.org/Products/Zope/2.4.1b1/CHANGES.txt http://www.zope.org/Products/Zope/2.4.1b1/HISTORY.txt For more information on the available Zope releases, guidance for selecting the right distribution and installation instructions, please see: http://www.zope.org/Documentation/Misc/InstallingZope.html Brian Lloyd brian@zope.com Zope Corporation www.zope.com From guido@python.org Thu Aug 23 05:40:39 2001 From: guido@python.org (Guido van Rossum) Date: Thu, 23 Aug 2001 00:40:39 -0400 Subject: Near Final PEP 237 - Unifying Long Integers and Integers Message-ID: Please comment on a new version of PEP 237: http://python.sourceforge.net/peps/pep-0237.html I've updated a few parts of the PEP for more accuracy and to reflect more implementation details. I've had very few negative responses to this PEP, and quite a few positive, so I'm assuming this is not controversial and we can follow the transition plan described in the PEP. Only phase A of the transition plan will be implemented in Python 2.2. I've implemented phase A completely, and tentatively checked it into CVS; unless a major showstopper is brought up I will release it with Python 2.2a3 (it didn't make it into 2.2a2). Please use the SF bug tracker to report bugs in the implementation. Please mail comments on the PEP to python-dev@python.org or to me. --Guido van Rossum (home page: http://www.python.org/~guido/) From Drew Csillag Thu Aug 23 17:29:27 2001 From: Drew Csillag (Drew Csillag) Date: Thu, 23 Aug 2001 12:29:27 -0400 Subject: [ANN] SkunkWeb 3.0 Released! Message-ID: After a couple of Betas, version 3.0 of The SkunkWeb Web Application Server has just been released. The release is available from the SkunkWeb home page at http://skunkweb.sourceforge.net or directly from http://prdownloads.sourceforge.net/skunkweb/skunkweb-3.0.tgz What's new? ------------------------------ * Fixes to the demo docs due to changes at slashdot and freshmeat * Fix to remove an erroneous SyntaxWarning * no longer require GNU xargs, GNU find or GNU bash * PyDO now should work with Python 2.2 * PyDO PostgreSQL connection fixes * sessionHandler fixes * <:sendmail:> tag fixed * configure cleanups What is it? ------------------------------ SkunkWeb is (yet another) web application server. The things that make it different from other app servers are: Uses Python * Python is easy to learn for both new programmers and experts alike * senior programmer types like it too (vs. say tcl) * extensible with Python, of course * extensible with C/C++ for speed and/or linkage to C/C++ libraries via static *or* dynamic linking Extensible * Relatively simple extension API * can easily handle authentication, custom url building/parsing schemes and custom tags Encourages component based design * more than just "include" * not just another ASP/JSP like thing * a powerful templating language * encouraged by caching options (see below) * component output can be either HTML or Python objects * can write components in either STML or Python * can also call components on other skunkweb servers Message Catalogs * makes multi-lingual sites much easier * support variable substitution in messages Speed * templates are compiled to Python bytecode * extensive caching (to disk and optionally memory) of: o compiled forms of templates o digested message catalogs o output of components o python modules and python components * cache *is* sharable between machines if using a shared filesystem! (can be more than one shared filesystem for speed, redundancy and flexibility) * caching is flexible and as finite as your disk space * components can be rendered after the response is sent if a slightly stale version is available --- resulting in better response times via deferred components Documentation * extensive documentation available in HTML, PostScript, PDF & text --well not yet, but getting there * have automatic documentation tools to generate documentation for STML templates (but don't use the manual stuff, it sucks). Process Model * Uses multi-process, versus multi-threading which makes better use of multiple processors (because of the global interpreter lock in Python), and is safer in that if one process crashes, it won't kill the entire server. No magic (zodb ). Very best wishes to all, -Drew -- print(lambda(m,d,y):['Sun','Mon','Tues','Wednes','Thurs','Fri','Satur' ][(lambda(m,d,y):(23*m/9+d+4+y/4-y/100+y/400)%7)(m<3and(m,d+y,y-1)or( m,d+(y-2),y))])(map(int,raw_input('mm/dd/yyyy>').split('/')))+'day' From ChuckEsterbrook@yahoo.com Fri Aug 24 02:21:05 2001 From: ChuckEsterbrook@yahoo.com (Chuck Esterbrook) Date: Thu, 23 Aug 2001 21:21:05 -0400 Subject: PySSH 0.1 released Message-ID: PySSH 0.1 has been released under the Python license. PySSH is a Python module for programmatically controlling ssh and scp. You can download the release, access CVS, etc. at: http://pyssh.sourceforge.net/ Questions and comments can be directed to: pyssh-discuss@lists.sourceforge.net -Chuck Esterbrook From x@vex.net Sun Aug 12 20:05:51 2001 From: x@vex.net (Parnassus Submission) Date: Sun, 12 Aug 2001 15:05:51 -0400 (EDT) Subject: [Module] pypopt Message-ID: pypopt ------ bindings for the popt (command-line processing) library pypopt is a set of bindings for the Popt library. This provides another way for Python developers to do command-line parsing besides the standard Python getopt module. URL: http://agrajag.linuxpower.org/projects/pypopt/ License: LGPL Platform: Linux Requires: popt Categories: Parsing/Formatting Jag -- pypopt -- bindings for the popt (command-line processing) library From x@vex.net Tue Aug 14 07:06:14 2001 From: x@vex.net (Parnassus Submission) Date: Tue, 14 Aug 2001 02:06:14 -0400 (EDT) Subject: [Application] Web Site Check V1.0 Message-ID: Web Site Check V1.0 ------------------- This script monitors a web site by checking one specific page. This script will attempt to connect to one web site and download one page; if the script cannot connect or the page returns a status other than OK (200), the script will log the down time and send e-mails. The next time the script runs, if all is OK, then another e-mail will be sent indicating that the site is now up. If the site is still down, more e-mails will be sent indicating how long the site has been down. This script is meant to run periodically, such as every ten minutes or every hour. License: Public Domain Platform: All Requires: None Binaries: None Gui: None Categories: Utility Apps R Lind -- Web Site Check V1.0 -- This script monitors a web site by checking one specific page. From x@vex.net Tue Aug 14 07:06:43 2001 From: x@vex.net (Parnassus Submission) Date: Tue, 14 Aug 2001 02:06:43 -0400 (EDT) Subject: [Application] Web Site Check V1.0 Message-ID: Web Site Check V1.0 ------------------- This script monitors a web site by checking one specific page. This script will attempt to connect to one web site and download one page; if the script cannot connect or the page returns a status other than OK (200), the script will log the down time and send e-mails. The next time the script runs, if all is OK, then another e-mail will be sent indicating that the site is now up. If the site is still down, more e-mails will be sent indicating how long the site has been down. #################################################################################################### # WebSiteCheck.py # 2001/08/02 # Original version: RL # copyright 2001, no rights reserved. # # This script is meant to run periodically, such as every ten minutes or every hour. # This script will attempt to connect to one web site and download one page; if the script cannot # connect or the page returns a status other than OK (200), the script will log the down time and # send e-mails. The next time the script runs, if all is OK, then another e-mail will be sent # indicating that the site is now up. If the site is still down, more e-mails will be sent # indicating how long the site has been down. #################################################################################################### # imports import httplib import time import smtplib import string # declare variables sModuleName = 'WebSiteCheck' # name of this module sFromAddress = '{put the from address here}' # the from address for the e-mails sWebSiteAddress = '{put the URL to check here' # the web site to check sWebSitePageName = '{put the page to get here}' # this is the page that the script will try to get sDownLogFileName = sFromAddress + '.txt' # this file contains the starting down time in minutes sRunLogFileName = sFromAddress + '.log' # this file contains log entries and web site response strings # create three parallel lists to map the dest addresses with the proper mail server; the SMTP server addresses must match the e-mail addresses lstToAddressSeq = [0, 1, 2] lstToAddresses = ['{put e-mail address 1 here}', '{put e-mail address 2 here}', '{put e-mail address 3 here}'] lstToSMTPServers = ['{put SMTP server 1 here}', '{put SMTP server 2 here}', '{put SMTP server 1 here}'] ###################### Don't change anything after this line ############################# fRunLog = '' # open file pointer fDownLog = '' # open file pointer fFile = '' # open file pointer sSubject = '' # e-mail subject lCurrentMinute = 0 # current time in minutes from Jan 1 2001 lMinuteDiff = 0 # difference between 'lCurrentMinute' and when the error was noticed lMinuteCount = 0 # contains the integer value of how long the site has been down sMinuteCount = '0' # contains the string equivalent of 'lMinuteCount' # function to convert year/month/day/hour/minute into the number of minutes since Jan 1 2001 def ConvertDateTimeToMinutesSinceJan1(sYear, sMonth, sDay, sHour, sMinute): n = (int(sYear) - 2001) * 535680 # 535680 = 12 month * 31 days * 24 hours * 60 minutes n = n + int(sMonth) * 44640 # 44640 = 31 days * 24 hours * 60 minutes n = n + int(sDay) * 1440 # 1440 = 24 hours * 60 minutes n = n + int(sHour) * 60 # minutes in an hour n = n + int(sMinute) return n # function to log a message in the Run Log def LogMessage(s): lstCurrentTime = time.localtime(time.time()) # get the current date and time into an array timCurrentTime = time.strftime('%Y/%m/%d %H:%M:%S', lstCurrentTime) # format time string fRunLog = open (sRunLogFileName, 'a') fRunLog.write(sModuleName + ' ' + timCurrentTime + ' ' + s + '\n') fRunLog.close() # log the execution of the script LogMessage('Checking ' + sWebSiteAddress) # calculate the current time in minutes from Jan 1 2001 lstTime = time.localtime(time.time()) lCurrentMinute = ConvertDateTimeToMinutesSinceJan1(lstTime[0], lstTime[1], lstTime[2], lstTime[3], lstTime[4]) # get down time start from file; 0 means the site was not down try: fDownLog = open (sDownLogFileName, 'r') # open file with read-only access sMinuteCount = fDownLog.readline() # get minute count of when the site went down; '0' means that the site was up; non-zero means that the site was down fDownLog.close() except: sMinuteCount = '0' # file not found, set to 0 fDownLog = open (sDownLogFileName, 'w+') # open file with write-access and truncate the contents fDownLog.write(sMinuteCount) # write it out to the file fDownLog.close() lMinuteCount = string.atoi(sMinuteCount) # convert to integer lMinuteDiff = int(lCurrentMinute) - int(lMinuteCount) # diff between start of down time and now; if down time is 0 then this is the current time in minutes since the first of the year # http setup try: h = httplib.HTTP(sWebSiteAddress) h.putrequest('GET', sWebSitePageName) # try to get this page h.putheader('Accept', 'text/html') h.putheader('Accept', 'text/plain') h.endheaders() # http call errcode, errmsg, headers = h.getreply() except: # we can't connect at all # open the log file LogMessage('Unable to connect to the web site' + sWebSiteAddress) errcode = 0 # force an error by setting the error code to 0 msg = '' # null out the message var; if it is not null at the end of the script, send e-mail if errcode == 200: # web site up, check downtime log: if a non-zero value exists, send e-mail that the site is up and put '0' in downtime log to indicate that the site is up fFile = h.getfile() h.close resp = fFile.read() # Get the raw HTML fFile.close() if resp != '': LogMessage('Response:' + resp) else: LogMessage('Connected but unable to get a response from the web site') if sMinuteCount == '0': # website is up and saved downtime start = 0, nothing to do msg = '' else: # website is up and saved downtime start > 0, tell users that site is responding sSubject = 'NOTICE: Web site ' + sWebSiteAddress + ' is responding' msg = "From: %s\r\nTo: %s\r\nSubject:%s\r\n\r\n" %(sFromAddress, lstToAddresses, sSubject) msg = msg + 'Web site ' + sWebSiteAddress + ' is now responding. ' msg = msg + ' Site was down for ' + '%(lMinuteDiff)d' %vars() + ' minutes.' lMinuteCount = 0 # write out the down time start set to 0 sMinuteCount = ('%(lMinuteCount)d' %vars()) # convert to string fDownLog = open (sDownLogFileName, 'w+') # truncate and open for writing fDownLog.write(sMinuteCount) # write out '0' for down time start fDownLog.close() else: # site is down LogMessage(sWebSiteAddress + ' is down') sSubject = 'CRITICAL: Web site ' + sWebSiteAddress + ' does not respond' msg = "From: %s\r\nTo: %s\r\nSubject:%s\r\n\r\n" %(sFromAddress, lstToAddresses, sSubject) msg = msg + 'Web site ' + sWebSiteAddress + ' does not respond.' if errcode == 0: msg = msg + ' No error code returned.' else: msg = msg + ' Error ' + '%(errcode)d' %vars() + ' returned.' # first time site was noticed as down, put downtime start in minutes after first of the year in downtime log if sMinuteCount == '0': sCurrentMinute = ('%(lCurrentMinute)d' %vars()) # convert to string fDownLog = open (sDownLogFileName, 'w+') # truncate and open for writing fDownLog.write(sCurrentMinute) fDownLog.close() msg = msg + ' Outage just detected.' else: msg = msg + ' Outage was first detected ' + '%(lMinuteDiff)d' %vars() + ' minutes ago.' # finish message and send if msg != '': # if not null, send message for i in lstToAddressSeq[:]: # loop thru all the addresses smtpIP=lstToSMTPServers[i] toaddr=lstToAddresses[i] try: server = smtplib.SMTP(smtpIP) # server.set_debuglevel(1) server.sendmail(sFromAddress, toaddr, msg) server.quit() time.sleep(1) # release processor between messages except: LogMessage('Unable to send mail to ' + toaddr + ' using ' + smtpIP) # the end License: Public Domain Platform: All Requires: None Binaries: None Gui: None Categories: Utility Apps R Lind -- Web Site Check V1.0 -- This script monitors a web site by checking one specific page. From thanos@scriptfoundry.com Tue Aug 14 18:53:14 2001 From: thanos@scriptfoundry.com (thanos vassilakis) Date: Tue, 14 Aug 2001 13:53:14 -0400 (EDT) Subject: [Module] MapList Message-ID: MapList ------- A container class that offers Dictonary, List and Set behavior. A container class that offers Dictonary, List and Set behavior. Use it when you need a dictionary but you want the order of the items maintained. Also with large sets of data MapList can be considerably faster than equivilent containers. URL: http://www.scriptfoundry.com/modules/maplist/ Download: http://www.scriptfoundry.com/modules/dist/maplist.py License: Open Source Platform: any Requires: None Gui: N/A Categories: Data Structures thanos vassilakis (thanos@scriptfoundry.com) http://www.scriptfoundry.com/~thanos/ -- MapList -- A container class that offers Dictonary, List and Set behavior. From gmcm@hypernet.com Sat Aug 25 17:41:45 2001 From: gmcm@hypernet.com (Gordon McMillan) Date: Sat, 25 Aug 2001 12:41:45 -0400 Subject: ANN: Installer release 4a3 (Windows & Linux) Message-ID: This release of Installer brings the Linux and Windows versions together. Windows users get some bug fixes & minor enhancements. Linux users get everything Windows users have: - self extracting executables - advanced dependency analysis - one download that works with any Python from 1.5 to 2.1 Users of the earlier Linux versions will notice that most of the annoyances are gone: - scripts are hash-banged and executable - executable outputs are chmod'd - command line args are more conventional - output directory can be specified on the command line What is it? The Installer is a set of tools for distributing Python applications. The target machines do not need to have Python installed, or may have a different version of Python installed. Installer can create single directory or single file distributions of your app. Old-Python-style license. Contact: gmcm@hypernet.com

Installer release 4a3 A compiler-less way of distributing Python apps (Windows & Linux). (25-Aug-01) From jason@tishler.net Sun Aug 26 02:37:54 2001 From: jason@tishler.net (Jason Tishler) Date: Sat, 25 Aug 2001 21:37:54 -0400 Subject: Cygwin Python 2.1.1 Message-ID: I have updated Python in the standard Cygwin distribution to 2.1.1. Python is located in the contrib/python directory on the Cygwin mirrors. Cygwin's setup.exe will automatically install or update Python the next time one installs or updates from a mirror. If interested, see the following for a copy of the original announcement: http://www.cygwin.com/ml/cygwin-announce/2001/msg00103.html I kindly request that people post to python-list@python.org or cygwin@cygwin.com as appropriate instead of emailing me directly. Thanks, Jason From altis@semi-retired.com Mon Aug 27 16:05:44 2001 From: altis@semi-retired.com (Kevin Altis) Date: Mon, 27 Aug 2001 08:05:44 -0700 Subject: PythonCardPrototype release 0.4.3 Message-ID: PythonCard is a software construction kit (in the spirit of Apple's HyperCard) written in Python. You can download the latest release at: http://sourceforge.net/project/showfiles.php?group_id=19015 Samples included in the latest release: addresses, conversions, dbBrowser, dialogs, findfiles, minimal, proof, resourceEditor, searchexplorer, sounds, SourceForgeTracker, textIndexer, tictactoe, turtle, widgets, worldclock To see screenshots of some of the samples, visit: http://pythoncard.sourceforge.net/samples.html A description of each sample is included in the docs directory. PythonCard home page http://pythoncard.sourceforge.net/ SourceForge summary page http://sourceforge.net/projects/pythoncard/ Mailing list http://lists.sourceforge.net/lists/listinfo/pythoncard-users PythonCard requires Python 2.1.x or later and wxPython 2.3.x. wxPython is available at http://www.wxpython.org/ PythonCard relies on wxPython, it will support the Macintosh once wxPython has been ported to the Mac. PyCrust 0.5.3 PyCrust by Patrick K. O'Brien is included as part of the PythonCardPrototype releases. If you would like to find our more about PyCrust or get a separate distribution, please visit the home page at http://sourceforge.net/projects/pycrust/ ---------------------------- Changes since release 0.4.1 (2001-08-16): Release 0.4.3 2001-08-23 Andy Todd converted worldclock so that it no longer requires an external JavaScript program to run added samples.txt file to the docs directory to document the purpose of each sample application fixed numerous display bugs in the Property Editor including the selection bug which was causing a KeyError when using the resourceEditor resourceEditor changes added a Help menu, About resourceEditor... menu item View attributes display is now more complete Property Editor is shown by default the Shell is now shown by default for the turtle sample added addresses sample, which shows the conversion of an existing HyperCard stack background layout and data to PythonCard. addresses does transparent saves of data and can import contacts from Outlook as well. disabled helpText attribute Release 0.4.2.1 2001-08-21 Property Editor is now a listener of the WidgetDict class so the component list is automatically updated as widgets are added and deleted resourceEditor sample changes added Duplicate Widget menu item fixed the selection code Property Editor now updates correctly script added to dbBrowser sample to populate a mySQL test database Release 0.4.2 2001-08-20 the PythonCard mailing list has moved to http://lists.sourceforge.net/lists/listinfo/pythoncard-users the home page has been redesigned and the other HTML pages have been validated to make sure they conform to the HTML spec. the HTML pages in the docs\html directory can now be used locally, they will fetch the large JPEG images from the web. the Property Editor can now edit widget attributes added getPosition/setPosition and getSize/setSize to Background added basic mouse events to StaticText, StaticLine, and Image widgets converted Dan Winkler's original PythonCard demo app to the PythonCardPrototype framework, renamed it textIndexer and made it a sample. It currently requires ZODB to run You can use standalone ZODB or ZODB from Zope, see the readme.txt in the textIndexer directory for more info Andy Todd added his dbBrowser sample which is able to browse mySQL databases. readme.txt in the dbBrowser directory for more info added a resourceEditor sample, which is the beginnings of a GUI resource (.rsrc.py files) editor. see the readme.txt in the resourceEditor directory for more info From oktay_safak@yahoo.com Sun Aug 26 19:28:58 2001 From: oktay_safak@yahoo.com (Oktay Safak) Date: Sun, 26 Aug 2001 11:28:58 -0700 (PDT) Subject: Turkish Pythoneers Sought - Announcement of new YahooGroup Message-ID: Hi all, After subscribing to python-list@python.org some time ago, I observed that *NO* turkish fellows seemed to be posting to the list. Also I failed to find *ANY* turkish python sites on the Web. I was contacted by a turkish friend shortly after my first post and we discussed what could be done about this situation. As a first step a Yahoo Group was set up by him piton@yahoogroups.com A web site will also be set up, I hope, in the following weeks (check turkpthon.port5.com from time to time), which will be announced here as well. So, I invite all turkish pythoneers reading this message to join our group. Snakely Yours, Oktay Safak __________________________________________________ Do You Yahoo!? Make international calls for as low as $.04/minute with Yahoo! Messenger http://phonecard.yahoo.com/ From gmcm@hypernet.com Tue Aug 28 19:01:24 2001 From: gmcm@hypernet.com (Gordon McMillan) Date: Tue, 28 Aug 2001 14:01:24 -0400 Subject: ANN: MkSQL release 0a0 Message-ID: The first alpha release of MkSQL is here: http://www.mcmillan-inc.com/mksqlintro.html What is it? MkSQL is a Python package which implements a SQL front end to the MetaKit database. It implements a large subset of the SQL 2 (aka SQL 92) standard, and comes with a Python DBI version 2 interface. Prerequisites: Python 2.1 (or later). MetaKit 2.4 including the metakit.py wrapper. mx.TextTools from the egenix mxBase package. (Links on page referenced above). More Details: MkSQL can be used to query or update any existing MetaKit database which has a relational structure. Basically that means that subviews are ignored. In addition, if you use MkSQL to define your database structure, MkSQL will enforce integrity constraints on all update, insert and delete statements. Note that MkSQL is not a database server. MetaKit is an embedded database, and MkSQL does nothing to change that. License: MIT license. Contact: gmcm@hypernet.com

MkSQL release 0a0 A SQL front-end for MetaKit (cross-platform). (28-Aug-01) - Gordon From richard@bizarsoftware.com.au Wed Aug 29 07:54:30 2001 From: richard@bizarsoftware.com.au (Richard Jones) Date: Wed, 29 Aug 2001 16:54:30 +1000 Subject: [announce] Roundup issue tracker version 0.2.6 Message-ID: Roundup 0.2.7 - an issue tracking system This is predominantly a bugfix release. Feature: . Text searches are now case insensitive. All forms of text search use regular expressions now. Fixed: . Had another 2.1-ism in the unit tests . Made the mail parser a little more robust w.r.t missing Subject: (both thanks Mikhail Sobolev) . Missed some isFooType usages (thanks Mikhail Sobolev for spotting them) . Reverted back to sending change messages to the web editor of a node so that the change note message is actually generated. . CGI interface wasn't generating correct change messages. . Notes entered during a change are saved to the messages list even if there's no nosy list. No message is generated if there's no nosy list and there's no change note (since it would just duplicates the journal). . Completely removed the bsddb3 module from the tests - will be reinstated when the http://bsddb.sourceforge.net/'s bugs #439959 and #456408 are dealt with. One is fixed in CVS, the other pending. 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.0+ 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 and three database back-ends. Back-ends for relational databases are being developed. Source is available at the website: http://sourceforge.net/projects/roundup/ From pstoltz@txcorp.com Thu Aug 30 00:56:37 2001 From: pstoltz@txcorp.com (Peter Stoltz) Date: Wed, 29 Aug 2001 17:56:37 -0600 (MDT) Subject: [Utility] PyDebug Message-ID: PyDebug ------- PyDebug provides a convenient and integrated way to debug Python and C/C++/Fortran extension modules. It creates a seamless interface between Python and gdb. URL: http://www.techxhome.com/freestuff/pydebug/ Download: http://www.techxhome.com/freestuff/pydebug/registrationpage.html Version: 0.9b License: Free for non-commercial use Platform: Unix/Linux Requires: gdb, thread, pty, termios Gui: N/A Categories: Integrated debugging Peter Stoltz (pstoltz@txcorp.com) http://www.techxhome.com/ -- PyDebug -- A tool for integrated debugging of compiled language extensions. (27-Aug-01) -- From richard@bizarsoftware.com.au Thu Aug 30 07:05:53 2001 From: richard@bizarsoftware.com.au (Richard Jones) Date: Thu, 30 Aug 2001 16:05:53 +1000 Subject: [announce] Roundup issue tracker version 0.2.8 Message-ID: Roundup 0.2.8 - an issue tracking system This is a bugfix release. Fixed: . Missing import in mailgw. 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.0+ 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 and three database back-ends. Back-ends for relational databases are being developed. Source is available at the website: http://sourceforge.net/projects/roundup/ From jafo@tummy.com Fri Aug 31 06:50:29 2001 From: jafo@tummy.com (Sean Reifschneider) Date: Thu, 30 Aug 2001 23:50:29 -0600 Subject: Python 2.1.1-3 RPMs updated with LFS Message-ID: Guido has put up my RPMs for Python 2.1.1 (thanks) at: http://www.python.org/2.1.1/rpms.html This includes Large File Support which enables the writing of files larger than 2GB. This also works around the problem with the interpreter exiting when a file reaches 2GB. Included above are links to the SRPM (which includes tunable entries at the top of the .spec file. Also included are binary RPMs built against RedHat 7.1. To build binaries for your specific system, download the .src.rpm and do "rpm --rebuild python2-2.1.1-3.src.rpm", or install it and modify the settings in the .spec file, then rebuild with "rpm -ba python-2.1.spec". Enjoy, Sean -- Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right', and 'build car'. -- John Sladek Sean Reifschneider, Inimitably Superfluous tummy.com - Linux Consulting since 1995. Qmail, KRUD, Firewalls, Python From Marc.Poinot@onera.fr Fri Aug 31 13:11:10 2001 From: Marc.Poinot@onera.fr (Marc Poinot) Date: Fri, 31 Aug 2001 14:11:10 +0200 Subject: pyCGNS-v0.2 - A Python binding to CGNS Message-ID: Hi, here's the v0.2 of the pyCGNS package. This is a specialized package for Computational Fluid Dynamics data management. FEATURES: - a simple wrapper on top of ADF calls and mid-level calls - an attempt to an Object-oriented interface to CGNS mid-level lib - all data arrays are Python Numeric Arrays - tests and demos for ADF/CGNS - Some User's Guide to CGNS examples - a naca0012 sample - a tree parser demo with an XML tree output - a tree stamper with date and/or keywords - an attempt to an extensive ADF test (not 100% coverage so far) You can get it on the ONERA anonymous ftp (send me an email if it's gone :) ftp.onera.fr:/incoming/xtmp/CGNS/pyCGNS-v0.2.tar.gz ftp.onera.fr:/incoming/xtmp/CGNS/manual.ps.gz Marcvs [alias Also tested with Python 2.2a2] From onk@section5.de Mon Aug 27 13:49:16 2001 From: onk@section5.de (Martin Strubel) Date: Mon, 27 Aug 2001 08:49:16 -0400 (EDT) Subject: [Module] vect.py Message-ID: vect.py ------- 3D vector & matrix extension Simple module, defining basic 3D vector and matrix classes plus operations - in fast low level as well as in a more OO like style (slower). URL: http://www.section5.de/frame_kc.html Download: http://www.section5.de/kc/python/vect.py License: Public Domain Categories: Math, Graphics Martin Strubel (onk@section5.de) http://www.section5.de -- vect.py -- 3D vector & matrix extension From dave@whatever.nu Tue Aug 28 03:18:14 2001 From: dave@whatever.nu (David Pettersson) Date: Mon, 27 Aug 2001 22:18:14 -0400 (EDT) Subject: [Module] Python Frame Buffer Message-ID: Python Frame Buffer ------------------- Simple graphics drawing extension with minimal event handling. The frame buffer extension was intended as a simple aid, because I always found myself hacking together some sort of way to present iterative improvement in my algorithms (e.g. shortest path, traveling salesperson problem etc). This module simplifies drawing simple things like that a lot. All that is needed to draw a line is: import fb f = fb.FrameBuffer() f.open(100, 100, 'Line Example') f.line(10, 10, 50, 50) It could also be useful when teaching younger students (or those new to Python and computer graphics) graphical algorithms. Any feedback is welcome. URL: http://dave.whatever.nu/python/fb License: BSD Style Requires: SDL Categories: Graphics David Pettersson (dave@whatever.nu) -- Python Frame Buffer -- Simple graphics drawing extension with minimal event handling. From x@vex.net Wed Aug 29 20:40:59 2001 From: x@vex.net (Parnassus Submission) Date: Wed, 29 Aug 2001 15:40:59 -0400 (EDT) Subject: [Application] mwsynth / 1.0 Message-ID: mwsynth / 1.0 ------------- mwsynth converts a text file to speech using the pronounciation feature of an online dictionary mwsynth performs speech synthesis on the text in a given input file, using the word pronounciation feature of an online dictionary. It outputs a series of numbered .wav files, which when played in ascending order, sound roughly like the text of the input file being spoken aloud. A CR separated playlist is also generated, which can be used with XMMS or WinAMP to easily play the files in the correct order. This tool is not intended for serious use, and really just constitutes a lighthearted attempt to demonstrate a mostly functional speech synthesis system in ~80 lines or so of Python. Comments and questions are welcome, although I don't intend to develop the application further. URL: http://metro.yak.net:8080/mwsynth.html Download: http://metro.yak.net:8080/mwsynth.py License: GPL Categories: Sound/Audio, Net Applications Rupert Scammell -- mwsynth / 1.0 -- mwsynth converts a text file to speech using the pronounciation feature of an online dictionary From ferdinando@ametrano.net Fri Aug 31 10:14:25 2001 From: ferdinando@ametrano.net (Ferdianando Ametrano) Date: Fri, 31 Aug 2001 05:14:25 -0400 (EDT) Subject: [Module] QuantLib-Python Message-ID: QuantLib-Python ---------------- A module for quantitative finance QuantLib-Python is a module for quantitative finance. It is a SWIG wrap of QuantLib, a C++ open source library. The QuantLib project is aimed to provide a comprehensive software framework for quantitative finance. The goal is to provide a standard free/open-source library to quantitative analysts and developers for modelling, trading, and risk management in real-life. QuantLib plans to offer tools that are useful for both practical implementation, with features such as market conventions, solvers, PDEs, etc., and advanced modelling, e.g., exotic options and interest rate models. QuantLib is for academics and practitioners, eventually promoting a stronger interaction between the two. URL: http://quantlib.org Download: http://sourceforge.net/project/showfiles.php?group_id=12740 License: BSD Style Requires: QuantLib Binaries: Win32, Linux Categories: Miscellany, Finance Ferdianando Ametrano (ferdinando@ametrano.net) www.ametrano.net -- QuantLib-Python -- A module for quantitative finance From tbabbitt@comspeed.net Thu Aug 30 21:28:10 2001 From: tbabbitt@comspeed.net (Tom Babbitt) Date: Thu, 30 Aug 2001 16:28:10 -0400 (EDT) Subject: [Application] Global Digital Elevation Model Data Viewer Python Script Message-ID: Global Digital Elevation Model Data Viewer Python Script -------------------------------------------------------- Viewer for GTOPO30 - Global Topographic Data The program starts by opening a DEM (Digital Elevation Model) file. This program requires the .dem file, the .gif file and the .hdr file from the GTOPO30 archive. The right panel contains controls for setting the Longitude, Latitude and size of the area to be rendered. You can also set the area using the mouse. When you are done selecting the area press the Refresh button on the left panel to display the 3D image. The left panel controls set the rotation angle, the angle above the horizon and the distance in pixel units out from the center for the grid type of rendering. The Display control selects the type of rendering method. You can change any of these factors and just press the Refresh button to display changes. I have only tested this out on Win 98. URL: http://users.commspeed.net/tbabbitt/rbranch_strangness5.htm Download: http://users.commspeed.net/tbabbitt/images/globalDEMV.py License: Public Domain Requires: wxPython, Dislin, Global Topographic Data Gui: wxPython Categories: Graphics, Applications Tom Babbitt (tbabbitt@comspeed.net) http://users.commspeed.net/tbabbitt/ -- Global Digital Elevation Model Data Viewer Python Script -- Viewer for GTOPO30 - Global Topographic Data