From Python Developer List Mon Jun 2 17:18:43 2003 From: Python Developer List (=?ISO-8859-1?Q?Michael_Str=F6der?=) Date: Mon, 02 Jun 2003 18:18:43 +0200 Subject: ANN: python-ldap-2.0.0pre13 Message-ID: Find a new pre-release of python-ldap: http://python-ldap.sourceforge.net/ python-ldap provides an object-oriented API to access LDAP directory servers from Python programs. It mainly wraps the OpenLDAP 2.x libs for that purpose. Additionally it contains modules for other LDAP-related stuff (e.g. processing LDIF, LDAPURLs and LDAPv3 schema). ---------------------------------------------------------------- Released 2.0.0pre13 2003-06-02 Changes since 2.0.0pre12: ldap.async: - Checking type of argument writer_obj relaxed in LDIFWriter.__init__() since file-like objects are not necessarily an instance of file. ldap.schema: - ldap.schema.subentry.SubSchema.attribute_types() now correctly handles attribute types without NAME set - If SUP is not defined for a structural object class 'top' is assumed to be the only super-class by default - '_' is now the abstract top node in SubSchema.tree() for all schema element classes since ABSTRACT and AUXILIARY object classes are not derived from 'top' by default From tom1@launchbird.com Tue Jun 3 00:06:35 2003 From: tom1@launchbird.com (Tom Hawkins) Date: 2 Jun 2003 16:06:35 -0700 Subject: ANN: Confluence -> Python for Hardware Verification Message-ID: Over the weekend we released Confluence 0.4.6: the first version to included the new Python model generator. Confluence is a functional programming language for hardware and logic design. Though its syntax is much simpler than either Verilog or VHDL, it's semantics enables a level of design flexibility beyond the reach of either HDL. Til now, Confluence compiled into Verilog and VHDL for logic synthesis and cycle-accurate C for high-speed simulation and hardware-software co-development. With the addition of the Python model generator, hardware designers can now use the high-level constructs of our favorite language (Python!) to perform functional verification. We were very surprised by Python's simulation performance; Python simulation of our benchmarks was right on par with HDL event-based simulators. Not bad for a "scripting" language! For more info on Confluence: http://www.launchbird.com/ To see Confluence output, including generated Python models visit any of the Confluence projects at: http://www.opencores.org/ Regards, Tom -- Tom Hawkins Launchbird Design Systems, Inc. 952-200-3790 tom1@launchbird.com http://www.launchbird.com/ From gh@ghaering.de Tue Jun 3 04:03:27 2003 From: gh@ghaering.de (Gerhard Haering) Date: Tue, 3 Jun 2003 05:03:27 +0200 Subject: [ANN] PySQLite 0.4.2 released Message-ID: What is PySQLite? It's a Python-DB API 2.0 compliant extension module that uses the SQLite embedded SQL database. No external SQL server required. It's home is at http://pysqlite.sf.net/ Files are downloadable from http://sourceforge.net/project/showfiles.php?group_id=54058 Release impact: Unfortunately, I made a mistake while packacking the tarball for 0.4.1, so that the 0.4.1 tarball didn't actually contain all the fixes that got into 0.4.1, but contained older revisions of the various files instead. So now is a good time to upgrade if you are interested in the many bugfixes that went into 0.4.1 :-) As no new bugs were reported since 0.4.1, I consider the PySQLite API and the software itself stable now. Consider the "beta" label lifted. Of course, no new release without new goodies. Because it's already quite late I'll just paste the raw changelog (created using cvs2cl): 2003-06-03 03:10 ghaering * sqlite/__init__.py (1.16, REL_0_4_2): 0.4.2. 2003-06-03 03:08 ghaering * _sqlite.c (1.32), sqlite/main.py (1.26) (utags: REL_0_4_2): - Added SQL command logging. Use a file-like object for the command_logfile parameter in your connect() call. - Added an optional timeout parameter for the connect() call. You can set a timeout value in milliseconds using the 'timout' parameter now. See the documentation for _sqlite.sqlite_busy_timeout for details. 2003-06-03 02:38 ghaering * setup.py (1.19, REL_0_4_2): - Rename package from "sqlite-python" to "pysqlite". - Support for the Python Package Index (PyPI). 2003-06-03 02:33 ghaering * test/: all_tests.py (1.8), api_tests.py (1.14), logging_tests.py (1.1), lowlevel_tests.py (1.8), pgresultset_tests.py (1.6), testsupport.py (1.1), transaction_tests.py (1.4), type_tests.py (1.8), userfunction_tests.py (1.8) (utags: REL_0_4_2): - Support for running test cases in in-memory databases, if the SQLite version is current enough. - New test cases for SQL command logging. 2003-06-03 02:30 ghaering * debian/changelog (1.7, REL_0_4_2): 0.4.2. 2003-05-30 17:15 ghaering * setup.py (1.18), sqlite/main.py (1.25), test/api_tests.py (1.13), test/type_tests.py (1.7): - Defer transaction start to first call of execute(). This should make PySQLite a little more suitable for certain multi-user environments. For these people who think SQLite is a good tool for this job, anyway. - Allow the usage of %i and %f instead of %s for int/long/float in quoting. I don't think that this is a good idea. But certain people like this form better. As %s still works that way, support both styles. - Support __quote__ as a custom quote method for compatibility with pyPgSQL and psycopg. _quote is now deprecated. - Test cases for all of these. 2003-04-10 16:24 owensmk * examples/calflora/aggregates.py (1.5, REL_0_4_2): - Fixed typo in variance. 2003-04-01 03:30 ghaering * _sqlite.c (1.31), sqlite/__init__.py (1.15), sqlite/main.py (1.24), test/type_tests.py (1.6): - Dropped DATETIME type code, added support for INTERVAL type - Added support for automatic conversion from DATE/TIME/TIMESTAMP/INTERVAL columns, without the need to use the "-- types" magic SQL comment - Added tests for this automatic conversion and enabled and made the tests for the SQLite type support actually work 2003-03-23 21:32 jrosdahl * debian/: changelog (1.6), control (1.3, REL_0_4_2), copyright (1.3, REL_0_4_2), rules (1.2, REL_0_4_2): Updated Debian package files to match those in Debian package python-sqlite 0.4.1-2. 2003-03-21 12:42 ghaering * _sqlite.c (1.30): Use staticforward instead of static as a workaround for broken compilers like MSVC6 that can't statically forward-declare arrays. From kbk@shore.net Tue Jun 3 04:40:15 2003 From: kbk@shore.net (Kurt B. Kaiser) Date: Mon, 02 Jun 2003 23:40:15 -0400 Subject: ANNOUNCE: IDLEfork-0.9b1 Released Message-ID: The IDLEfork 0.9 Beta 1 release is now available for download at: http://sourceforge.net/projects/idlefork/ The distribution is available as Windows Installer for Python 2.2 and 2.3, as a Python2 RPM, and in source form as a .tar.gz. These files install as IDLEfork. However, there is also an IDLE .tar.gz, which will replace the existing IDLE in your Python installation. Please read the release notes (which include installation instructions) at Sourceforge for additional details. Click on Download, then on IDLEfork-0.9b1 to display them. 0.9 Beta 1 Highlights ===================== It is now possbile to interrupt tightly looping user code on Windows. An Autosave configuration selection has been added. When enabled, user source code will be saved automatically before each Run/F5. Shell restart is available from the shell menu and as Ctrl-F6. Restart annotation has been improved, as has termination of errant user code and automatic restart of the shell if the subprocess terminates. Directory handling improvements: The directory of the module being run is added to sys.path and also becomes the cwd of the shell, allowing IDLE to find modules and data in that directory. Line-ending codes are preserved when editing files. You can now edit a Python file on several platforms and the file will retain its original line endings. The ability to run without a subprocess has been restored. This is useful for platforms which don't support subprocesses and/or sockets. It's also useful for developing IDLE using IDLE. Just start with the -n switch. If IDLE is not installed (lives in Tools but not in site-packages), it will run from any directory if called by an absolute path. This allows installing multiple versions in different directories for testing. Many bug fixes and usability enhancements. Refer to NEWS.txt for further details. IDLEfork ======== IDLEfork is an official experimental fork of Python's Integrated DeveLopment Environment, IDLE. The biggest change is to execute Python code in a separate process, which is /restarted/ for each Run (F5) initiated from an editor window. This enhancement of IDLE has often been requested, and is now finally available, complete with the IDLE debugger. The magic "reload/import *" incantations are no longer required when editing/testing a module two or three steps down the import chain. It is possible to interrupt tightly looping user code with a control-c, even on Windows. There is also a new GUI configuration manager which makes it easy to select fonts, colors, keybindings, and startup options. There is new feature where the user can specify additional help sources, either locally or on the web. There is an Autosave option. IDLEfork will be merged back into the Python distribution in the near future (probably 2.3), replacing the current version of IDLE. If you find bugs let us know about them by using the IDLEfork Bug Tracker. See the IDLEfork home page at http://idlefork.sourceforge.net for details. Patches are always appreciated at the IDLEfork Patch Tracker, and Change Requests should be posted to the RFE Tracker at https://sourceforge.net/tracker/?group_id=9579&atid=359579 There is a mail list for IDLE: idle-dev@python.org. You can join at http://mail.python.org/mailman/listinfo/idle-dev Thanks for trying IDLEfork. From Raymond Hettinger" For those interested in learning about Python's descriptors, here is a write-up on what they are, how they work, and how to use them: http://users.rcn.com/python/download/Descriptor.htm Raymond Hettinger From jjl@pobox.com Tue Jun 3 14:48:10 2003 From: jjl@pobox.com (John J. Lee) Date: 03 Jun 2003 14:48:10 +0100 Subject: ANN: ClientForm 0.0.8 released Message-ID: http://wwwsearch.sourceforge.net/ClientForm/ This stable release fixes two very minor, but very annoying, bugs: Changes since 0.0.7: * Fixed HTMLForm.__str__ so it returns something useful again. * Added documentation explaining the peculiar single-checkbox-with- missing-value-attribute case (the peculiarity here is not my fault!). Requires Python >= 1.5.2. ClientForm is a Python module for handling HTML forms on the client side, useful for parsing HTML forms, filling them in and returning the completed forms to the server. It has developed from a port of Gisle Aas' Perl module HTML::Form, from the libwww-perl library, but the interface is not the same. Simple example: from urllib2 import urlopen from ClientForm import ParseResponse forms = ParseResponse(urlopen("http://www.acme.com/form.html")) form = forms[0] form["author"] = "Gisle Aas" # form.click returns a urllib2.Request object # (see HTMLForm.click.__doc__ if you don't have urllib2) response = urlopen(form.click("Thanks")) John From ahaas@airmail.net Tue Jun 3 22:03:14 2003 From: ahaas@airmail.net (Art Haas) Date: Tue, 3 Jun 2003 16:03:14 -0500 Subject: [ANNOUNCE] Seventh development release of PythonCAD available Message-ID: I'd like to announce the seventh development release of PythonCAD, a CAD package for open-source software users. As the name implies, PythonCAD is written entirely in Python. The goal of this project is to create a fully scriptable drafting program that will match and eventually exceed features found in commercial CAD software. PythonCAD is released under the GNU Public License (GPL). PythonCAD requires Python 2.2. The interface is GTK 2.0 based, and uses the PyGTK module for interfacing to GTK. The design of PythonCAD is built around the idea of separating the interface from the back end as much as possible. By doing this, it is hoped that both GNOME and KDE interfaces can be added to PythonCAD through usage of the appropriate Python module. Addition of other interfaces will depend on the availability of a Python module for that particular interface and developer interest and action. The seventh release adds the ability to draw tangent construction circles against one or two other construction objects, and the ability to easily draw a construction line tangent to two construction circles. The drawing of parallel construction lines has been simplified with the addition of a menu choice for doing this task. There are numerous internal code cleanups and revisions, and a large number of changes that moved more code into the interface neutral code directory. These code changes will hopefully make it easier for developers to add new interfaces to PythonCAD. Many bug fixes and code improvements have been added as well. PythonCAD now also has the first iteration of a command interpreter thanks to the work of David Broadwell. Future releases of PythonCAD will build on the work he has contributed to make it easier to use PythonCAD by typing commands in the entry field at the bottom of the screen. Between the sixth and seventh release a mailing list for developing and using PythonCAD has been set up thanks to Barry Warsaw. The mailing list home is found at: http://mail.python.org/mailman/listinfo/pythoncad This page has instructions for joining the mailing list and web archives of the list postings. I'd like to publicly acknowledge and thank the developers and maintainers of PyChecker for the work they've done in developing this most useful tool. PyChecker is an effective tool for identifying errors in Python code, and I've been using it more and more. PyChecker gets a big recommendation from me and so I say thank you to the people who make it available. http://pychecker.sourceforge.net/ Visit the PythonCAD web site for more information about what PythonCAD does and aims to be: http://www.pythoncad.org/ Come and join me in developing PythonCAD into a world class drafting program! Art Haas -- Man once surrendering his reason, has no remaining guard against absurdities the most monstrous, and like a ship without rudder, is the sport of every wind. -Thomas Jefferson to James Smith, 1822 From gh@ghaering.de Wed Jun 4 03:05:55 2003 From: gh@ghaering.de (Gerhard Haering) Date: Wed, 4 Jun 2003 04:05:55 +0200 Subject: [ANN] PySQLite 0.4.3 released In-Reply-To: <20030603030322.GA2619@lilith.ghaering.test> References: <20030603030322.GA2619@lilith.ghaering.test> Message-ID: (Un)fortunately, it was discovered that 0.4.2 introduced a new bug: you couldn't commit/rollback if you haven't done anything in a transaction. So you'd have to execute at least one SQL command. I consider this a serious enough bug to release 0.4.3 immediately. Full changelog since 0.4.2 follows: 2003-06-04 01:27 ghaering * _sqlite.c (tags: REL_0_4_3): I have a new email address. 2003-06-04 01:18 ghaering * README (tags: REL_0_4_3): I have a new email address. 2003-06-04 01:15 ghaering * sqlite/main.py (tags: REL_0_4_3): The transaction handling optimization introduced a bug: connections couldn't be commited or rolled back when no cursor.execute() has been done on them, yet. This fixes the bug. 2003-06-04 01:13 ghaering * setup.py, debian/copyright, sqlite/__init__.py (utags: REL_0_4_3): - Bump version number to 0.4.3. - I have a new email address. 2003-06-04 01:09 ghaering * test/transaction_tests.py (tags: REL_0_4_3): Tests that check if it's possible to commit()/rollback() when no actual SQL commands have been sent, yet. This bug was introduced by a transaction handling optimization. 2003-06-03 08:33 jrosdahl * debian/: changelog, control (utags: REL_0_4_3): Updated Debian package files to match those in Debian package python-sqlite 0.4.2-1. From Tom Deprez" Hi all, Some talk slides are already available to be looked at. Have a look at: http://www.europython.org/sessions/talks/slidespapers Watch for more in the future. You can also access the slides through the detailed view of each talk or from the matrix / list talk presentation Regards, Tom. From olivier.ravard@novagrid.com Thu Jun 5 10:06:37 2003 From: olivier.ravard@novagrid.com (Olivier Ravard) Date: Thu, 05 Jun 2003 11:06:37 +0200 Subject: rcs manager Message-ID: Hi, I'd like to aanouce the first release of RCSmanager which is a front-end to RCS unix commands (ci, co, rcs, rlog). This software is under GPL and is hosted by sourceforge : http://sourceforge.net/projects/rcsmanager Enjoy, O.R. From altis@semi-retired.com Thu Jun 5 17:53:52 2003 From: altis@semi-retired.com (Kevin Altis) Date: Thu, 5 Jun 2003 09:53:52 -0700 Subject: ANN: free mailing list hosting now available for Python User Groups Message-ID: Barry Warsaw has created a mailman hosting site for Python User Groups. The hosting is free and all administration is handled through the mailman web interface. The instructions for getting your list created have been added to the User Groups page: http://www.python.org/UserGroups.html#usergroups If you already have a Python User Group, but don't have a mailing list or would like to move your existing group to mailman, this is a simple way to make the switch. This is also a great opportunity to start a Python User Group in your area. BTW, we're looking for a volunteer to lead the Python user groups effort. We need some web pages to help people get started creating a group, the benefits, etc. If you're interested in leading this effort or have past experience in organizing user groups and would like to help, please email me directly. Local Python advocacy and support is important to promoting Python. A big thanks to Barry for taking care of the mailing list obstacle. ka --- Kevin Altis altis@semi-retired.com http://altis.pycs.net/ http://www.pythoncard.org/ From Tom Deprez" Hi all, Here we are with the second EuroPython2003 interview, read about Michael Hudson. You'll also find out about the PyPy project, since the interview happened right at the moment when Michael was pypy sprinting! http://www.europython.org/other/interviews/entries/michael_hudson Regards, EuroPython From davida@ActiveState.com Fri Jun 6 06:42:26 2003 From: davida@ActiveState.com (David Ascher) Date: Thu, 05 Jun 2003 22:42:26 -0700 Subject: Active Awards Programmers' Choice Nominees are in! Please Vote. Message-ID: Active Awards Programmers' Choice Nominees are in! Vote for your favorite Thanks to the community for recognizing their peers in ActiveState's third annual Active Awards. The awards honor those who *actively* contribute to open source programming languages and display excellence in their programming efforts. Nominated in the Python category are: * David Goodger * Edward Ream * Jack Jansen * Mark Hammond * Matthew "Glyph" Lefkowitz Please vote for your favorite programmer at http://www.ActiveState.com/Corporate/ActiveAwards/ before the June 30 deadline! -- David Ascher From halley@dnspython.org Fri Jun 6 06:56:32 2003 From: halley@dnspython.org (Bob Halley) Date: 05 Jun 2003 22:56:32 -0700 Subject: ANN: dnspython 1.0.0a2 Message-ID: dnspython 1.0.0a2 has been released. Here is the README file from the release: dnspython INTRODUCTION dnspython is a DNS toolkit for Python. It supports all of the common record types and will support all types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython provides both high and low level access to DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. To see a few of the ways dnspython can be used, look in the examples/ directory. dnspython originated at Nominum where it was developed to facilitate the testing of DNS software. Nominum has generously allowed it to be open sourced under a BSD-style license, and helps support its future development by continuing to employ the author :). ABOUT THIS RELEASE This is dnspython 1.0.0a2. New in this release: An Update class. You can now generate and execute DNS dyanmic updates more easily than before. For example: update = DNS.update.Update('dyn.test.example', keyring=keyring) update.replace('host', 300, 'a', sys.argv[1]) response = DNS.query.tcp(update, '10.0.0.1') Names have become immutable. The documentation has been extensively enhanced and corrected. This release fixes all known bugs from 1.0.0a1. Although the software is already useful, there are a number of things to do before the first stable release, including: implementing the rest of the DNS rdata types, creating some introductory documentation to go along with the existing reference documentation, and thorough testing. See the ChangeLog file for more detailed information on changes since the prior release. REQUIREMENTS Python 2.2 or later. INSTALLATION To build and install dnspython, type python setup.py install HOME PAGE For the latest in releases, documentation, and information, visit the dnspython home page at http://www.dnspython.org/ DOCUMENTATION Documentation is sparse at the moment. Use pydoc, or read the HTML documentation at the dnspython home page, or download the HTML documentation. BUG REPORTS Bug reports may be sent to bugs@dnspython.org MAILING LISTS A number of mailing lists are available. Visit the dnspython home page to subscribe or unsubscribe. From terry@wayforward.net Fri Jun 6 21:03:44 2003 From: terry@wayforward.net (Terence Way) Date: Fri, 6 Jun 2003 16:03:44 -0400 Subject: ANN: Design By Contract for Python 1.0 beta 2 Message-ID: Announcing Design By Contract for Python 1.0 beta 2 (Changes since last announcement at end of this email) Design by Contract is familiar to anyone who has spent time with the Eiffel programming language. This implementation is a cross between full Eiffel-style contracts and the doctest module. Contracts are high-level assertions that are part of the program's documentation. Modules and classes have invariants, expressions that must be true at the start and end of every public function or method call. Methods and functions have pre-conditions, expressions that must be true on entry; and post-conditions, expressions that must be true on exit. http://www.wayforward.net/pycontract/ This version supports the full contract feature set: * pre: expressions in function and method docstrings; * post: expressions in function and method docstrings; * inv: expressions in class and module docstrings; * post: expressions can access __old__ values and the __return__ value; * pre: expressions are weakened by derived methods; and * post: and inv: expressions are tightened by derived classes. Version 1.0 beta 2 - 06 June 2003 * Use separate exception classes eg PreconditionViolationError instead of AssertionError * Correctly weaken pre-conditions: they are not ORed; instead, if a method fails its precondition and an overridden method's pre- conditions are still valid, raise an InvalidPreconditionError. * Support Re-Structured Text (ReST) by allowing :: after pre, post, inv keywords * Invariants aren't checked after constructor throws exception * Only scan for code objects actually defined in specified module, not just all objects in module namespace * Save docstring line numbers, useful when raising exceptions to tell where in the code the exception actually came from.

Contract 1.0 beta2 - Design By Contract for Python. (06-Jun-03) From webmaster@keyphrene.com Sat Jun 7 07:47:58 2003 From: webmaster@keyphrene.com (webmaster@keyphrene.com) Date: Sat, 7 Jun 2003 6:47:58 GMT Subject: ANNOUNCE: Naja 0.8.1 is now available Message-ID: Naja is a freeware tool written in Python/wxPython. Naja is a download manager and a website grabber. It can be used for extract JPEG images from news server. Version 0.8.1 of Naja has been released and is available for download from the Keyphrene web site: http://www.keyphrene.com products/naja From pje@telecommunity.com Sat Jun 7 23:11:13 2003 From: pje@telecommunity.com (Phillip J. Eby) Date: Sat, 07 Jun 2003 18:11:13 -0400 Subject: PyProtocols 0.9 Message-ID: Do you hate having to write lots of if-then logic to test what type something is? Wouldn't it be nice if you could just declare "I want this object to have this behavior" and magically convert whatever value you have, to the type you need? PyProtocols lets you do just that, cleanly, quickly, and robustly -- even with built-in types or other people's classes. PyProtocols extends the PEP 246 adapt() function with a new "declaration API" that lets you easily define your own interfaces and adapters, and declare what adapters should be used to adapt what types, objects, or interfaces. In addition to its own Interface type, PyProtocols can also use Twisted and Zope X3's Interface types. (Of course, since Twisted and Zope interfaces aren't as flexible, only a subset of the PyProtocols API works with them. Specific limitations are listed in the documentation.) If you're familiar with Interface objects in Zope, Twisted, or PEAK, the Interface objects in PyProtocols are very similar. But, they can also do many things that no other Python interface types can do. For example, PyProtocols supports "subsetting" of interfaces, where you can declare that one interface is a subset of another existing interface. This is like declaring that somebody else's existing interface is actually a subclass of the new interface. Twisted and Zope don't allow this, which makes them very hard to use if you're trying to define interfaces like "Read-only Mapping" as a subset of "Mapping Object". Unlike Zope and Twisted, PyProtocols also doesn't force you to use a particular interface coding style or even a specific interface type. You can use its built-in interface types, or define your own. If there's another Python package out there with interface types that you'd like to use (CORBA? COM?), you can even create your own adapters to make them work with the PyProtocols API. PyProtocols is also the only interface package that supports automatic "transitive adaptation". That is, if you define an adapter from interface A to interface B, and another from B to C, PyProtocols automatically creates and registers a new adapter from A to C for you. If you later declare an explicit adapter from A to C, it silently replaces the automatically created one. PyProtocols may be used, modified, and distributed under the same terms and conditions as Python or Zope. PyProtocols resources include: * Release notes, installation instructions, and browsable API docs: http://peak.telecommunity.com/protocol_api/ * Source and Binary Releases: http://peak.telecommunity.com/dist/ * Reference Manual (HTML): http://peak.telecommunity.com/protocol_ref/module-protocols.html * Reference Manual (PDF): http://peak.telecommunity.com/protocol_ref.pdf * Browsable CVS Repository: http://cvs.eby-sarna.com/PyProtocols/ Version 0.9 of PyProtocols is a complete, working release, so you can download it now and try it out. But, the exact spellings of the API and other interfaces may be subject to change in the future. We would like feedback from the community on the current API, as some API names may not be clear or obvious yet. Please contact the author with your input. From max@alcyone.com Mon Jun 9 03:52:04 2003 From: max@alcyone.com (Erik Max Francis) Date: Sun, 08 Jun 2003 19:52:04 -0700 Subject: ANN: EmPy 3.0 -- Python templating system Message-ID: Summary A templating system for Python. Overview EmPy is a system for embedding Python expressions and statements in template text; it takes an EmPy source file, processes it, and produces output. This is accomplished via expansions, which are special signals to the EmPy system and are set off by a special prefix (by default the at sign, '@'). EmPy can expand arbitrary Python expressions and statements in this way, as well as a variety of special forms. Textual data not explicitly delimited in this way is sent unaffected to the output, allowing Python to be used in effect as a markup language. Also supported are callbacks via hooks, recording and playback via diversions, and dynamic, chainable filters. The system is highly configurable via command line options and embedded commands. Expressions are embedded in text with the '@(...)' notation; variations include conditional expressions with '@(...?...!...)' and the ability to handle thrown exceptions with '@(...$...)'. As a shortcut, simple variables and expressions can be abbreviated as '@variable', '@object.attribute', '@function(arguments)', '@sequence[index]', and combinations. Full-fledged statements are embedded with '@{...}'. Control flow in terms of conditional or repeated expansion is available with '@[...]'. A '@' followed by a whitespace character (including a newline) expands to nothing, allowing string concatenations and line continuations. Comments are indicated with '@#' and consume the rest of the line, up to and including the trailing newline. '@%' indicate "significators," which are special forms of variable assignment intended to specify per-file identification information in a format which is easy to parse externally. Escape sequences analogous to those in C can be specified with '@\...', and finally a '@@' sequence expands to a single literal at sign. Getting the software The current version of empy is 3.0. The latest version of the software is available in a tarball here: http://www.alcyone.com/pyos/empy/empy-latest.tar.gz. The official URL for this Web site is http://www.alcyone.com/pyos/empy/. Requirements EmPy should work with any version of Python from 1.5.2 onward. It has been tested with all major versions of CPython from 1.5 up, and Jython from 2.0 up. The included test script is intended to run on UNIX-like systems with a Bourne shell. License This code is released under the GPL. .... Release history [since 2.3] - 3.0; 2003 Jun 1. Control markups with '@[...]'; remove substitutions (use control markups instead); support '@(...?...!...)' for conditional expressions in addition to the now-deprecated '@(...?...:...)' variety; add acknowledgements and glossary sections to documentation; rename buffering option back to -b; add -m option and 'EMPY_PSEUDO' environment variable for changing the pseudomodule name; add -n option and 'EMPY_NO_OVERRIDE' environment variable for suppressing 'sys.stdout' proxy; rename main error class to 'Error'; add standalone 'expand' function; add --binary and --chunk-size options; reengineer parsing system to use Tokens for easy extensibility; safeguard curly braces in simple expressions (meaningless in Python and thus likely a typographical error) by making them a parse error; fix bug involving custom Interpreter instances ignoring globals argument; distutils support. -- Erik Max Francis && max@alcyone.com && http://www.alcyone.com/max/ __ San Jose, CA, USA && 37 20 N 121 53 W && &tSftDotIotE / \ What a crime to waste [youth] on children. \__/ George Bernard Shaw From richard@mechanicalcat.net Mon Jun 9 05:20:34 2003 From: richard@mechanicalcat.net (Richard Jones) Date: Mon, 9 Jun 2003 14:20:34 +1000 Subject: SC-Track Roundup 0.6.0b2 - an issue tracking system Message-ID: --Boundary-02=_WsA5+/tGGynImwJ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Description: signed data Content-Disposition: inline =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D SC-Track Roundup 0.6.0b2 - an issue tracking system =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D This is the second release of the new version of Roundup which contains a lot of new features. This release may contain bugs, so please run this using a backup of your production tracker. Always follow the "Software Upgrade" guidelines given in the maintenance documentation. If you're upgrading from an older version of Roundup you *must* read doc/upgrading.txt! Unfortunately, the Zope frontend for Roundup is currently broken, with no fix in the forseeable future. The gadfly backend has now been removed, having served its purpose as a template for other RDBMS implementations. It is replaced by the mysql backend. Roundup requires python 2.1.3 or later for correct operation. This release has a couple of bufixes mostly important to Windows users, making it possible for them to install new trackers! The 0.6 release has lots of new goodies including: =2D new instant-gratification Demo Mode ("python demo.py" :) =2D added mysql backend (see doc/mysql.txt for details) =2D web interface cleanups including nicer history display, nicer index navigation and nicer popup list windows =2D searching of date ranges =2D better international support, including utf-8 email handling and ability to display localized dates in web interface. =2D more documentation including revamped design document, unix manual pages and some FAQ entries =2D significantly more powerful form handling allowing editing of multiple = items and creation of multiple items =2D tracker templates can contain subdirectories and static files (e.g. ima= ges) and we may now distribute templates separately from Roundup. Template HTML files now have a .html extension too. =2D user registration is now a two-step process, with confirmation from the= =20 email address supplied in the registration form, and we also have a password re= set feature for forgotten password / login =2D Windows Service mode for roundup-server when daemonification is attempt= ed on Windows. =2D fixed issues with dumb email or web clients =2D lots more little tweaks and back-end work... =2D email system handles more SMTP and POP features (TLS, APOP, ...) Source and documentation is available at the website: http://roundup.sourceforge.net/ Release Info (via download page): http://sourceforge.net/projects/roundup Mailing lists - the place to ask questions: http://sourceforge.net/mail/?group_id=3D31577 About Roundup =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Roundup is a simple-to-use and -install issue-tracking system with=20 command-line, web and e-mail interfaces. It is based on the winning design= =20 from Ka-Ping Yee in the Software Carpentry "Track" design competition. Note: Ping is not responsible for this project. The contact for this projec= t=20 is richard@users.sourceforge.net. Roundup manages a number of issues (with flexible properties such as=20 "description", "priority", and so on) and provides the ability to: (a) submit new issues, (b) find and edit existing issues, and (c) discuss issues with other participants. The system will facilitate communication among the participants by managing discussions and notifying interested parties when issues are edited. One of the major design goals for Roundup that it be simple to get going. Roundup is therefore usable "out of the box" with any python 2.1+ installation. It doesn't even need to be "installed" to be operational, though a disutils-based install script is provided. It comes with two issue tracker templates (a classic bug/feature tracker and a minimal skeleton) and six database back-ends (anydbm, bsddb, bsddb3, sqli= te, metakit and mysql).=20 --Boundary-02=_WsA5+/tGGynImwJ Content-Type: application/pgp-signature Content-Description: signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+5AsWrGisBEHG6TARAsu4AJ9q139w9O+mXqADQTl+VrCkMKiAPQCfVUis fU3q6DoGqVrpYcnx1Nl52SY= =EwMs -----END PGP SIGNATURE----- --Boundary-02=_WsA5+/tGGynImwJ-- From jason@tishler.net Mon Jun 9 12:27:59 2003 From: jason@tishler.net (Jason Tishler) Date: Mon, 09 Jun 2003 07:27:59 -0400 Subject: Updated Cygwin Package: python-2.2.3-1 Message-ID: New News: === ==== I have updated the version of Python to 2.2.3-1. The tarballs should be available on a Cygwin mirror near you shortly. Old News: === ==== Python is an interpreted, interactive, object-oriented programming language. If interested, see the Python web site for more details: http://www.python.org/ Please read the README file: /usr/doc/Cygwin/python-2.2.3.README since it covers requirements, installation, known issues, etc. To update your installation, click on the "Install Cygwin now" link on the http://cygwin.com/ web page. This downloads setup.exe to your system. Then, run setup and answer all of the questions. Note that we have recently stopped downloads from sources.redhat.com (aka cygwin.com) due to bandwidth limitations. This means that you will need to find a mirror which has this update. In the US, ftp://mirrors.rcn.net/mirrors/sources.redhat.com/cygwin/ is a reliable high bandwidth connection. In Germany, ftp://ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/mirrors/cygnus/ is usually pretty good. In the UK, http://programming.ccp14.ac.uk/ftp-mirror/programming/cygwin/pub/cygwin/ is usually up-to-date within 48 hours. If one of the above doesn't have the latest version of this package then you can either wait for the site to be updated or find another mirror. The setup.exe program will figure out what needs to be updated on your system and will install newer packages automatically. If you have questions or comments, please send them to the Cygwin mailing list at: cygwin@cygwin.com . I would appreciate if you would use this mailing list rather than emailing me directly. This includes ideas and comments about the setup utility or Cygwin in general. If you want to make a point or ask a question, the Cygwin mailing list is the appropriate place. *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain.com@cygwin.com Jason -- PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6 From Tom Deprez" Hi all, We did some re-arangement of the website and added a complete new section to it. I think you all will going to love this one. It contains all practical information when being at Charleroi. We encourage to print it out -before you go to Charleroi- you never know when you need it! We will also put this information in the EuroPython2003 brochure. The new section is called: 'At Charleroi', and the following information is available: General Info: http://www.europython.org/information/generalInfo Transportation: http://www.europython.org/information/transportation Meeting Places: http://www.europython.org/information/meetingPlaces Regards, EuroPython webteam From jjl@pobox.com Mon Jun 9 20:57:06 2003 From: jjl@pobox.com (John J. Lee) Date: 09 Jun 2003 20:57:06 +0100 Subject: ANN: ClientForm 0.0.9 and 0.1.2a released Message-ID: http://wwwsearch.sourceforge.net/ClientForm/ A new stable and development release. Changes since 0.0.8: * Added nr argument to HTMLForm.click method. Multiple click-able controls with the same name are now accessible. * HTMLForm.__str__ is clearer and more useful (since the few remaining control types that didn't have their own class anyway now have dummy classes, you can distinguish all control types -- except the ones implemented by IgnoreControl). * Example code at http://wwwsearch.sourceforge.net/bits/fastmail.py (requires ClientCookie). The 0.1.2a development release (with possibly-working file upload -- single files only ATM) has equivalent changes, plus a bugfix. I will continue to fix any bugs in the current stable version (0.0.x) for the foreseeable future. Interface changes from 0.0.x to 0.1.x (there are more changes to come before a beta release): * Removed items argument to HTMLForm.click method, and added click_items and click_request_data methods. Removed items and make_request methods from HTMLForm. Made SubmitControl.click method private -- is now named _click, and is only called by HTMLForm. * IsindexControl is now clickable, and isindex_url has been removed, since it was essentially pointless. * Changed SelectControl so it has an attrs dict of HTML attributes. SELECT and OPTION HTML attributes are now separate. Requires Python >= 1.5.2. ClientForm is a Python module for handling HTML forms on the client side, useful for parsing HTML forms, filling them in and returning the completed forms to the server. It has developed from a port of Gisle Aas' Perl module HTML::Form, from the libwww-perl library, but the interface is not the same. Simple example: from urllib2 import urlopen from ClientForm import ParseResponse forms = ParseResponse(urlopen("http://www.acme.com/form.html")) form = forms[0] print form form["author"] = "Gisle Aas" # form.click returns a urllib2.Request object # (see HTMLForm.click.__doc__ if you don't have urllib2) response = urlopen(form.click("Thanks")) John From jjl@pobox.com Mon Jun 9 20:59:17 2003 From: jjl@pobox.com (John J. Lee) Date: 09 Jun 2003 20:59:17 +0100 Subject: ANN: ClientCookie 0.4.1a released Message-ID: http://wwwsearch.sourceforge.net/ClientCookie/ A new development release. I'm not going to maintain 0.3.x now other than for easy fixes. 0.4.x includes interface changes, but it isn't hard to switch, as long as you read the list below. If your code doesn't pass arguments to the Cookies constructor, you probably won't have to change anything at all. This is an alpha release: interfaces may change (probably not, though). 0.4.1a may or may not be more broken than 0.3.5b: lots of bugs have been fixed, but quite a bit has changed, too. Interface changes since 0.3.5b: * The Cookies class now decides whether to accept or reject cookies using a CookiePolicy object. This simplifies Cookies, and together with the switch to using Cookie objects rather than tuples, makes it easier to customise the module's behaviour. Many arguments from the Cookies constructor were moved to CookiePolicy, and it's default implementation, DefaultCookiePolicy. * Removed autosave feature. * Constructors of Cookies objects no longer try to load from the filename filename passed to the constructor -- you have to explicitly call the load method. Also, ignore_discard is now an argument of the load, save and revert methods (together with the new ignore_expires argument), rather than an attribute as it used to be. * MSIECookies constructor no longer tries to load from the file given in the registry. You have to call the load_from_registry method explicitly. Also, fixed a bug which broke the whole thing. * Several methods and arguments have been renamed: Methods: clear_temporary_cookies --> clear_session_cookies Arguments: redirect --> unverifiable (everywhere that argument occurred) in Cookies.clear method: key --> name * scan method is gone, in favour of iterator (1.5.2-compatible, via the __getitem__ hack). * Cookies are now represented by Cookie objects (more of a struct than an object, really). As a result, the set_cookie method now takes a Cookie object, not a tuple, and there is a new set_cookie_if_ok method that will set a Cookie 'manually', but only if it passes the usual tests against the Request. Cookies.cookies dictionary now contains Cookie objects. * delayload is now a public attribute. * str2time supports fewer formats (which I always warned about). * NetscapeCookies is renamed MozillaCookies to make it clear the name refers to the browser, not the protocol. Several bugs have been fixed here, too. * Modified domain blacklist algorithm: .foo.com now blocks rhubarb.foo.com and www.rhubarb.foo.com, but foo.com only blocks foo.com. Other changes: * Added domain whitelist. Blacklist is checked first, then the whitelist, if one is set. * Added clear_expired_cookies method. * Fixed lots of bugs. * Added some new bugs, no doubt. * Added some strictness switches, to control which cookies are accepted and sent back to server. * RFC 2965 rules on third party unverifiable transactions are followed, finally! You can also block Netscape cookies using the same rule, if you like, using one of the strictness switches. This is like some browsers' "Enable cookies for the originating web site only" feature. * Date handling code is now simpler -- many formats have been removed. * Clean-up of code and docs. * I've put up an example script that makes use of ClientCookie and ClientForm (and ClientTable if you have it -- which you won't, because I haven't released the required version yet :-). It involves redirects, cookies, HTTPS (if your Python has HTTPS support), forms and tables. http://wwwsearch.sourceforge.net/bits/fastmail.py Requires Python >= 1.5.2. ClientCookie is a Python module for handling HTTP cookies on the client side, useful for accessing web sites that require cookies to be set and then returned later. It also provides some other (optional) useful stuff: HTTP-EQUIV handling, zero-time Refresh handling, and lazily-seekable responses. It has developed from a port of Gisle Aas' Perl module HTTP::Cookies, from the libwww-perl library. Simple usage: import ClientCookie response = ClientCookie.urlopen("http://foo.bar.com/") This function behaves identically to urllib2.urlopen, except that it deals with cookies automatically. That's probably all you need to know. John From cja@dds.nl Tue Jun 10 02:15:36 2003 From: cja@dds.nl (Chris Abraham) Date: Mon, 9 Jun 2003 21:15:36 -0400 Subject: Calling All US-Based Zope Developers Message-ID: Hello Zopesters: SUMMARY: * Looking for full- and part-time Zope developers - Project begins in two weeks and lasts until September. - Possibility for longer-term commitment. * Must have Zope experience (not soley Python experience). - Zope Page Templates (ZPT) a plus. - Python for Zope a plus. - Plone experience a plus. * United States only. * Remote development okay but will need several face-to-face meeting so there is a preference, in order, as to location: - Washington Metro Area - Mid Atlantic - Eastern United States - Eastern half of US - United States NEEDS: * Statement of Availability (SoA) * Statement of Experience (SoE) ADDITIONAL: * If you are not available at the moment, please feel free to send me your SoA, your SoE, and your Resume/CV in text format (please no links to web sites). Thank you for your time. If you have any further questions, please feel free to send me an email. Cheers, Chris Abraham cja@dds.nl From wesc@fuzzyorange.com Tue Jun 10 19:55:21 2003 From: wesc@fuzzyorange.com (Wesley Chun) Date: Tue, 10 Jun 2003 11:55:21 -0700 (PDT) Subject: ANN: BayPIGgies mtg Wed Jun 11 7:30pm Message-ID: BayPIGgies: Silicon Valley-San Francisco Bay Area Python Users Group When: June 11, 2003 @ 7:30pm Where: Stanford University, Palo Alto, CA Agenda: BayPIGgies, OSCON/Py11, Curl, etc. This month's an informal meeting where we all get together to shoot the hay and talk about the future of BayPIGgies: upcoming meetings, stephen's and chad's survey of topics, website cleanup, and future direction now that Wesley will be preoccupied in the near-term :-). We will also ruminate about the upcoming O'Reilly Open Source Convention (OSCON) and Python 11 conference happening together in Portland the week after July 4th. Finally, anyone fiddle around with Curl and want to give a talk on it with relationship to Python? Anyway, we'll be giving away a free copy of "Enterprise Curl" by Paul Sheehan (Dec 2002: Addison-Wesley) for the lucky volunteer -- talk must be presented in 2003 ;-) -- and also another giveaway copy in a separate drawing for all attendees this month. Come join us! # Call For Talks: We are actively seeking speakers for BayPIGgies! If you would like to give a talk at one of our 2003 meetings (any Python related topic), contact us to coordinate! more info including directions: http://www.baypiggies.net hope 2 c u wednesday nite! -wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall PTR, =A9 2001 http://starship.python.net/crew/wesc/cpp/ Silicon Valley-San Francisco Bay Area Python Users Group (BayPIGgies) http://baypiggies.net wesley.j.chun :: wesc at deirdre.org or wesc at fuzzyorange.com cyberweb.consulting : henderson, nv : cyberweb at rocketmail.com http://www.roadkill.com/~wesc/cyberweb/ From tom@aragne.com Tue Jun 10 18:05:13 2003 From: tom@aragne.com (Tom Deprez) Date: Tue, 10 Jun 2003 19:05:13 +0200 Subject: EuroPython 2003 only 2 weeks ahead.. Message-ID: Hi all, We're counting the last days before EuroPython 2003. Don't miss this event! Have a look at http://www.europython.org Swift payment registration will be closed on 12/06/2003. Creditcard payment however, will stay a little longer available. Regards, EuroPython --- European Python and Zope Conference 2003 (EuroPython 2003) June 25-27, 2003 Charleroi, Belgium http://www.europython.org Only once a year do European software developers have the opportunity to learn about Python, the fastest growing, sophisticated open source application development platform. The second annual Europython conference, being held this year in Charleroi, Belgium on June 25-27, 2003, is also an opportunity to meet with fellow developers and exchange ideas and experiences. With keynote speeches that include the creator of Python; a renowned trainer and mentor in the C++ world; as well as major developer activities, the conference promises to be a breakthrough event for open software in Europe. The EuroPython conference is the premiere venue for meeting Python and Zope developers from Europe and beyond. As one of the first community-organized Python and Zope conferences, the EuroPython Conference delivers the atmosphere and information developers want. Hundreds of new and experienced developers attending the conference will see a full program, including: Keynote by Guido van Rossum, creator of Python. He created Python in the early 1990s at CWI in Amsterdam (the National Research Institute for Mathematics and Computer Science in the Netherlands). He is still actively involved in the development of the language. In 1995 he moved to the US where he now works for Zope Corporation as Director of PythonLabs, the core Python development group hosted by the same company. Keynote by Francis Glassborow, a renowned trainer and mentor in the C++ world. Over 8 years as Chairman of the Association of C & C++ Users, he built up a flourishing organisation with active involvement in ISO language standards, publishes several journals, and has a strong community embracing the authors and leading lights of C, C++, C#, Java and now Python. The conference program has over 70 presentations and tutorials in 5 tracks, including Python In Business, Python Frameworks, Python Language, Python In Science and Industry, and Zope. The program contains tutorials, presentations, lightning talks, and "birds of a feather" gatherings. Additional events include a PyPy and Zope3 sprint. EuroPython 2003 will be held in Charleroi, Belgium, a city close to Brussels. Space is filling quickly, so early registration at the EuroPython website (http://www.europython.org) is encouraged. Student discounts are available. The EuroPython 2003 conference continues this year's series of open source developer events in Europe, including FOSDEM and Python-UK, which each attracted thousands of attendees. Like these conferences, EuroPython 2003 is organized by a volunteer group of open source developers. About Python Python is a leading object-oriented open source programming language that runs on all modern platforms. By integrating ease-of-use, clarity in coding, enterprise application connectivity and rapid application design, Python is an ideal programming platform for todays IT challenges. More information, including the Python source code and binaries for Linux and Windows, are available at http://www.python.org. About Zope Zope is a leading open source application server, specializing in content management, portals, and custom applications. Since Zope Corporation introduced Zope as an open source product in 1998, it has become the platform of choice for content publishers, managers and application developers. Zope comes with complete source code, most of which is written in Python. More information, including the Zope source code and binaries for Linux and Windows, are available at http://www.zope.org. Python and Zope are maintained and enhanced in open source fashion by an international community of programmers and companies. From pythonguy@Hotpop.com Tue Jun 10 18:07:58 2003 From: pythonguy@Hotpop.com (Anand Pillai) Date: 10 Jun 2003 10:07:58 -0700 Subject: HarvestMan version 1.0 Message-ID: HarvestMan is an world wide web crawler(robot) program written in python using urllib2, httplib, and HTMLParser. It is a re-write of the earlier 'PIDER'(Program for Internet Data Extraction and Retrieval) program. This release 1.0 features the following. 1. A much-improved 'fast-mode' for download using multiple threads. 2. Many options in the config file for tweaking download. 3. Control by Depth-of-url checking. 4. A brower page for browsing finished projects. 5. A default configuration suitable to download online manuals/ tutorials/books/html presentations. 6. Many bug fixes. The project page is situated at http://members.lycos.co.uk/anandpillai. Thanks for your kind support and attention. Regards, Anand Pillai From drifty@alum.berkeley.edu Thu Jun 12 21:40:11 2003 From: drifty@alum.berkeley.edu (Brett C.) Date: Thu, 12 Jun 2003 13:40:11 -0700 Subject: python-dev Summary for 2003-05-16 through 2003-05-31 Message-ID: python-dev Summary for 2003-05-16 through 2003-05-31 ++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from May 16, 2003 through May 31, 2003. It is intended to inform the wider Python community of on-going developments on the list and to have an archived summary of each thread started on the list. To comment on anything mentioned here, just post to python-list@python.org or `comp.lang.python`_ with a subject line mentioning what you are discussing. All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on something. And if all of this really interests you then get involved and join `python-dev`_! This is the eighteenth summary written by Brett Cannon (has his own room with a door for the first time in over 22 years). All summaries are archived at http://www.python.org/dev/summary/ . Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sf.net/rst.html . Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo =); you can safely ignore it, although I suggest learning reST; its simple and is accepted for `PEP markup`__. Also, because of the wonders of programs that like to reformat text, I cannot guarantee you will be able to run the text version of this summary through Docutils_ as-is unless it is from the original text file. __ http://www.python.org/peps/pep-0012.html The in-development version of the documentation for Python can be found at http://www.python.org/dev/doc/devel/ and should be used when wanting to look up any documentation on something mentioned here. To view files in the Python CVS online, go to http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/ . .. _python-dev: http://www.python.org/dev/ .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. contents:: .. _last summary: http://www.python.org/dev/summary/2003-05-01_2003-05-15.html ====================== Summary Announcements ====================== Sorry about the delay for this summary. I was visiting my mother and that puts me out of my hacking groove. I also had a roommate move out which means I got to move into his room. And on top of all of that I just decided where I am going to go for grad school in computer science ( `Cal Poly San Luis Obispo`_ ). Life just likes to dump everything on you at once, huh? .. _Cal Poly San Luis Obispo: http://www.calpoly.edu/ ==================================== `Vacation; Python 2.2.3 release.`__ ==================================== __ http://mail.python.org/pipermail/python-dev/2003-May/035642.html Related threads: - `Preparing docs for Python 2.2.3`__ - `Python 2.2.3`__ - `One other 2.2.3 failure`__ - `RELEASED Python 2.2.3c1`__ - `_sre changes`__ - `Python bug 544473 - bugfix candidate - was it applied?`__ - `Plans for Python 2.2.3 final`__ - `Python 2.2.3 docs freeze`__ - `RELEASED Python 2.2.3 (final)`__ __ http://mail.python.org/pipermail/python-dev/2003-May/035796.html __ http://mail.python.org/pipermail/python-dev/2003-May/035797.html __ http://mail.python.org/pipermail/python-dev/2003-May/035801.html __ http://mail.python.org/pipermail/python-dev/2003-May/035807.html __ http://mail.python.org/pipermail/python-dev/2003-May/035835.html __ http://mail.python.org/pipermail/python-dev/2003-May/035851.html __ http://mail.python.org/pipermail/python-dev/2003-May/035856.html __ http://mail.python.org/pipermail/python-dev/2003-May/035872.html __ http://mail.python.org/pipermail/python-dev/2003-May/035905.html `Python 2.2.3`_ has gone out the door! .. _Python 2.2.3: http://www.python.org/2.2.3/ =============================== `C new-style classes and GC`__ =============================== __ http://mail.python.org/pipermail/python-dev/2003-May/035661.html Jim Fulton updated the tutorial for creating new C types to use new-style classes. This led to the question of what the right way was for dealing with garbage collection. In terms of the tp_dealloc slot, having it call obj->ob_type->tp_free is best since that works the best when the type is subclassed. This also led to a discussion about the magic of PyType_Ready and whether it should do more. This wonderful function fills in tp_alloc and tp_free if tp_base and tp_bases are empty (they are set appropriately for PyBaseObject which is the C version of object). What was changed was that now the function does the right thing if the object should be checked for cycles based on settings in tp_flags. Paul Moore was worried about the loss of the tutorial for classic types. The response was that as long as they don't mess with there code it will continue to work, but if they decide to change something they should probably update. Michael Hudson's Misc/pymemcompat.h file is also helpful since it allows you to use 2.3's memory API but macro-replaces the call with the proper code all the way back to 1.5.2 . It was suggested adding a Misc/pyapipcompat.h for PyAPI_FUNC, PyAPI_DATA, and PyMODINIT_FUNC. ===================== `Attribute lookup`__ ===================== __ http://mail.python.org/pipermail/python-dev/2003-May/035730.html For the last summary I asked for the help of python-dev to find out the exact algorithm used to do attribute lookup for new-style classes (I don't care about classic classes since they are sooo 2.1 =). A bunch of people jumped in and made suggestions, but I am going to steal the explanation from Raymond Hettinger's explanation of descriptors which can be found at http://users.rcn.com/python/download/Descriptor.htm . =) The attribute lookup order gives "data descriptors priority over instance variables, instance variables priority over non-data descriptors, and assigns lowest priority to __getattr__ if provided." This is all is done by object.__getattribute__ . If you define your own __getattribute__ none of this is done unless you explicitly call object's implementation. You have to worry about calling a descriptor's __get__ method yourself if you decide not to call object.__getattribute__ . Raymond's descriptor essay/explanation/(group of words put together in attempt to make a coherent idea which he does) explains the difference between a data descriptor and non-data descriptor, but instead of make you wait I will just tell you. A data descriptor defines both a __get__ and __set__ method while a non-data descriptor defines only __get__. This makes sense when you think about non-data-descriptors such as functions. You have no need to assign to a function so not having a __set__ in no way harms the usage of a function plus it negates the need for any special flag or anything to define the difference between data and non-data descriptors. ================= `Introduction`__ ================= __ http://mail.python.org/pipermail/python-dev/2003-May/035792.html Splinter threads: - `Contracts PEP`__ __ http://mail.python.org/pipermail/python-dev/2003-May/035864.html What started off as Jeffrey Robert's introducing himself ended up becoming a short howto on how to get involved on python-dev. It was suggested to work on pyPy_ (although that is not exactly python-dev but is still cool and you could learn a lot about Python on a more abstract level =). Multiple people suggested working on bugs and patches. I specifically suggested looking at patches in development to learn what they were doing to the code's semantics. Mention of the AST branch and working on that was also brought up. Terrence Way then introduced himself and mentioned he had written a PEP about programming with contracts. It led to, in the end, Guido saying that he wanted to wait and let more implementations get out there and be weeded out before he started pronouncing on PEPs on the subject. .. _pyPy: http://codespeak.net/pypy/index.cgi?home ========= Quickies ========= `test_urllibnet failing on Windows`__ os.fdopen does not work with sockets under Windows when fetching its argument from fileno . .. __: http://mail.python.org/pipermail/python-dev/2003-May/035655.html `[development doc updates]`__ Here is a simple intelligence test: what do you think this email was about based on its subject? Get it right and you earned yourself a lollipop (on your own dime). .. __: http://mail.python.org/pipermail/python-dev/2003-May/035660.html `test_time fails with current CVS`__ A bug report has been filed. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035669.html `a strange case`__ Splinter threads: `Unifying modules and classes?`__ Apparently the 2.2.x branch allows you to subclass a module. This has been fixed in 2.3 . And once again Guido stated that erasing the line separating classes and modules is not going to happen while his benevolently dictating body still has air in it (okay, he didn't say it that way, but I am sure he wouldn't object to a little artistic license to get his point across =). But if you really feel the need to have a module be a class just stick an instance in sys.modules; just don't expect everything to play well with it, though. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035676.html __ http://mail.python.org/pipermail/python-dev/2003-May/035731.html `test_bsddb185 failing under OS X`__ Tests were failing for me under OS X. After Skip Montanaro and I independently came up with a better way for the test to clean up after itself the tests passed from some odd reason. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035699.html `Need advice, maybe support`__ Christian Tismer was given two bits in tp_flags for Stackless_ to create Stackless-aware types that can identify recursive, indirect function calls in C. The two bits will greatly simplify the implementation of Stackless 3.0. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035701.html .. _Stackless: http://www.stackless.com/ `[Python-Dev] SF oddity`__ Remember folks, look out for horizontal scroll bars along with vertical ones. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035713.html Weekly Python Bug/Patch Summary * Ending on `2003-05-18`__ * Ending on `2003-05-25`__ __ http://mail.python.org/pipermail/python-dev/2003-May/035716.html __ http://mail.python.org/pipermail/python-dev/2003-May/035834.html `doctest extensions`__ Jim Fulton came up with some possible additions for doctest. You can see them at http://cvs.zope.org/Zope3/src/zope/testing/doctestunit.py?rev=HEAD&content-type=text/vnd.viewcvs-markup . If you would like to see them added then speak up. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035718.html `+= on return of function call result`__ This is a continuation from `last summary`_. Samuele Pedroni wrote a simple function that simulates what was originally desired. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035500.html `Using emacs' unexec to speed Python startup`__ Splinter threads: - `portable undumper in xemacs`__ Some people tried to speed up loading Python for `some editor`_ when what they should have been doing is learning how to use a `better editor`_. =) .. __: http://mail.python.org/pipermail/python-dev/2003-May/035727.html __ http://mail.python.org/pipermail/python-dev/2003-May/035769.html .. _some editor: http://www.gnu.org/software/emacs/emacs.html .. _better editor: http://www.vim.org/ `[debian build error]`__ Some issue with using Debian packages and Python 2.2 with gcc 3.3 and libstdc++5. A Debian bug report has been filed. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035747.html `urllib2 proxy support broken?`__ Yes, but Gustavo Niemeyer found the bug and came up with a patch. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035764.html `Python Run-Time System and Extensions`__ Daniel Silva is writing a compiler for Python to `PLT Scheme`_ code. He asked for suggestions on which of two ways to go for being able to run C extension code. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035773.html .. _PLT Scheme: http://www.plt-scheme.org/ `Descriptor API`__ We all learned what the difference is between a data and non_data descriptor (which you can know too by reading the summary for `Attribute lookup`_ ). .. __: http://mail.python.org/pipermail/python-dev/2003-May/035788.html `Of what use is commands.getstatus()`__ Guido ended up saying the commmands module should be redesigned, probably put into shutil, and then have the old version deprecated. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035799.html `Change to ossaudiodev setparameters() method`__ Some day Greg Ward will get his ossaudiodev module to work on both Guido's home machine and work machine. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035840.html `RE: Decimal class`__ A Decimal class is currently being worked on in the CVS sandbox. The question as to whether the values should be immutable was raised. Everyone agreed that they should be immutable. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035844.html `install debian package`__ python-dev is not the right place to bring up issues with Debian packages. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035849.html `Release question`__ Branches in CVS for Python are pretty much only used for minor versions (the "3" in "2.3.x"). Since 2.3 is in beta that means no semantic changes to the code. Any new features must wait for 2.4 development to start which occurs when 2.3 is out the door. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035873.html `Algoritmic Complexity Attack on Python`__ Someone tried to point out that Python was vulnerable to an attack if you naively took in user-supplied keys to a dictionary. The big lesson is that Python's hash function can change between releases and that it will always be as fast as possible but can still be nailed by worst-case situations. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035874.html `KeyboardInterrupt on Windows`__ An optimization on the JUMP_ABSOLUTE opcode was not dealing with asynchronous exceptions since it was skipping the signal checks in the interpreter loop. It has been fixed. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035890.html `more-precise instructions for "Python.h first"?`__ David Abrahams didn't like the restriction of having to put Python.h before all other headers in C/C++ code. The problem is some key macro definitions are set in Python.h that are needed on some platforms. .. __: http://mail.python.org/pipermail/python-dev/2003-May/035908.html From dave@davidcook.org Fri Jun 13 08:46:04 2003 From: dave@davidcook.org (David M. Cook) Date: Fri, 13 Jun 2003 00:46:04 -0700 Subject: ANN: San Diego Pythonistas mtg. June 19: Webware Message-ID: The San Diego Pythonistas (SANDPYT) will be having our monthly meeting on Thurs Jun 19 from 7-9pm (doors open at 6:30pm) at the San Diego County Office of Education 6401 Linda Vista Road San Diego, CA See our home page for a map: http://www.sandpyt.org This month Chuck Esterbrook will be giving a presentation on Webware. Webware for Python is a suite of software components for developing object-oriented, web-based applications: http://webware.sourceforge.net/ Dave Cook, From phoenixathell@gmx.de Fri Jun 13 10:29:44 2003 From: phoenixathell@gmx.de (Phoenix@Hell) Date: 13 Jun 2003 02:29:44 -0700 Subject: WebToolViewer 0.1 Message-ID: http://www.ingo-keller.de/python/WebToolViewer A new development release. I'm very happy to announce the first alpha release of my WebToolViewer. The purpose of the script was to queue webformular requests and handle the request in a batch process. These is very interessting for biologists if they run analysis through websites for more then one time with the same set of parameters. Features * run FASTA formated data through websites * describe webformulars with simple XML files Requires * Python >= 2.2.2 * wxPython >= 2.4.7 * BioPython >= 1.10 Planed Features * output parsing * XML, TSV data formats * time dependend webformular checks * new website descriptions for several biodatabase webformulars like TAIR Blast * options saving From dkuhlman@cutter.rexx.com Fri Jun 13 21:52:42 2003 From: dkuhlman@cutter.rexx.com (Dave Kuhlman) Date: Fri, 13 Jun 2003 13:52:42 -0700 Subject: ANN: Self-guided instruction docs for Python Message-ID: Subject: ANN: Self-guided instruction docs for Python I've been at work developing several classes for Python. The first (Python 101) is an introductory course in Python programming. The second (Python 201, you probably guessed) discusses several slightly advanced topics which have Python solutions. As preparation for these training courses I've written several training documents. When I started, they were intended as an outline or syllabus for the course. As time went on, they grew as I filled in more notes and details. Now, I believe, these training documents are usable stand-alone. In part I'm announcing this in the hope that these documents can be used for self-guided learning. You can find these documents at: http://www.rexx.com/~dkuhlman/#training It's still a "work in progress", but I believe there is plenty there now to make it useful. If you have a need for Python training, please contact me. If you have suggestions for these documents, please let me know. - Dave -- Dave Kuhlman dkuhlman@rexx.com http://www.rexx.com/~dkuhlman From gerrit@nl.linux.org Mon Jun 16 10:59:25 2003 From: gerrit@nl.linux.org (Gerrit Holl) Date: Mon, 16 Jun 2003 11:59:25 +0200 Subject: Brian 0.1.1 released Message-ID: Brian 0.1.1 has been released at Mon, 16 Jun. WHAT IS BRIAN ============= Brian is an unfinished jump-and-run platform game. It is written in the Python programming language, using the Pygame library (on top of SDL). Although it will be an independant project, it will be inspired by Commander Keen. It will be written using a Linux workstation, but it should be crossplatform for all major platforms (Linux, Windows, Mac). It is called Brian after "Monty Python's Life of Brian", and the game may contain some references. Currently, Brian includes the following features: * Player score * Multiple resolutions * Monsters * Random levels * Level editor * Level exits * Music * Sound (very limited) * And more, but don't expect it to be very much fun yet WHATSNEW ======== * Pausing the game works * When Brian dies, he hops the screen and the music fades away * Added Fire sprite * Levels and RandomLevels are now configured with Tk * Scary sprites now prefer to continue to move in the same direction * Many bugfixes * Many internal fixes * See NEWS file for details * See CVS log for even more details MORE INFORMATION ================ Visit http://pybrian.sourceforge.net/ for more information. Gerrit Holl. gerrit@nl.linux.org. From Tom Deprez" Hi all, The EuroPython 2003 brochure is ready and available for download at: http://www.europython.org/other/brochure Interested in the countries represented at EuroPython? Here is a list: Spain Belgium Germany Austria United Kingdom Tunisia Portugal Switzerland Ireland Sweden United States France Lithuania Finland Poland Denmark Czech Republic Italy Netherlands Canada See you within 8 days! Regards, EuroPython From Tom Deprez" EuroPython's third interview! is available Today _Marc-Andre Lemburg_ has the word: Read it at http://www.europython.org/other/interviews/entries/marcandre_lemburg All the people who use the mx Extensions for Python, should have heard about Marc-Andre. Regards, EuroPython From halley@play-bow.org Tue Jun 17 12:12:00 2003 From: halley@play-bow.org (Bob Halley) Date: 17 Jun 2003 04:12:00 -0700 Subject: ANN: dnspython 1.0.0b1 Message-ID: dnspython 1.0.0b1 has been released. Here is the README file from the release: dnspython INTRODUCTION dnspython is a DNS toolkit for Python. It supports all of the common record types and will support all types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython provides both high and low level access to DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. To see a few of the ways dnspython can be used, look in the examples/ directory. dnspython originated at Nominum where it was developed to facilitate the testing of DNS software. Nominum has generously allowed it to be open sourced under a BSD-style license, and helps support its future development by continuing to employ the author :). ABOUT THIS RELEASE This is dnspython 1.0.0b1 New in this release: Implementations for types AFSDB, CERT, GPOS, HINFO, ISDN, LOC, NSAP, NSAP-PTR, RP, RT, and X25. Improved documentation. In particular, instances variables of all classes are now described. This release fixes all known bugs from 1.0.0a2. Although the software is already useful, there are a number of things to do before the first stable release, including: implementing the rest of the DNS rdata types, creating some introductory documentation to go along with the existing reference documentation, and thorough testing. See the ChangeLog file for more detailed information on changes since the prior release. REQUIREMENTS Python 2.2 or later. INSTALLATION To build and install dnspython, type python setup.py install HOME PAGE For the latest in releases, documentation, and information, visit the dnspython home page at http://www.dnspython.org/ DOCUMENTATION Documentation is sparse at the moment. Use pydoc, or read the HTML documentation at the dnspython home page, or download the HTML documentation. BUG REPORTS Bug reports may be sent to bugs@dnspython.org MAILING LISTS A number of mailing lists are available. Visit the dnspython home page to subscribe or unsubscribe. From tom@aragne.com Tue Jun 17 17:31:33 2003 From: tom@aragne.com (Tom Deprez) Date: Tue, 17 Jun 2003 18:31:33 +0200 Subject: EuroPythons Donation system Message-ID: Hi all, Some people proposed to provide a donation system, so people can donate a certain amount to EuroPython. Of course we thought this would be a good idea and so we did. You can reach the donation page at http://www.europython.org/Registration/donation Regards, EuroPython From Tom Deprez" EuroPython's fourth interview! Ever heard about the Python Secret Underground movement? No? Well, _Martijn Faassen_ neither... But, he heard about some rumours and shared them with us. Confused concerning PSU? Who would not? But, perhaps Forest (an XML Database on the workbench) might help you to see the forest through the trees. Enjoy the interview at http://www.europython.org/other/interviews/entries/martijn_faassen. Regards, www.europython.org From mcfletch@rogers.com Wed Jun 18 00:05:16 2003 From: mcfletch@rogers.com (Mike C. Fletcher) Date: Tue, 17 Jun 2003 19:05:16 -0400 Subject: OpenGLContext 2.0.0b1 now available... Message-ID: I have just released the first beta version of OpenGLContext 2.0.0 for PyOpenGL 2.0.1. OpenGLContext is a teaching/testing tool for those looking to learn OpenGL programming using Python and PyOpenGL. It provides a large body of BSD-licensed PyOpenGL sample code for the beginning OpenGL programmer, and a simplified environment for experimenting with OpenGL programming. Major new features since alpha 4 include: * cross platform polygonal text from (system) TrueType fonts, o (with the TTFQuery and FontTools packages) o applications can use non-system fonts with minimal extra effort o antialiased bitmap text also available from Pygame (with TTFQuery and Fonttools) o wxPython and/or GLUT can provide basic aliased bitmap text when ttfquery and/or FontTools are not available * frustum culling and bounding box calculations, o occlusion-culling is also available when the extension is available, but isn't currently supported by any of the scenegraph geometry types, so is not particularly effective, and is disabled by default, * optimization of the rendering pipeline, o includes introduction of C modules to accelerate "hotspot" operations * GLE-based extrusion geometry types, o screw, lathe and spiral * enhanced polygon tessellation code, * and a considerable number of bug fixes. The new release has three new requirements beyond those for alpha 4: * Python 2.2.3 o weak reference errors in 2.2.2 were found because of OpenGLContext's rather intense usage of them o OpenGLContext tries to minimize the effect of the errors, but there is no way to completely eliminate them without upgrading * FontTools o a cross platform library to read TrueType font files directly * TTFQuery o a Python package using FontTools to query and match system TrueType font names and families o also provides outline extraction for polygonal text You can find updated installation instructions here: http://pyopengl.sourceforge.net/documentation/installation.html There are a number of areas where the API is likely to change during the upcoming beta process, particularly there will likely be a new configuration mechanism for user-specified preferences (for instance key bindings, frame locations, rendering-context-parameters and preferred GUI library). Beyond this, I'm not planning any significant (i.e. core) enhancements, though adding a small 2D controls library may be necessary to allow the (planned) configuration system to work properly, and there will likely be a considerable number of bug-fixes and optimizations. As always, you can find the download from the homepage: http://pyopengl.sourceforge.net/context/ or directly here: http://sourceforge.net/project/showfiles.php?group_id=5988 Enjoy, Mike _______________________________________ Mike C. Fletcher Designer, VR Plumber, Coder http://members.rogers.com/mcfletch/ From Alexandre.Fayolle@logilab.fr Wed Jun 18 16:29:09 2003 From: Alexandre.Fayolle@logilab.fr (Alexandre Fayolle) Date: Wed, 18 Jun 2003 17:29:09 +0200 Subject: [ANN] logilab.aspects 0.1.2 Message-ID: What's new? ------------ 2003-06-18 -- 0.1.2 * first public release What is logilab.aspects? ------------------------ logilab.aspects is a python package that enables Aspect Oriented Programming in Python. For now, it provides a set of ready-to-use aspects, and an easy way to create your own aspects. The current possibilities are still a bit limited, but it will soon provide a more exhaustive way to define and use more complex aspects. The aspects module contains some useful aspects such as: * LoggerAspect: trace all method calls. * ContractAspect: contracts can be seen as a sub-part of aspects, and this particular aspect will allow you to use contracts in Python. We have choosen to consider contracts definitions as a part of documentation. The conditions are thus specified in method and modules docstrings. * ProfilerAspect: simple method profiler * DispatcherAspect: enable multimethods * ConfirmationAspect: ask confirmation before an operation * ObserverAspect: aspect implementation of the Observer Design Pattern Home page --------- http://www.logilab.org/aspects/ Download -------- ftp://ftp.logilab.org/pub/aspects/ Mailing list ------------ mailto://python-projects@lists.logilab.org (you'll need to subscribe first on http://lists.logilab.org/mailman/listinfo/python-projects) -- Alexandre Fayolle LOGILAB, Paris (France). http://www.logilab.com http://www.logilab.fr http://www.logilab.org Développement logiciel avancé - Intelligence Artificielle - Formations From Alexandre.Fayolle@logilab.fr Wed Jun 18 16:45:59 2003 From: Alexandre.Fayolle@logilab.fr (Alexandre Fayolle) Date: Wed, 18 Jun 2003 17:45:59 +0200 Subject: [ANN] pylint-0.1.2 Message-ID: What's new ? ------------ 2003-06-12 -- 0.1.2 * first public release What is pylint ? ---------------- Pylint is a python tool that checks if a module satisfy a coding standard. Pylint can be seen as another pychecker since nearly all tests you can do with pychecker can also be done with Pylint. But Pylint offers some more features, like checking line-code's length, checking if variable names are well-formed according to your coding standard, or checking if declared interfaces are truly implemented, and much more (see http://www.logilab.org/pylint/ for the complete check list). The big advantage with Pylint is that it is highly configurable, customizable, and you can easily write a small plugin to add a personal feature. The usage it quite simple: $ pylint mypackage.mymodule This command will output all the errors and warnings related to the tested code (here : mypackage.mymodule), will dump a little summary at the end, and will give a mark to the tested code. Pylint is free software distributed under the GNU Public Licence. Home page --------- http://www.logilab.org/pylint/ Download -------- ftp://ftp.logilab.org/pub/pylint/ Mailing list ------------ mailto://python-projects@lists.logilab.org (you'll need to subscribe first on http://lists.logilab.org/mailman/listinfo/python-projects) -- Alexandre Fayolle LOGILAB, Paris (France). http://www.logilab.com http://www.logilab.fr http://www.logilab.org Développement logiciel avancé - Intelligence Artificielle - Formations From richardjones@optushome.com.au Thu Jun 19 01:25:25 2003 From: richardjones@optushome.com.au (Richard Jones) Date: Thu, 19 Jun 2003 10:25:25 +1000 Subject: SC-Track Roundup 0.5.8 - an issue tracking system Message-ID: --Boundary-02=_2LQ8+jdhbgMcmD6 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Description: signed data Content-Disposition: inline =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D SC-Track Roundup 0.5.8 - an issue tracking system =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D This is a bugfix release for version 0.5.x - if you're upgrading from before 0.5, you *must* read doc/upgrading.txt! Unfortunately, the Zope frontend for Roundup is currently broken. If you'd like to volunteer to fix it, let me know. Roundup requires python 2.1.3 or later for correct operation. Users of the sqlite backend are encouraged to upgrade sqlite to version 2.7.3. This release fixes only one really important bug - it plugs a cross-site-scripting security hole. Source and documentation is available at the website: http://roundup.sourceforge.net/ Release Info (via download page): http://sourceforge.net/projects/roundup Mailing lists - the place to ask questions: http://sourceforge.net/mail/?group_id=3D31577 About Roundup =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Roundup is a simple-to-use and -install issue-tracking system with=20 command-line, web and e-mail interfaces. It is based on the winning design= =20 from Ka-Ping Yee in the Software Carpentry "Track" design competition. Note: Ping is not responsible for this project. The contact for this projec= t=20 is richard@users.sourceforge.net. Roundup manages a number of issues (with flexible properties such as=20 "description", "priority", and so on) and provides the ability to: (a) submit new issues, (b) find and edit existing issues, and (c) discuss issues with other participants. The system will facilitate communication among the participants by managing discussions and notifying interested parties when issues are edited. One of the major design goals for Roundup that it be simple to get going. Roundup is therefore usable "out of the box" with any python 2.1+ installation. It doesn't even need to be "installed" to be operational, though a disutils-based install script is provided. It comes with two issue tracker templates (a classic bug/feature tracker and a minimal skeleton) and six database back-ends (anydbm, bsddb, bsddb3, sqli= te, metakit and gadfly).=20 --Boundary-02=_2LQ8+jdhbgMcmD6 Content-Type: application/pgp-signature Content-Description: signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+8QL2rGisBEHG6TARAqqEAJ0SUA2FZQCHNIHUldQs/DFKnzQQ6gCcDS0d ScIAc5bBpZso4lRRMxbV8os= =4ecA -----END PGP SIGNATURE----- --Boundary-02=_2LQ8+jdhbgMcmD6-- From andreas.held@gretag.com Thu Jun 19 08:32:12 2003 From: andreas.held@gretag.com (andreas.held@gretag.com) Date: Thu, 19 Jun 2003 09:32:12 +0200 Subject: [ANN] pyFLTK-1.1a1 Message-ID: What's new? ----------------- 2003-06-18 -- 1.1a1 * first alpha release of the resurrected pyFLTK package. What is pyFLTK? ------------------------ pyFLTK is a set of Python bindings for the Fast and Light Toolkit, a cross-platform GUI toolkit. The present alpha release covers fltk-1.1.3 and requires Python 2.2 and is covered under the GPL. pyFLTK's major points are: - cross platform deployment possible - small footprint - speed Home page: http://pyfltk.sourceforge.net Home page for FLTK: http://www.fltk.org Mailing list: http://lists.sourceforge.net/mailman/listinfo/pyfltk-user -- Andreas Held

pyFLTK 1.1a1 Python bindings for the FLTK toolkit. (19-06-03) From Tom Deprez" Hi all, Interested in what _Tim Couper_ has to say? Have a look at the fifth EuroPython2003 interview: http://www.europython.org/other/interviews/entries/tim_couper In previous note, we made the mistake by adding unintentionally a dot to the end of the url. Thanks to the several people who reported this. For those who didn't managed to read the interview because of this, here is the link without a dot: http://www.europython.org/other/interviews/entries/martijn_faassen For the EuroPython visitors: Since the first talks start at 9:00h and everybody has to pass the registration desk to pick up their badge, the doors will be open from 7.30h am, on the first day of the conference, ie 25 june 2003. Yes this early, so for the people who start the day very early, you know what you can do :-) See you within 6 days! Regards, EuroPython From richardjones@optushome.com.au Thu Jun 19 23:52:49 2003 From: richardjones@optushome.com.au (Richard Jones) Date: Fri, 20 Jun 2003 08:52:49 +1000 Subject: Roundup 0.5.8-2 fixes corrupt source file Message-ID: --Boundary-02=_B7j8+rvjnDkTnBf Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Description: signed data Content-Disposition: inline The tar file I released yesterday (roundup-0.5.8-2.tar.gz) contained a corr= upt=20 source file (roundup/cgi/client.py). I have replaced that file and uploaded= a=20 new tar file to sourceforge (roundup-0.5.8-2.tar.gz). My apologies for any inconvenience, Richard --Boundary-02=_B7j8+rvjnDkTnBf Content-Type: application/pgp-signature Content-Description: signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+8j7BrGisBEHG6TARAix4AJ9FsAqeWkctuDIzVzPtTUfNL07TMQCeP9Xe imBI4m2sScvCH4hsOc5mcmE= =fVdh -----END PGP SIGNATURE----- --Boundary-02=_B7j8+rvjnDkTnBf-- From robin@alldunn.com Fri Jun 20 00:54:19 2003 From: robin@alldunn.com (Robin Dunn) Date: Thu, 19 Jun 2003 16:54:19 -0700 Subject: [ANN] wxPython 2.4.1.2 Message-ID: Announcing ---------- I'm pleased to announce the 2.4.1.2 release of wxPython, now available for download at http://wxpython.org/download.php or http://sourceforge.net/project/showfiles.php?group_id=10718&release_id=166530 What is wxPython? ----------------- wxPython is a GUI toolkit for the Python programming language. It allows Python programmers to create programs with a robust, highly functional graphical user interface, simply and easily. It is implemented as a Python extension module that wraps the popular wxWindows cross platform GUI library, which is written in C++. wxPython is a cross-platform toolkit. This means that the same program will usually run on multiple platforms without modifications. Currently supported platforms are 32-bit Microsoft Windows, most Linux or other unix-like systems, and Macintosh OS X. New with this release is an experimental build of wxPython using GTK+ 2.x for the underlying GUI platform and it is also built with UNICODE support turned on. The RPMs for this build were made on a Mandrake 9.1 system but should probably work on other distributions with very up to date libraries. If not, an SRPM is included that can be used to rebuild the RPM on your system. If you experiment with this build please send feedback to the wxPython-users mail list. The files are currently available only on the SourceForge download page, look for the wxPythonGTK2 files at the bottom: https://sourceforge.net/project/showfiles.php?group_id=10718&release_id=166532 Changes in 2.4.1.2 ------------------ Added wxScrolledPanel from Will Sadkin Added SetShape method to top level windows (e.g. wxFrame.) Changed wxSWIG to not generate Python code using apply, (since it will be deprecated in the future) wxSWIG will use spam(*args, **kw) syntax instead. Also changed the generated __repr__ methods to be a bit more informative. Made the version number information more robust and uh, informative. Also added asserts to check that the major.minor versions of wxPython and wxWindows match. Added the new wx "renamer" package that will dynamically import from the wxPython package and rename wxFooBar --> FooBar. That means that people can do imports without "import *" and can use names like wx.Frame instead of wx.wxFrame. This is phase 1 of a full transition to the new namespace. Updated Scintilla to 1.52. I also changed it to use wxListCtrl instead of wxListBox for the AutoComplete window, added the ability to use custom bitmaps in the margin and in the AutoComplete windows, and worked out how to do proper clipping of child windows on wxGTK. Patrick O'Brien's PyCrust package has been renamed to Py and now includes several new tools. As part of the change the location of the pacakge has changed as well, it is now accessible as "from wxPython import py" (or "from wx import py" using the new namespace.) There are still some transition modules in the wxPython.lib.PyCrust package that will issue a warning and then import what is needed from the new package. These will be removed in a future release. Added __nonzero__ method to wxTreeItemId, wxBitmap, wxImage, wxFont, and most other classes that have an Ok or IsOK method. This allows code like "if obj: ..." to be the same as "if obj.IsOk(): ..." Toolbars on wxMac can now have controls on them. Added wxPython.lib.analogclock module based on samples that were passed back and forth on wxPython-users a while back. Added masked edit controls (wxPython.lib.maskededit) by Jeff Childers and Will Sadkin. Updated wxTimeCtrl to use MaskedEdit. When the __class__ of a dead object is replaced with _wxPyDeadObject the __del__ of the original class is now called first. Added wxTreeListCtrl. (Looks like a wxTreeCtrl embedded in a wxListCtrl, but actually is just giving multiple columns to a wxTreeCtrl.) Added wxFutureCall, a subclass of wxTimer that makes it easy to delay a call to any Python callable object. Added wxPy versions of wxPrintPreview, wxPreviewFrame, and wxPreviewControlBar so they can be derived from in Python and be able to override the C++ virtual methods. Simplified how the wxSizer methods are wrapped, changed the name of the "option" parameter to "proportion" to match the docs ("option" is still accepted for compatibility, but this will go away in a future release,) SetItemMinSize can now take a wxSize (or 2-tuple) parameter, and Spacers can be specified with a wxSize (or 2-tuple) parameter Added wxCursorFromBits. -- Robin Dunn Software Craftsman http://wxPython.org Java give you jitters? Relax with wxPython! From bostjan.jerko@mf.uni-lj.si Fri Jun 20 13:01:59 2003 From: bostjan.jerko@mf.uni-lj.si (=?ISO-8859-2?Q?Bo=B9tjan?= Jerko) Date: Fri, 20 Jun 2003 14:01:59 +0200 Subject: [ANN] Naive bayes in Python Message-ID: I wrote a Naive bayes class in Python. You can get it on http://www.mf.uni-lj.si/~bostjan and if you don't understand Slovene just follow link on the top of the page. Any comments are appreciated. B. From tom@aragne.com Fri Jun 20 15:19:09 2003 From: tom@aragne.com (Tom Deprez) Date: Fri, 20 Jun 2003 16:19:09 +0200 Subject: 2 more interviews Message-ID: Hi, 2 more interviews at EuroPython: Nicolas Chauvat, founder of Logilab: http://www.europython.org/other/interviews/entries/nicolas_chauvat Paul Everitt, founder of Zope Europe Association: http://www.europython.org/other/interviews/entries/paul_everitt_2003 Visitors of EuroPython: We try to keep the conference as low-budget as possible. One of the results is that we don't print/handout the brochure. Therefor this small reminder. You can print out the brochure yourself from : http://www.europython.org/other/brochure You can unselect the parts which you don't want to have in the brochure. (handy if you want to print out only some parts) Regards, EuroPython From Wiktor Sadowski" modeler ====== Some posts on class-like attribute access for modules encourged me to get some code from my not-yet-released viz module and make it available as a standalone Python C extension module. Modeler enables dynamic attribute creation/access by simply adding a __gettattr__ function to a module. Modeler doesn't replace modules with class instances,actually it doesn't make any changes to modules. Some more details and modeler.pyd for Python2.2 can be found at: http://www.wiktorsadowski.com/Python Examples of simple module-class-factory and importing two or more modules from one dll : http://www.wiktorsadowski.com/Python/modsample.html As for the source code: I will try to make it available later this month. Have fun, Wiktor Sadowski add to site.py: import modeler =========== dynmodule.py ========== def __getattr__(thismod,name): if name in thismod.__dict__.keys(): return thismod.__dict__[name] else: # in more useful cases: #thismod.__dict__[name]=anAttr #return anAttr return "Default Attr" ====================================================== Python 2.2.2 (#37, Oct 14 2002, 17:02:34) [MSC 32 bit (Intel)] on win32 Type "copyright", "credits" or "license" for more information. >>> from dynmod import whatever1,whatever2 >>> whatever1 'Default Attr' >>> whatever2 'Default Attr' >>> import dynmod >>> dynmod.foo 'Default Attr' >>> dynmod.spam 'Default Attr' >>> From anthony@computronix.com Fri Jun 20 20:30:34 2003 From: anthony@computronix.com (Anthony Tuininga) Date: 20 Jun 2003 13:30:34 -0600 Subject: cx_Oracle 3.0a Message-ID: What is cx_Oracle? cx_Oracle is a Python extension module that allows access to Oracle and conforms to the Python database API 2.0 specifications with a few exceptions. Where do I get it? http://starship.python.net/crew/atuining http://www.computronix.com/utilities.shtml (it may be a few days before the second site is updated) What's new? 1) Fixed bug where zero length PL/SQL arrays were being mishandled 2) Fixed support for the data type "float" in Oracle; added one to the display size to allow for the sign of the number, if necessary; changed the display size of unconstrained numbers to 127, which is the largest number that Oracle can handle 3) Added support for retrieving the description of a bound cursor before fetching it 4) Fixed a couple of build issues on Mac OS X, AIX and Solaris (64-bit) 5) Modified documentation slightly based on comments from several people 6) Included files in MANIFEST that are needed to generate the binaries 7) Modified test suite to work within the test environment at Computronix as well as within the packages that are distributed -- Anthony Tuininga anthony@computronix.com Computronix Distinctive Software. Real People. Suite 200, 10216 - 124 Street NW Edmonton, AB, Canada T5N 4A3 Phone: (780) 454-3700 Fax: (780) 454-3838 http://www.computronix.com From halley@dnspython.org Sat Jun 21 12:51:21 2003 From: halley@dnspython.org (Bob Halley) Date: 21 Jun 2003 04:51:21 -0700 Subject: ANN: dnspython 1.0.0b2 Message-ID: dnspython 1.0.0b2 has been released. New in this release: Types APL, DS, KEY, NXT, SIG, WKS Enhancements to the test suite, plus fixes for all the bugs the test suite enhancements found :) An improved exception architecture. Almost all exceptions raised by the code are now subclasses of DNS.exception.DNSException. The resolver has better exception handling. An implementation of inet_pton and inet_ntop, since they are not available in Python < 2.3. This release fixes all known bugs from 1.0.0b1. dnspython is nearing a stable 1.0.0 release. All of the functionality currently planned for 1.0.0 is now implemented. /Bob From hunterp@fastmail.fm Sat Jun 21 19:51:10 2003 From: hunterp@fastmail.fm (Hunter Peress) Date: 21 Jun 2003 13:51:10 -0500 Subject: europython audio volunteers needed. Message-ID: the europython folks agreed to let me organize a grassroots audio effort. all you need is a laptop and a microphone and some free space. for a list of really easy technical steps that you must follow, see: http://tacos.sus.mcgill.ca/~hperes/europy_audio/ also linked from: http://www.europython.org/news From T.A.Meyer@massey.ac.nz Sun Jun 22 03:14:59 2003 From: T.A.Meyer@massey.ac.nz (Meyer, Tony) Date: Sun, 22 Jun 2003 14:14:59 +1200 Subject: Spambayes 1.0a3 Released Message-ID: The (very!) long awaited third spambayes pre-release is now available. This includes significant improvements over the previous release, and is recommended for all users. Note that this is not a new binary release for the Outlook plugin, which will be released soon. This release includes the following versions of the various Spambayes applications: o SMTP Proxy: SpamBayes SMTP Proxy Alpha1, version 0.01 (May 2003) o POP3 Proxy: SpamBayes POP3 Proxy Beta1, version 0.1 (May 2003), using SpamBayes POP3 Proxy Web Interface Alpha2, version 0.02 o Lotus Notes Filter: SpamBayes Lotus Notes Filter Alpha1, version 0.01 (March 2003) o IMAP Filter: SpamBayes IMAP Filter Alpha1, version 0.01 (May 2003), using SpamBayes IMAP Filter Web Interface Alpha1, version 0.01 o Outlook: SpamBayes Outlook Addin Beta1, version 0.3 (June 2003) [But see above] o Hammie: SpamBayes command line tool (Hammie) Beta1, version 0.1 (January 2003) The major changes from the previous release are listed below. For more details, the reader is referred to the changelog, or for extreme details, to the check-ins archive. This is a rather long list, since it has been a long time since the previous release. Changes are broken into sections for each application, plus one that will probably only interest developers, and one for everything else. Any actions necessary to move to this release from the previous release are noted in the "Transition" section. New in Alpha Release 3 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Outlook Plugin -------------- o The Outlook Plugin now works with bsddb[3] databases, and uses them rather than pickles, if available. o The Outlook Plugin now stores files in the "correct" windows directory. These will be automatically migrated. o Show all tokens in message when showing clues in Outlook plugin. o Fix a bug in the Outlook plugin test code. o Only create "Spam" field on mail items in Outlook plugin. o MAPI exceptions are better handled. o Errors when hotmail connector cannot save the message are suppressed. o Tokens are listed one per line in Show Clues. o Messages can be scored after training. o Plugin *may* now work correctly in non-English locales. o Databases are saved after any training operation. o Handle malformed messages better in the Outlook plugin. o In Outlook plugin, create our own toolbar, rather than using the standard one. o Use 'wait' cursor when incremental training in Outlook plugin. o In Outlook plugin, save config when dialog closes and not at shutdown. o Clean up toolbar images. o In Outlook plugin, no longer default to the "Inbox". o In Outlook plugin, when filtering, saving the spam score is no longer fatal. o 2 new [General] options - delete_as_spam_message_state and recover_from_spam_message_state. o Prevent "Deleted items", Outbox and Sent Items from appearing=20 in the folder list. o Allow either spam or unsure messages to be marked as read as they are filtered. o Significant improvements to the toolbar. o Standardised name from "Anti-Spam" to "Spambayes" o Significant changes to configuration (moving from a pickle to .ini files). POP3 Proxy ---------- o The POP3 Proxy can now include the classification in the "To" or "Subject" headers, which allows Outlook Express users to perform filtering on the classification. o The POP3 Proxy can add an id (as a header or in the body) to track emails. This can be used with the SMTP Proxy, or to find a particular message from the web interface. o Added include_score option to (optionally) note the score of the message in a header. o Added level (thermostat) and evidence headers for pop3proxy. o Added pop3proxy_server to allow pop3proxy to run as a Windows service. o Improved configuration page for the user interface. o A "Show Clues" button next to each message in the "Review" page of the web interface. o Messages in the "unknown" cache are expired, just like those in the "ham" and "spam" caches. o Messages are expired (if old enough) each time a client connects to the proxy, rather than on the proxy startup. o pop3proxy_port, pop3proxy_server_name and pop3proxy_server_port options were removed (these were deprecated in Alpha 2). o If a file is removed from the cache (not by the proxy) this no longer causes an exception. o Messages received in quick succession (within the same second) may not have been visible in the "review" page; fixed this. o Added "Refresh" button to "Review" page. o Improved proxying of "STAT" POP3 command so that a guess at the message size is returned. o Web interface encourage browsers not to cache the pages. o Added an option to display who a message is to in the "Review" page. o A new option to correct for a much higher ratio of spam to ham (or vice-versa) is available via the interface page. Developer --------- o Added base message classes for use by all Spambayes applications - currently used by the IMAP filter and POP3 proxy. o Major rework of the configuration file loading and format of Options.py. o Test code moved out of pop3proxy.py. o Web interface code abstracted out of pop3proxy.py. o A version information repository for all applications. General ------- o A utility to dump the contents of a CDB database. o -c and -d options to mailsort.py o A basic filter for Lotus Notes. o A SMTP Proxy to allow training via forwarding/bouncing messages. o Various files to test "incremental training" (or "self training"). o Option to mkgraph to spit out counts *or* error rates, and n-day averages *or* cumulative. o Note when the subject charset is invalid (rather than raising an exception). o A filter for IMAP. o A script to test the effectiveness of following URLs in messages when insufficient clues are otherwise present. o 'Nonsense' HTML tags are stripped rather than replaced with a space (e.g. Wrinkle Reduction becomes "Wrinkle" and "Reduction" rather than "Wr", "inkle", "Reduc" and "tion"). o Decode numeric character entities so that your septic system becomes "your septic system". o

and
tags are replaced with single blanks. o DB classifier keeps a list of "changed words" to prevent saves from updating *all* words. o DB classifier no longer caches hapaxes. o In muttrc, fix incorrect Spambayes header name. o Integrated code for the VM mailer into spambayes.el o In hammiefilter, make untrain mode work. Transition =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D o If you are using the Outlook Plugin and a recent bsddb or bsddb3 is available, you will need to do a full retrain. o If you had set the environment variable BAYESCUSTOMIZE to point to more than one configuration file, you will need to change the separator character from a space to the path separator for your platform (a semi-colon on windows, a colon on *nix and a newline on Mac OS9) o If your old configuration file used the pop3proxy_port, pop3proxy_server_name or pop3proxy_server_port options, these will no longer work. Copy the values in them and use the web interface to update your configuration file. o Your old configuration file more than likely includes deprecated settings. The old settings will still work for the moment, but you should take the time to update them. The "convert_config_file.py" script will convert the file for you, without loss of comments, and avoiding whitespace changes where possible. o If you are using POP3 proxy, you should use the web interface to set the location of the "message info" database (a full pathname is recommended). o If you are using POP3 proxy, it is recommended (but not required) that you do a full retrain to take advantage of the "message info" database. Reported Bugs Fixed =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The following bugs tracked via the Sourceforge system were fixed: 677804, 642740, 685746, 693423, 696995, 696476, 697120, 698852, 700165, 704921, 707491, 725307, 725616, 725307, 725466, 726255, 728886, 715248, 733247, 737956, 737955, 706170, 737986, 743515, 749277 A url containing the details of these bugs can be made by appending the bug number to this url: http://sourceforge.net/tracker/index.php?func=3Ddetail&group_id=3D61702&a= tid =3D498103&aid=3D Feature Requests Added =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The following feature requests tracked via the Sourceforge system were fixed: 690928, 703283 A url containing the details of these feature requests can be made by appending the request number to this url: http://sourceforge.net/tracker/index.php?func=3Ddetail&group_id=3D61702&a= tid =3D498104&aid=3D From nico@tekNico.net Sun Jun 22 06:44:22 2003 From: nico@tekNico.net (Nicola Larosa) Date: Sun, 22 Jun 2003 07:44:22 +0200 Subject: Excerpt from PostgreSQL Weekly News - Python Support Message-ID: Subject: [ANNOUNCE] PostgreSQL Weekly News - June 18th 2003 Date: 19 Jun 2003 19:09:50 -0400 From: Robert Treat To: pgsql-announce@postgresql.org == PostgreSQL Weekly News - June 18th 2003 == ... Theres been a bit of discussion (and some fixes) regarding python support as of late. The fixes include improving the way which python input converter to use is decided, and fixing some issues in setup.py. The discussion revolves around the fact that there have been a number of changes in Python versions greater than 2.2.3 which makes our current support of plpython somewhat broken. Some folks have talked about revamping the language to be used only as an untrusted language, if your interested in helping to maintain this package please post a note to the pgsql-interfaces list. This is something that the core team is not likely to work on so it would be really great if someone can step up to the plate. ... -- Nicola Larosa - nico@tekNico.net From terry@wayforward.net Sun Jun 22 18:19:21 2003 From: terry@wayforward.net (Terence Way) Date: Sun, 22 Jun 2003 13:19:21 -0400 Subject: ANN: Design By Contract for Python 1.0 beta 3 Message-ID: Announcing Design By Contract for Python 1.0 beta 3 (Changes since last announcement at end of this email) Design by Contract is familiar to anyone who has spent time with the Eiffel programming language. This implementation is a cross between full Eiffel-style contracts and the doctest module. Contracts are high-level assertions that are part of the program's documentation. Modules and classes have invariants, expressions that must be true at the start and end of every public function or method call. Methods and functions have pre-conditions, expressions that must be true on entry; and post-conditions, expressions that must be true on exit. http://www.wayforward.net/pycontract/ This version supports the full contract feature set: * pre: expressions in function and method docstrings; * post: expressions in function and method docstrings; * inv: expressions in class and module docstrings; * post: expressions can access __old__ values and the __return__ value; * pre: expressions are weakened by derived methods; and * post: and inv: expressions are tightened by derived classes. Version 1.0 beta 3 - 21 June 2003 * Support Jython (possibly Python 2.1) * Support Python 2.2 (doesn't have bool, True, False: those are added in Python 2.2.1) * Partial contract checking - by default in __debug__ mode checks all contracts, otherwise only check pre-conditions and invariants on entry * Can now pass in module names to checkmod()... This makes it easy to enable contracts: just do a contract.checkmod(__name__) at the end of a module.

Contract 1.0 beta3 - Design By Contract for Python. (21-Jun-03) From g2h5dqi002@sneakemail.com Mon Jun 23 04:44:18 2003 From: g2h5dqi002@sneakemail.com (Greg Ewing (using news.cis.dfn.de)) Date: Mon, 23 Jun 2003 15:44:18 +1200 Subject: ANN: Pyrex 0.8 Message-ID: Pyrex 0.8 is now available: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ This release introduces a new compile-time import mechanism for sharing declarations between Pyrex modules, and a new and better way of getting access to external extension types. There are also a few other improvements and bug fixes. Note: There is a small backwards-incompatible change that will require you to make a slight modification to any 'extern' extension type declarations that you have. See the CHANGES.txt file for full details. What is Pyrex? -------------- Pyrex is a new language for writing Python extension modules. It lets you freely mix operations on Python and C data, with all Python reference counting and error checking handled automatically. -- Greg Ewing, Computer Science Dept, University of Canterbury, Christchurch, New Zealand http://www.cosc.canterbury.ac.nz/~greg From mcfletch@rogers.com Mon Jun 23 07:31:42 2003 From: mcfletch@rogers.com (Mike C. Fletcher) Date: Mon, 23 Jun 2003 02:31:42 -0400 Subject: SimpleParse 2.0.1a1 released Message-ID: A new SimpleParse release, which adds optimisations to reduce terminal productions (and thereby speed up certain types of very formally specified grammars) is now available. For affected grammars, it's quite possible to see speedups of 2x compared with v 2.0.0 of the package. It is strongly recommended that you use mxTextTools 2.1.0 with the 2.0.1 release of SimpleParse. Download and documentation: http://simpleparse.sourceforge.net/ What is SimpleParse: SimpleParse is a BSD-licensed Python package providing a simple parser generator for use with the mxTextTools text-tagging engine. SimpleParse allows you to generate tagging tables for use with the text-tagging engine directly from your EBNF grammar. Enjoy, Mike _______________________________________ Mike C. Fletcher Designer, VR Plumber, Coder http://members.rogers.com/mcfletch/ From jason@tishler.net Mon Jun 23 12:21:56 2003 From: jason@tishler.net (Jason Tishler) Date: Mon, 23 Jun 2003 07:21:56 -0400 Subject: Updated Cygwin Package: python-2.2.3-2 Message-ID: New News: === ==== I have updated the version of Python to 2.2.3-2. The tarballs should be available on a Cygwin mirror near you shortly. On Thu, Jun 19, 2003 at 12:06:03AM -0400, Charles Wilson wrote: > Jason Tishler wrote: > >New News: > >=== ==== > >I have updated the version of Python to 2.2.3-1. The tarballs should > >be available on a Cygwin mirror near you shortly. > > _tkinter.dll is missing from 2.2.3-1. It was present in the previous > version, 2.2.2-7. The -2 package corrects the above. Otherwise, this package should be identical to the previous one. Just in case anyone is interested, this was the first time I built a Python 2.2.x on my new PC. I guess I'm guilty of failing to read my own README. :,) Specifically, the following item: 2. The _tkinter extension module will only be built if the X11 header files from the tcltk-20030214-1 source archive have been copied to /usr/include: [snip] Old News: === ==== Python is an interpreted, interactive, object-oriented programming language. If interested, see the Python web site for more details: http://www.python.org/ Please read the README file: /usr/doc/Cygwin/python-2.2.3.README since it covers requirements, installation, known issues, etc. To update your installation, click on the "Install Cygwin now" link on the http://cygwin.com/ web page. This downloads setup.exe to your system. Then, run setup and answer all of the questions. Note that we have recently stopped downloads from sources.redhat.com (aka cygwin.com) due to bandwidth limitations. This means that you will need to find a mirror which has this update. In the US, ftp://mirrors.rcn.net/mirrors/sources.redhat.com/cygwin/ is a reliable high bandwidth connection. In Germany, ftp://ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/mirrors/cygnus/ is usually pretty good. In the UK, http://programming.ccp14.ac.uk/ftp-mirror/programming/cygwin/pub/cygwin/ is usually up-to-date within 48 hours. If one of the above doesn't have the latest version of this package then you can either wait for the site to be updated or find another mirror. The setup.exe program will figure out what needs to be updated on your system and will install newer packages automatically. If you have questions or comments, please send them to the Cygwin mailing list at: cygwin@cygwin.com . I would appreciate if you would use this mailing list rather than emailing me directly. This includes ideas and comments about the setup utility or Cygwin in general. If you want to make a point or ask a question, the Cygwin mailing list is the appropriate place. *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain.com@cygwin.com Jason -- PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6 From ngps@netmemetic.com (Ng Pheng Siong) Mon Jun 23 19:35:41 2003 From: ngps@netmemetic.com (Ng Pheng Siong) (Ng Pheng Siong) Date: 23 Jun 2003 18:35:41 GMT Subject: ANN: M2Crypto 0.11 Message-ID: Hi, M2Crypto 0.11 is now available. M2Crypto is a crypto and SSL toolkit for Python: - DH, RSA, DSA, symmetric ciphers (including AES), message digests, HMAC. - SSL functionality to implement clients and servers, with examples. - HTTPS extensions to Python's HTTP functionality. - XML-RPC over HTTPS. - Unforgeable HMAC'ing AuthCookies for web session management. - FTP/TLS client and server. - S/MIME. - ZServerSSL: A HTTPS server for Zope. - ZSmime: An S/MIME messenger for Zope. What's new: - Fixes to memory leaks. (Thanks Dave Berkeley and Brent Chun.) - ZServerSSL updated for Zope 2.6.1. - ZSmime on Zope 2.6.1 interoperates with Mozilla 1.1. (No code change.) As usual, M2Crypto is here: http://www.post1.com/home/ngps/m2 Cheers. -- Ng Pheng Siong http://firewall.rulemaker.net -+- Manage Your Firewall Rulebase Changes http://www.post1.com/home/ngps -+- Open Source Python Crypto & SSL From peter@engcorp.com Mon Jun 23 20:26:51 2003 From: peter@engcorp.com (Peter Hansen) Date: Mon, 23 Jun 2003 15:26:51 -0400 Subject: Toronto-area Python user group meets Tuesday, June 24, 8pm Message-ID: The next meeting of PyGTA, the most excellent Toronto-area user group for all things Python, will be at the usual location (519 Church St. near Wellesley) and time. See http://web.engcorp.com/pygta/wiki/NextMeeting for details. We haven't received confirmation of the hoped-for presentation involving Python- generated SVG yet, which will likely mean we'll be subjected to a TDDious demonstration by Peter Hansen on doing test-driven development with Python, or something awful like that. Maybe we can limit his enthusiasm simply to showing how to use PyUnit to write simple unit tests. Remember, the more people come out to attend, the more likely the discussion will be interesting enough that we won't have to resort to such awful things! If you are "more people", plan to attend! Better yet, bring a friend, or grab someone off the street on your way there, and introduce him or her to Python... -Peter Hansen, Ian Garmaise, meeting organizers, and the other PyGTA faithful :-) Note: if you would like a CDROM-equipped laptop and an LCD projector to be made available for a demonstration, you must email Peter prior to 16:00 on Tuesday. Note also: the post-meeting sugar-and-caffeine-fest will of course occur at Just Desserts, as usual. From halley@dnspython.org Tue Jun 24 04:19:03 2003 From: halley@dnspython.org (Bob Halley) Date: 23 Jun 2003 20:19:03 -0700 Subject: ANN: dnspython 1.0.0b3 Message-ID: dnspython 1.0.0b3 has ben released. It is pretty much the same as 1.0.0b2, but I have renamed the containing module from "DNS" to "dns" to avoid conflicting with the PyDNS module. /Bob From mcfletch@rogers.com Tue Jun 24 15:35:42 2003 From: mcfletch@rogers.com (Mike C. Fletcher) Date: Tue, 24 Jun 2003 10:35:42 -0400 Subject: TTFQuery 0.2.4 available (from SourceForge) Message-ID: TTFQuery builds on the FontTools module to allow the Python programmer to query TTF font-files for metadata and glyph outlines. This allows the programmer to find (system) fonts based on family, name or decoration (italics, weight). It is currently used by OpenGLContext to provide outline and extruded font forms within OpenGL. http://sourceforge.net/projects/ttfquery/ By popular demand, v0.2.4 includes support for querying the registry on Win32 systems to find all registered fonts, not merely those in the standard fonts directory. It also includes the documented Mac OS X font directories in the list of default search paths. FontTools: http://sourceforge.net/projects/fonttools/ OpenGLContext: http://pyopengl.sourceforge.net/context/ Enjoy, Mike _______________________________________ Mike C. Fletcher Designer, VR Plumber, Coder http://members.rogers.com/mcfletch/ From gerrit@nl.linux.org Tue Jun 24 20:57:27 2003 From: gerrit@nl.linux.org (Gerrit Holl) Date: Tue, 24 Jun 2003 21:57:27 +0200 Subject: Brian 0.1.2 has been released Message-ID: Brian 0.1.2 has been released at Tue, 24 Jun. WHAT IS BRIAN ============= Brian is an unfinished jump-and-run platform game. It is written in the Python programming language, using the Pygame library (on top of SDL). Although it will be an independant project, it will be inspired by Commander Keen. It will be written using a Linux workstation, but it should be crossplatform for all major platforms (Linux, Windows). It is called Brian after "Monty Python's Life of Brian", and the game may contain some references. Currently, Brian includes the following features: * Player score * Multiple resolutions * Monsters * Random levels * Level editor * Level exits * Perspective * Music * Sound (very limited) * And more, but don't expect it to be very much fun yet WHATSNEW ======== * Windows version now works * Fire's have a variable size * Multiple backgrounds now possible and edible * Walls now have perspective, engine should work for other sprites too * Brian appears behind walls when he's on the left * Don't load data if we don't need it * Many bugfixes * Many internal fixes * See NEWS file for details * See CVS logs for even more details MORE INFORMATION ================ Visit http://pybrian.sourceforge.net/ for more information. Gerrit Holl. gerrit@nl.linux.org. From ahaas@airmail.net Tue Jun 24 22:38:30 2003 From: ahaas@airmail.net (Art Haas) Date: Tue, 24 Jun 2003 16:38:30 -0500 Subject: [ANNOUNCEMENT] Eighth release of PythonCAD now available Message-ID: I'd like to announce the eighth development release of PythonCAD, a CAD package for open-source software users. As the name implies, PythonCAD is written entirely in Python. The goal of this project is to create a fully scriptable drafting program that will match and eventually exceed features found in commercial CAD software. PythonCAD is released under the GNU Public License (GPL). PythonCAD requires Python 2.2. The interface is GTK 2.0 based, and uses the PyGTK module for interfacing to GTK. The design of PythonCAD is built around the idea of separating the interface from the back end as much as possible. By doing this, it is hoped that both GNOME and KDE interfaces can be added to PythonCAD through usage of the appropriate Python module. Addition of other interfaces will depend on the availability of a Python module for that particular interface and developer interest and action. The eighth release features improved preference controls. There is now a unified preference dialog box for setting drawing preferences, and more optional settings are now possible. Setting the background color of the drawing window is now available, and many dimension entity settings have been added, such as dimension bar color, dimension endpoint marker size, and dimension text color. The new preference dialog also allows for the setting of leader line arrow sizes and font color. Another new feature in this release is a tool for drawing polygons. The polygons can have any number of sides from three on up. A number of internal code improvements are included in this release as well. The intersection code has been reworked again to return entity intersections as tuples containing float values. This release also has the beginnings of the rework of internal storage and handling of the user preferences and options. This work will continue for the next several releases at least. There are the usual assortment of bug fixes, documentation additions, and code improvements as well. The new preference dialog does have a display bug when showing the font selection widget. I haven't figured out what is wrong, but opted to make the release with the bug present. A simple workaround is to select another option to modify so the font display widget gets removed, then reselect the option with the font display widget. This workaround will usually make the widget display itself properly. The next release should have this bug removed. The mailing list for the development and use of PythonCAD is available. Visit the following page for information about subscribing and viewing the mailing list archive: http://mail.python.org/mailman/listinfo/pythoncad I'd like to again publicly acknowledge and thank the developers and maintainers of PyChecker for the work they've done in developing this most useful tool. PyChecker is an effective tool for identifying errors in Python code, and I've been using it more and more. PyChecker gets a big recommendation from me and so I say thank you to the people who make it available. http://pychecker.sourceforge.net/ Visit the PythonCAD web site for more information about what PythonCAD does and aims to be: http://www.pythoncad.org/ Come and join me in developing PythonCAD into a world class drafting program! Art Haas -- Man once surrendering his reason, has no remaining guard against absurdities the most monstrous, and like a ship without rudder, is the sport of every wind. -Thomas Jefferson to James Smith, 1822 From goodger@python.org Wed Jun 25 03:49:11 2003 From: goodger@python.org (David Goodger) Date: Tue, 24 Jun 2003 22:49:11 -0400 Subject: [ANN] Docutils 0.3 released Message-ID: Docutils is a system for processing plaintext documentation (reStructuredText markup). Docutils currently supports input from standalone files and PEPs; a future release will be include support for inline documentation from Python modules and packages. It currently produces simple HTML4 for CSS1, LaTeX (which can be processed to PDF), and Docutils-native XML. DocBook XML output is under development, and other formats will become available in time. Quick link to the download: http://prdownloads.sourceforge.net/docutils/docutils-0.3.tar.gz Docutils home page: http://docutils.sourceforge.net/ Although useful and solid, Docutils should be considered experimental software. There are plans to overhaul the configuration system and rename the front-end tools. Internal and API details may change. There have been many improvements since release 0.2: * Extensions to reStructuredText syntax & parser: embedded URIs in hyperlink references; interpreted text; block quote attributions. New directives: admonition, topic, sidebar, line-block, parsed-literal, rubric, epigraph, highlights, pull-quote, include, raw, replace, unicode, class, sectnum, target-notes. * Added convenience functions for easy programmatic/library use. * Added LaTeX output support (thanks to Engelbert Gruber). * The front-end tools have increased in number and now have support for command-line options (thanks to Greg Ward's Optik) and configuration files. * reStructuredText has become an official format for PEPs (see http://www.python.org/peps/pep-0001.html). * Thanks to international Docutils users, language support has been added for Spanish, French, Italian, and Slovak. These join the existing Swedish, German, and English language support. Support for more languages is welcome and easy to add! * Lots of improvements and bug fixes. Details in HISTORY.txt. To subscribe to the mailing lists: * Development discussions (docutils-develop@lists.sourceforge.net): http://lists.sourceforge.net/lists/listinfo/docutils-develop * Docutils usage Q&A (docutils-users@lists.sourceforge.net): http://lists.sourceforge.net/lists/listinfo/docutils-users * CVS checkin messages: http://lists.sourceforge.net/lists/listinfo/docutils-checkins High-level discussions also take place on the Python Doc-SIG mailing list: http://mail.python.org/mailman/listinfo/doc-sig. User documentation: * A ReStructuredText Primer (gentle introduction): http://docutils.sf.net/docs/rst/quickstart.html * Quick reStructuredText (user reference): http://docutils.sf.net/docs/rst/quickref.html * Docutils Front-End Tools: http://docutils.sf.net/docs/tools.html Further details here: * Docutils FAQ: http://docutils.sf.net/FAQ.html * Docutils README: http://docutils.sf.net/README.html * Docutils History: http://docutils.sf.net/HISTORY.html * Copying Docutils: http://docutils.sf.net/COPYING.html * reStructuredText Markup Specification: http://docutils.sf.net/spec/rst/reStructuredText.txt * PEP 256, Docstring Processing System Framework: http://www.python.org/peps/pep-0256.html * PEP 258, Docutils Design Specification: http://www.python.org/peps/pep-0258.html * PEP 287, reStructuredText Docstring Format: http://www.python.org/peps/pep-0287.html There are still many features to be added. Contributors are welcome! -- David Goodger http://starship.python.net/~goodger Programmer/sysadmin for hire: http://starship.python.net/~goodger/cv From anthony@computronix.com Wed Jun 25 17:23:13 2003 From: anthony@computronix.com (Anthony Tuininga) Date: 25 Jun 2003 10:23:13 -0600 Subject: cx_Oracle mailing list Message-ID: A new mailing list has been set up for users of cx_Oracle, a Python extension for accessing Oracle that conforms to the Python database interface API. Please send questions/bug reports and so forth to this mailing list rather than directly to me (although I'll certainly continue to respond to e-mails sent directly to me, others might benefit from the question and the answer). If you wish to subscribe, use the following address http://lists.sourceforge.net/lists/listinfo/cx-oracle-users Since the mailing list is hosted at SourceForge, you can also go to https://sourceforge.net/projects/cx-oracle/ to get information about the project. -- Anthony Tuininga anthony@computronix.com Computronix Distinctive Software. Real People. Suite 200, 10216 - 124 Street NW Edmonton, AB, Canada T5N 4A3 Phone: (780) 454-3700 Fax: (780) 454-3838 http://www.computronix.com From xoltar@xoltar.org Wed Jun 25 21:33:26 2003 From: xoltar@xoltar.org (Bryn Keller) Date: 25 Jun 2003 13:33:26 -0700 Subject: [ANN] Partial.py: convenient notation for partial application/currying Message-ID: By request, I'm releasing a draft of my partial.py module (available from my Python page at http://www.xoltar.org/languages/python.html ), which does things like this: >>> from partial import _ >>> addWorld = _ + " world!" >>> addWorld("Hello,") "Hello, world" >>> from functional import mapcall >>> mapcall(_.upper, ["list", "of", "strings"]) ["LIST", "OF", "STRINGS"] >>> from operator import add >>> add_one = add(1, _) >>> add_one(5) 6 >>> map(add_one, [1,2,3]) [2,3,4] This is a work in progress, use at your own risk. I do not expect the interface to change at all but it is not widely tested and there may very well be bugs. The module depends on updated versions of other modules in the Xoltar Toolkit, so I'm releasing updated versions of them as well. I'm not making a Sourceforge release because I haven't had time to do the sort of testing I'd like to do before making a release. At least this way, you can try them out. If you find bugs, please report them and I'll fix them (though sometimes slowly). Bryn xoltar at xoltar dot org From DavidA@ActiveState.com Wed Jun 25 21:40:34 2003 From: DavidA@ActiveState.com (David Ascher) Date: Wed, 25 Jun 2003 13:40:34 -0700 Subject: OSCON Lightning Talk Proposals still being accepted Message-ID: If you're going to OSCON (http://conferences.oreillynet.com/os2003/) and want to give a very short presentation about something Python-related, send me an email. Please put the word "lightning" in the subject line. The lightning talk session is scheduled for Thursday, from 4:30 till 6:00. We're still accepting proposals, so send one in today! I'll probably be accepting proposals until late in the game, except if the slot fills up. If you've never heard of lightning talks, you can find out more information at: http://perl.plover.com/lt/osc2003/lightning-talks.html But ignore the submission informations on that site, just send me email. See you in Portland, -- David Ascher From stuff@mailzilla.net Wed Jun 25 22:51:26 2003 From: stuff@mailzilla.net (Phil) Date: 25 Jun 2003 14:51:26 -0700 Subject: Scratchy 0.4 - an Apache log parser and HTML report generator Message-ID: http://scratchy.sourceforge.net About Scratchy Scratchy is a set of scripts to parse Apache web server log files and extract useful information. From this data, Scratchy will create HTML reports so that website administrators can easily view the information and determine trends and their typical audience. Scratchy began as a proof-of-concept which allowed me to compile stats about my personal website. As time progressed I continually added features and improvements and I felt that it was now at a point that it would be useful to others. Why Scratchy? Well, the name of the project of course comes from the Simpsons "Itchy and Scratchy Show". The functionality that the project aims to supply is a complete log parsing and report generating tool. Also, there seemed to be a need for such a project in Python. I have seen some other Apache log parsers but they were developed in other languages (such as Perl, C, etc). One goal of this project is for it to be extensible, to that tune, most of the report appearance can be easily modified by tweaking a single config file. What information does Scratchy report? # Accessed web pages # hosts accessing your website # operating systems # browsers # search engines # robots # file types accessed # errors # a trace of pages accessed by each ip address (if enabled). http://scratchy.sourceforge.net From jjl@pobox.com Thu Jun 26 02:06:21 2003 From: jjl@pobox.com (John J. Lee) Date: 26 Jun 2003 02:06:21 +0100 Subject: ANN: ClientForm 0.0.10 and 0.1.3a released Message-ID: http://wwwsearch.sourceforge.net/ClientForm/ A new stable and development release. Changes from 0.0.9 to 0.0.10: * Changed license from MIT to BSD, to make it easier to use other code. The only difference is the addition of a non-endorsement clause. * Default value for single-selection SELECT controls was wrong. Before, nothing was selected if select_default argument to ParseResponse / ParseFile was False (the default). Now, the first item is selected, as documented. Thanks to Chris Curvey. * Fixed exceptions raised by HTMLForm.__getitem__ / .__setitem__ and SelectControl.toggle_by_label. * RadioControl now has default value "on" -- same as for CheckboxControl. Both IE5 and Mozilla Firebird 0.6 do this. * CHECKBOX and multiple SELECT controls now allow control.value = None, for consistency. * Parse errors may now be ignored, thanks to ignore_errors argument to ParseFile and ParseResponse. * Other minor changes. Changes from 0.1.2a to 0.1.3a: * Equivalent changes to those listed above. * Added HTMLForm.set and HTMLForm.clear methods (and corresponding control methods). Useful! * A minor 2.3 compatibility fix. Note that there will be a couple more interface changes before a 0.1.x beta release (the only important planned change relates to the disabled attribute). Multi-file upload is still not implemented. Requires Python >= 1.5.2. ClientForm is a Python module for handling HTML forms on the client side, useful for parsing HTML forms, filling them in and returning the completed forms to the server. It has developed from a port of Gisle Aas' Perl module HTML::Form, from the libwww-perl library, but the interface is not the same. Simple example: from urllib2 import urlopen from ClientForm import ParseResponse forms = ParseResponse(urlopen("http://www.acme.com/form.html")) form = forms[0] print form form["author"] = "Gisle Aas" # form.click returns a urllib2.Request object # (see HTMLForm.click.__doc__ if you don't have urllib2) response = urlopen(form.click("Thanks")) John From knight@baldmt.com Thu Jun 26 03:50:20 2003 From: knight@baldmt.com (Steven Knight) Date: Wed, 25 Jun 2003 21:50:20 -0500 (CDT) Subject: ANNOUNCE: SCons goes beta w/release 0.90, adds Visual Studio support Message-ID: SCons is a software construction tool (build tool, or make tool) written in Python. It is based on the design which won the Software Carpentry build tool competition in August 2000. SHAMELESS PLUG: Come attend the SCons BOF at the O'Reilly Open Source convention, Thursday, July 10th from 7:00 to 8:00 p.m. http://conferences.oreillynet.com/cs/os2003/view/e_sess/4346 Beta version 0.90 of SCons has been released and is available for download from the SCons web site: http://www.scons.org/ Or through the download link at the SCons project page at SourceForge: http://sourceforge.net/projects/scons/ RPM and Debian packages and a Win32 installer are all available, in addition to the traditional .tar.gz and .zip files. WHAT'S NEW IN THIS RELEASE? IMPORTANT: Release 0.90 contains the following interface changes: - SCons now checks for the existence of Microsoft Visual Studio on disk before using it (to avoid getting misled by bogus stuff left over in the registry). SCons might not find a copy of Visual Studio if it's an older version that installed itself in a default directory that we haven't seen before; please let us know if that seems to be the case. See the release notes for more information about these changes. This release adds the following features: - SCons now supports Microsoft Visual Studio .NET. - SCons now support Microsoft Visual Studio project (.dsp, .dsw, .sln and .vcproj) files. - An M4 Builder has been added. - Support for the Intel C Compiler (icl.exe) has been added. - The SConf subsystem can now check for specific functions and types. The following fixes have been added: - Portability to non-GNU versions of lex and yacc has been improved. - Library prefixes now work correctly in a subdirectory that matches the prefix. - Options are now saved as their actual value type (not all as strings), values that contain single quotes are now stored correctly, and any non-default Option values is stored regardless of how it was changed. - The temporary file name used to link long command line on Win32 systems now has a .lnk suffix (necessary for some tool chains). - SCons now generates an error if a construction variable is not the same form as a valid Python identifier. - The "-h" option no longer requires the distutils package. - Up-to-date messages now quote the targets like Make (`backquote-quote') instead of with double quotes. - SCons now correctly builds targets above the current directory when the -u, -U or -D options are used. - The -n option no longer updates the .sconsign file signatures. - Import('*') to import all Export()ed variables now works properly. - The SConf subsystem now works properly with the -n and -q options, when using SConscriptChdir(), with paths containing white space, and with Builders that return lists of nodes. The documentation has been improved: - A bug in the _concat() function documentation has been fixed. - The no_import_lib construction variable is now documented. - Added clarifying text that $*FLAGS variables do not automatically contain their corresponding $_*INCFLAGS values. - New features have been documented. ABOUT SCONS Distinctive features of SCons include: - a global view of all dependencies; no multiple passes to get everything built properly - configuration files are Python scripts, allowing the full use of a real scripting language to solve difficult build problems - a modular architecture allows the SCons Build Engine to be embedded in other Python software - the ability to scan files for implicit dependencies (#include files); - improved parallel build (-j) support that provides consistent build speedup regardless of source tree layout - use of MD5 signatures to decide if a file has really changed; no need to "touch" files to fool make that something is up-to-date - easily extensible through user-defined Builder and Scanner objects - build actions can be Python code, as well as external commands An scons-users mailing list is available for those interested in getting started using SCons. You can subscribe at: http://lists.sourceforge.net/lists/listinfo/scons-users Alternatively, we invite you to subscribe to the low-volume scons-announce mailing list to receive notification when new versions of SCons become available: http://lists.sourceforge.net/lists/listinfo/scons-announce ACKNOWLEDGEMENTS Special thanks to Chad Austin, Matt Balvin, Timothee Bessett, Charles Crain, Steve Leblanc, Gary Oberbrunner, Anthony Roach, David Snopek, Greg Spencer and Christoph Wiedemann for their contributions to this release. On behalf of the SCons team, --SK From peter.christen@anu.edu.au Thu Jun 26 07:56:36 2003 From: peter.christen@anu.edu.au (Peter Christen) Date: Thu, 26 Jun 2003 16:56:36 +1000 Subject: ANN: Febrl-0.2.1 Message-ID: The ANU Data Mining Group is pleased to announce the release of Febrl 0.2.1, a prototype program code intended to make probabilistic record linkage easier, faster and more accurate for biomedical and other researchers. The programs, known collectively as "Febrl" - Freely Extensible Biomedical Record Linkage - address the data cleaning and standardisation tasks which are essential first steps for most record linkage projects, and provide routines for probabilistic record linkage and record deduplication. Since its initial release (Version 0.1) the Febrl system has undergone a major redesign resulting in an object-oriented approach which allows easier configuration and is more extensible. The main features of the Febrl Version 0.2.1 are - Probabilistic and rules-based cleaning and standardisation routines for names, addresses and dates. - A variety of supplied look-up and frequency tables for names and addresses. - Various comparison functions for names, addresses, dates and localities, including approximate string comparisons, phonetic encodings, geographical distance comparisons, and time and age comparisons. - Several blocking (indexing) methods, including the traditional compound key blocking used in many record linkage programs. - Probabilistic record linkage routines based on the classical Fellegi and Sunter approach, as well as a 'flexible classifier' that allows a flexible definition of the weight calculation. - Process indicators that give estimations of remaining processing times. - Access methods for fixed format and comma-separated value (CSV) text files, as well as SQL databases. - Efficient temporary direct random access data set based on the Berkeley database library. - One-to-one assignment procedure for linked record pairs based on the 'Auction' algorithm. - Supports parallelism for higher performance on parallel platforms, based on MPI (Message Passing Interface), a standard for parallel programming, and Pypar, an efficient and easy-to-use module that allows Python programs to run in parallel on multiple processors and communicate using MPI. - A database generator which allows the creation of data sets of randomly created records (containing names, addresses and dates) with the possibility to include duplicate records with randomly introduced modifications. This allows for easy testing and evaluation of linkage (deduplication) processes. - Example project modules and example data sets allowing simple running of Febrl projects without any modifications needed. - An extensive 136 page manual. Febrl, which is written is the free, open source Python programming language, is itself available under a free, open source license, which we hope will encourage others to contribute to its further development and support. Contact details, background information, documentation and, of course, the program code are all available from the project Web site at http://datamining.anu.edu.au/linkage.html as well as from 'sourceforge.net' at http://sourceforge.net/projects/febrl We would like to stress that the programs are still in the early stages of development, and we do not yet recommend them for production use, but we encourage you to try them and to provide us with feedback. We particularly welcome bug reports and ideas for future development. There are many ways to help with the project: testing, programming and software engineering, testing, documentation and technical writing, testing, translation, testing, provision of (anonymous, non-confidential) training and example data sets, and testing (did we mention that already?). We look forward to hearing from you. Peter Christen and Tim Churches Principal Developers of Febrl From mfi@ukr.net Thu Jun 26 14:30:28 2003 From: mfi@ukr.net (Max Ischenko) Date: Thu, 26 Jun 2003 16:30:28 +0300 Subject: ANN: Vertoo-0.6 Message-ID: I'm pleased to announce first public release of the Vertoo. Vertoo is a tool that lightens developer's burden to maintain up-to-date versioning information across project's files. Vertoo provides simple interface to change the version (or it's part) and distribute these changes through the project's files. Configuration describes versions used in a project, each in arbitrary, user-specified scheme and formats for each of the occurences of the version's data in the project files. Vertoo is designed to be as non-obtrusive as possible. To use it you just have to create a configuration file where your describe your project's modules, relevant files and version format used. That's all. No changes in your source files (like adding special marks or creating .in files) are requried. Files are modified in-place, as you would do it by hand. Now you could run vertoo, either by hand or by adding appropriate command to one of your Makefile's rules or release script. If you later change your mind and stop using Vertoo you'll just delete it's configuration files. What's new in this release? As I said, this is first public release. While Vertoo is already quite usable (I'm using it on several of my own projects, including Vertoo itself), it lacks some important features. Still, I encourage potential users to try it out and submit feedback. Features: - Flexible and powerful notation to describe versioning scheme - Simple interface to update version info across specified files - Dependencies between version's components (e.g. reset minor number when major is incremented) - Conditional inclusion of versioning components (e.g. only if release number is present) - Package can include any number of modules (with different versioning schemes) Get it from the project's web site: http://vertoo.sourceforge.net Supported platforms: Vertoo is written in Python and thus requries it to run (I've tested with Python 2.2.0 but it could be ported easily to earlier version if the need arises). I successfully use Vertoo on Linux and Windows and it would probably run on other systems as well. From theller@python.net Thu Jun 26 19:27:05 2003 From: theller@python.net (Thomas Heller) Date: Thu, 26 Jun 2003 20:27:05 +0200 Subject: ctypes 0.6.2 released Message-ID: Overview ctypes is a ffi (Foreign Function Interface) package for Python. It allows to call functions exposed from dlls/shared libraries and has extensive facilities to create, access and manipulate simple and complicated C data types transparently from Python - in other words: wrap libraries in pure Python. ctypes runs on Windows, MacOS X, Linux, Solaris, the latter three require that your machine is supported by libffi. On Windows, ctypes contains (the beginning of) a COM framework mainly targetted to use and implement custom COM interfaces. Changes in version 0.6.2 Fixed a bug which prevented callback functions to return data types other than integers. They can now also return pointers, floats, and doubles. It is now possible to pass structures and unions to function calls *by value*. Currently this works only on Windows. A lot of changes to the COM package, but all this is still work in progress and unstable, and it has to be properly documented. Homepage http://starship.python.net/crew/theller/ctypes/ Downloads https://sourceforge.net/project/showfiles.php?group_id=71702 Thomas From info@nyc-search.com Fri Jun 27 22:36:02 2003 From: info@nyc-search.com (NYC-SEARCH) Date: 27 Jun 2003 14:36:02 -0700 Subject: JOB: Python Technical Lead, New York, NY Message-ID: JOB: Python Technical Lead, New York, NY DETAILS >> http://www.nyc-search.com/jobs/python.html From eric@enthought.com Fri Jun 27 23:08:02 2003 From: eric@enthought.com (eric jones) Date: Fri, 27 Jun 2003 17:08:02 -0500 Subject: [ANN] SciPy '03 -- The 2nd Annual Python for Scientific Computing Workshop Message-ID: Hey folks, I've been postponing this announcement because the registration page isn't active yet. It's getting late though, and I thought I'd at least let you know SciPy '03 is happening. I'll repost when registration is open. Thanks, Eric ------------------------------------------------------- SciPy '03 The 2nd Annual Python for Scientific Computing Workshop ------------------------------------------------------- CalTech, Pasadena, CA September 11-12, 2003 http://www.scipy.org/site_content/scipy03 This workshop provides a unique opportunity to learn and affect what is happening in the realm of scientific computing with Python. Attendees will have the opportunity to review the available tools and how they apply to specific problems. By providing a forum for developers to share their Python expertise with the wider industrial, academic, and research communities, this workshop will foster collaboration and facilitate the sharing of software components, techniques and a vision for high level language use in scientific computing. The cost of the workshop is $100.00 and includes 2 breakfasts and 2 lunches on Sept. 11th and 12th, one dinner on Sept. 11th, and snacks during breaks. Online registration is not available yet, but will be soon. We would like to have a wide variety of presenters this year. If you have a paper you would like to present, please contact eric@enthought.com. Discussion about the conference may be directed to the SciPy-user mailing list: Mailing list page: http://www.scipy.org/MailList Mailinbg list address: scipy-user@scipy.org Please forward this announcement to anyone/list that might be interested. ------------- Co-Hosted By: ------------- The National Biomedical Computation Resource (NBCR, SDSC, San Diego, CA) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://nbcr.sdsc.edu The mission of the National Biomedical Computation Resource at the San Diego Supercomputer Center is to conduct, catalyze, and enable biomedical research by harnessing advanced computational technology. The Center for Advanced Computing Research (CACR, CalTech, Pasadena, CA) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://nbcr.sdsc.edu CACR is dedicated to the pursuit of excellence in the field of high-performance computing, communication, and data engineering. Major activities include carrying out large-scale scientific and engineering applications on parallel supercomputers and coordinating collaborative research projects on high-speed network technologies, distributed computing and database methodologies, and related topics. Our goal is to help further the state of the art in scientific computing. Enthought, Inc. (Austin, TX) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://enthought.com Enthought, Inc. provides scientific and business computing solutions through software development, consulting and training. ---------------------------------------------- eric jones 515 Congress Ave www.enthought.com Suite 1614 512 536-1057 Austin, Tx 78701 From toga@thuswise.co.uk, webmaster@thuswise.org Sat Jun 28 17:13:12 2003 From: toga@thuswise.co.uk, webmaster@thuswise.org (Thuswise Webmaster) Date: Sat, 28 Jun 2003 16:13:12 +0000 Subject: ANN: TOGA (Timetables Optimised with Genetic Algorithms) v 0.01 Message-ID: Introducing the first release of TOGA ===================================== TOGA stands for "Timetables Optimised with Genetic Algorithms". It is ultimately intended as an application for non-technical users which automatically generates timetables for schools and institutions. This version provides a framework for future development. It is a fully-functioning command line application written in the Python programming language. It is extensively documented, and accompanied by a suite of unit tests. The code is released under the GNU Public License. We are actively seeking feedback from Python programmers, workers in Evolutionary Algorithms, and potential users. * The main project page is at: http://www.thuswise.co.uk/toga.html * There is a more detailed introduction to TOGA here: http://www.thuswise.co.uk/toga/docs/intro.html * Future plans for the code: http://www.thuswise.co.uk/toga/docs/roadmap.html * Download the source from: http://www.thuswise.co.uk/toga_down.html Future announcements about TOGA will be made in comp.lang.python.announce. Please send an e-mail to the "reply-to" address to be alerted to new developments. ========================= THUSWISE LTD http://www.thuswise.co.uk From itamar@itamarst.org Sun Jun 29 04:55:34 2003 From: itamar@itamarst.org (Itamar Shtull-Trauring) Date: Sat, 28 Jun 2003 23:55:34 -0400 Subject: ANN: Twisted 1.0.6 (includes security fixes) Message-ID: IMPORTANT: This release includes security updates to twisted.web. It is strongly recommended that you upgrade to this version of Twisted. Twisted is an event-driven networking framework for server and client applications. For more information, visit http://www.twistedmatrix.com, join the list http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python or visit us on #twisted at irc.freenode.net. What's New in 1.0.6 =================== - Security fixes for twisted.web. - Cred, Twisted's unified authentication and authorization framework, was rewritten. While still not stable, the new system is far superior and developers are encouraged to start using it. - Flow, an utility page for integrating asynchronous control flow with generators and iterators. - Many improvements to the UDP subsystem. - Many Windows-specific networking bug fixes. - Cleanups in Woven - outputted HTML no longer includes attributes used by templating, removed fake-acquisition for templates. - Support switching over to TLS from TCP connections (useful for e.g. STARTTLS in SMTP.) - Improvements to the mail protocols and infrastructure. - Fixed 2.2.0 compatibility. - Index support for Lore. - Bug fixes, documentation updates and small feature improvements. What is Twisted? ================ Twisted is an event-driven framework for building networked clients and servers. It contains a powerful and simple networking core, a full-featured suite of interoperable protocols, among them a powerful web server and applications framework. Twisted supports many event loops for both server apps and GUI integration on the client side, including: - Win32 events, including GUI support - GTK+ - GTK+ 2 - Qt - wxPython - Tkinter Twisted can run protocols over TCP, SSL, UDP, multicast, Unix sockets and subprocesses. It also includes scheduling support, threading integration, RDBMS event loop integration and other basic requirements for networked applications. Also included are implementations of many protocols. In some cases this includes complete frameworks providing facilities on top of the base protocol: - SSH - IMAP - DNS - FTP - HTTP, including a complete web framework - XML-RPC - SOAP server framework - NNTP and complete NNTP server framework - SOCKSv4 (server only) - SMTP - IRC - telnet - POP3 - AOL's instant messaging TOC - MSN messaging - OSCAR, used by AOL IM as well as ICQ (client only) - MouseMan serial mice, and GPS devices - Twisted Perspective Broker, a remote object protocol From me@privacy.net Sun Jun 29 08:35:12 2003 From: me@privacy.net (Gregarius) Date: Sun, 29 Jun 2003 19:35:12 +1200 Subject: ANN: Pyrex 0.8.1 Message-ID: Pyrex 0.8.1 is now available: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ This release fixes some breakage in 0.8 that resulted in mangled names being used for some declarations in external header files. The distutils extension has also been modified slightly to stop it from attempting to compile the generated C file if the Pyrex compiler reports errors. What is Pyrex? -------------- Pyrex is a new language for writing Python extension modules. It lets you freely mix operations on Python and C data, with all Python reference counting and error checking handled automatically. From barry@python.org Mon Jun 30 02:57:43 2003 From: barry@python.org (Barry Warsaw) Date: 29 Jun 2003 21:57:43 -0400 Subject: RELEASED: Python 2.3b2 Message-ID: Python 2.3b2 is the second beta release of Python 2.3. There have be a slew of fixes since the first beta, and a few new "features". Our goal is to have a final Python 2.3 release by early August, so we encourage lots of testing for this beta. Highlights since beta 1 include: - IDLEfork has been merged in and now replaces the old IDLE. - The Windows installer now ships with Tcl/Tk 8.4.3. - list.index() has grown optional `start' and `end' arguments. - A new C-only API function PyThreadState_SetAsyncExc() which can be used to interrupt threads by sending them exceptions. - Python programs can enter the interactive prompt at program exit by setting the PYTHONINSPECT environment variable. - Many new doctest improvements, including the ability to write doctest based unit tests. - New and improved documentation for writing new types in C that participate in cyclic garbage collection. There is at least one known bug: we have seen crashes on both Windows and Linux with certain interactions between test_logging and test_bsddb3. We intend to fix this for the next release. For more highlights, see http://www.python.org/2.3/highlights.html Other new stuff since Python 2.2: - Many new and improved library modules, e.g. sets, heapq, datetime, textwrap, optparse, logging, bsddb, bz2, tarfile, ossaudiodev, and a new random number generator based on the highly acclaimed Mersenne Twister algorithm (with a period of 2**19937-1!). - New builtin enumerate(): an iterator yielding (index, item) pairs. - Extended slices, e.g. "hello"[::-1] returns "olleh". - Universal newlines mode for reading files (converts \r, \n and \r\n all into \n). - Source code encoding declarations. (PEP 263) - Import from zip files. (PEP 273 and PEP 302) - FutureWarning issued for "unsigned" operations on ints. (PEP 237) - Faster list.sort() is now stable. - Unicode filenames on Windows. - Karatsuba long multiplication (running time O(N**1.58) instead of O(N**2)). If you have an important Python application, we strongly recommend that you try it out with a beta release and report any incompatibilities or other problems you may encounter, so that they can be fixed before the final release. To report problems, use the SourceForge bug tracker: http://sourceforge.net/tracker/?group_id=5470&atid=105470 Enjoy, -Barry From halley@play-bow.org Mon Jun 30 08:29:13 2003 From: halley@play-bow.org (Bob Halley) Date: 30 Jun 2003 00:29:13 -0700 Subject: ANN: dnspython 1.0.0 Message-ID: dnspython 1.0.0, the first non-development version of dnspython, has been released. Here's the README file: dnspython INTRODUCTION dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython provides both high and low level access to DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. To see a few of the ways dnspython can be used, look in the examples/ directory. dnspython originated at Nominum where it was developed to facilitate the testing of DNS software. Nominum has generously allowed it to be open sourced under a BSD-style license, and helps support its future development by continuing to employ the author :). ABOUT THIS RELEASE This is dnspython 1.0.0, the first non-development version of dnspython. New in this release: The Name and Rdata classes now use rich comparisons. If a resolver's cache attribute is set to an instance of dns.resolver.Cache, the resolver will cache an answer for the DNS lifetime of the answer. dns.resolver.Answer instances now have an "expiration" attribute. This release fixes all known bugs from 1.0.0b3. See the ChangeLog file for more detailed information on changes since the prior release. REQUIREMENTS Python 2.2 or later. INSTALLATION To build and install dnspython, type python setup.py install HOME PAGE For the latest in releases, documentation, and information, visit the dnspython home page at http://www.dnspython.org/ DOCUMENTATION Documentation is sparse at the moment. Use pydoc, or read the HTML documentation at the dnspython home page, or download the HTML documentation. BUG REPORTS Bug reports may be sent to bugs@dnspython.org MAILING LISTS A number of mailing lists are available. Visit the dnspython home page to subscribe or unsubscribe. Kits are now signed. Here's fingerprint info for the signing key: pub 1024D/CD706369 2003-06-30 Bob Halley Key fingerprint = 3E0C 63DB 06DE BFD9 B2FE A75B 75E0 3544 CD70 6369 You can get the public key from a keyserver, or from http://www.dnspython.org/public_key.asc /Bob From jimmy@retzlaff.com Mon Jun 30 12:38:29 2003 From: jimmy@retzlaff.com (Jimmy Retzlaff) Date: Mon, 30 Jun 2003 04:38:29 -0700 Subject: ANN: pyUnRAR 0.1 Message-ID: pyUnRAR is a ctypes based wrapper around the free UnRAR.dll. It enables reading and unpacking of archives created with the RAR/WinRAR archivers. There is a low-level interface which is very similar to the C interface provided by UnRAR.dll. There is also a high-level interface which makes some common operations easier. pyUnRAR requires Microsoft Windows, Python 2.2 or higher, and ctypes 0.6.2. pyUnRAR is available at: http://www.averdevelopment.com/python/ This is the initial public release of pyUnRAR. I'd appreciate any feedback. Jimmy From stuff@nonpoint.mailzilla.net Mon Jun 30 15:08:24 2003 From: stuff@nonpoint.mailzilla.net (Phil) Date: 30 Jun 2003 07:08:24 -0700 Subject: Scratchy 0.5 - Report Generator and Log Parser for Apache access logs Message-ID: http://scratchy.sourceforge.net Features new to this version: * bar charts will be produced (requires gdchart module. See Docs on Scratchy website for more information) * a main summary page is now created for easier navigation * some bug fixes About Scratchy Scratchy is a set of scripts to parse Apache web server log files and extract useful information. From this data, Scratchy will create HTML reports so that website administrators can easily view the information and determine trends and their typical audience. Scratchy began as a proof-of-concept which allowed me to compile stats about my personal website. As time progressed I continually added features and improvements and I felt that it was now at a point that it would be useful to others. Why Scratchy? Well, the name of the project of course comes from the Simpsons "Itchy and Scratchy Show". The functionality that the project aims to supply is a complete log parsing and report generating tool. Also, there seemed to be a need for such a project in Python. I have seen some other Apache log parsers but they were developed in other languages (such as Perl, C, etc). One goal of this project is for it to be extensible, to that tune, most of the report appearance can be easily modified by tweaking a single config file. What information does Scratchy report? # Accessed web pages # hosts accessing your website # operating systems # browsers # search engines # robots # file types accessed # errors # a trace of pages accessed by each ip address (if enabled). http://scratchy.sourceforge.net