From mick@translucentcode.org Thu Jul 1 13:04:23 2004 From: mick@translucentcode.org (Michael Twomey) Date: Thu, 01 Jul 2004 13:04:23 +0100 Subject: ANN: pygenx 0.5.3 Message-ID: pygenx 0.5.3 is now available: http://software.translucentcode.org/pygenx/pygenx-0.5.3.tar.gz http://software.translucentcode.org/pygenx/ What is it? ----------- pygenx is a wrapper for the genx[1] canonical[2] XML generation library. If you need a simple, fast, way of generating correct XML without worrying about escaping characters or character entities then pygenx is ideal. What's changed? --------------- In 0.5.3 I've changed the handling of files so any python class implementing flush() and write() methods should work now (including StringIO). Previously they had to contain a pointer to a C FILE struct. I've also written a manual, which can be found in the distribution and online: http://software.translucentcode.org/pygenx/manual.html Other small bugs have been fixed as well. Example ------- #!/usr/bin/env python import genx writer = genx.Writer() fp = file("greeting.xml", "w") writer.startDocFile(fp) writer.startElementLiteral("greeting") writer.addText("Hello world!") writer.endElement() writer.endDocument() greeting.xml: Hello world! mick From nas@mems-exchange.org Thu Jul 1 17:19:54 2004 From: nas@mems-exchange.org (Neil Schemenauer) Date: Thu, 1 Jul 2004 12:19:54 -0400 Subject: ANNOUNCE: Quixote 1.0 released Message-ID: Quixote is yet another framework for developing Web applications in Python. Version 1.0 of Quixote is now available. For more information, please see: http://www.mems-exchange.org/software/quixote/ Note that there have been no code changes since the 1.0c1 candidate release. From joel@joelburton.com Fri Jul 2 12:40:18 2004 From: joel@joelburton.com (Joel Burton) Date: Fri, 02 Jul 2004 07:40:18 -0400 Subject: Washington, DC Zope/Python Users Group Re-Formed Message-ID: After a hiatus, a new group for Python, Zope, and Plone programmers in DC is forming. Our goal is to network and further educate ourselves on programming in Python. While not exclusively for Zope or Plone developers, we expect there to be a focus for these technologies. We have a formation meeting scheduled: Thursday, July 8th 7:00pm-9:00pm Porter Novelli Board Room, 1909 K Street NW. This is very close to both the red line and orange lines of the DC Metro, and close to many restaurants and bars. For information on the meeting, please see http://zpugdc.org/meetings/mtg1. At our first meeting, we'd like to plan the group and gauge interest for regular meetings and presentations. After the meeting, we'll likely adjourn to a nearby bar for a round of drinks. Our mailing list will announce future meetings, and provide social, job-board, and technical support for DC-area Python, Zope, and Plone users. You can subscribe by sending an email (with the subject "subscribe") to zpugdc@lists.zpugdc.org. You can read archives of the mailing list at http://www.zpugdc.org/lists/zpugdc. If you can't make it, but might be interested in a DC Zope/Python users group, please email us and let us know: info@zpugdc.org. Thanks! - Joel Burton for the Zope/Python Users Group of DC. From barry@python.org Fri Jul 2 15:40:13 2004 From: barry@python.org (Barry Warsaw) Date: Fri, 02 Jul 2004 10:40:13 -0400 Subject: Service interruptions on mpo possible this weekend Message-ID: --=-XLFwPHDn7RSJ+iHdDW23 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable The current mail.python.org machine has had many problems over the last few weeks, and it's time to move. Also, we have a deadline of 06-Jul-2004 before ZopeCorp and Baymountain decommission the machine and pull the plug on it. Fortunately, Thomas Wouters and the fine folks at XS4ALL have donated a machine, and your friendly neighborhood volunteer postmasters have been working round the clock (okay, in 3-minute chunks while we recompile Python cvs ) to bring the new machine online and migrate the existing services to it. Given our resources, we feel pretty good that the machine is ready to go, and we'll be taking advantage of the coming US holiday weekend to finish the migration. So please note that there will be planned interruptions of python.org's mail service this weekend. I hope that everything will be back up and running by the end of 05-Jul-2004 somewhere in the world. This outage will also affect the mailing lists in the libexpat.org, porkmasters,org, and usergroups.python.net domains. Also, please note that this specifically does /not/ affect the zope.org domain, since the divorce is final and they're now living on a new dedicated server. -Barry --=-XLFwPHDn7RSJ+iHdDW23 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iQCVAwUAQOVzzXEjvBPtnXfVAQLeagQAtkVCxM2ZsDhqyZKpK8YJbnuB2lhTtxq6 NBye6fUYsDb3NBmpB3ZrCJbHF5tSsmOX4qwEDq0bkI3OX5IdWId/NJFPDGuiijZr 0OIo8rVuhuapZIatDPDRr6+GtjgAfbqBuC12Fq3kRFiTaf3SR2e0YgfSBEUiPjLB wVD8kVNSyXc= =ztMK -----END PGP SIGNATURE----- --=-XLFwPHDn7RSJ+iHdDW23-- From brian@sweetapp.com Fri Jul 2 16:40:09 2004 From: brian@sweetapp.com (Brian Quinlan) Date: Fri, 02 Jul 2004 17:40:09 +0200 Subject: Vancouver Python/Zope Meeting on Tuesday Message-ID: This meeting: ============= Paul Prescod will lead a discussion about the Python Virtual Machine. How does the Python Virtual Machine work internally? What are bytecodes? How is code compiled to bytecodes? How are bytecodes interpreted? How are types implemented? What do classes look like inside the Python interpreter? Afterwards we'll retire to a nearby pub for the usual informal discussion of Paul's presentation and the upcoming Vancouver Python Workshop. Time: Tuesday, July 6 at 7:00pm Location: ActiveState (580 Granville St., Vancouver) The group: ========== The Vancouver Python and Zope User's Group is a group of Python enthusiasts who meet once a month to discuss various Python and Zope technologies and projects. For more information about the Vancouver Python and Zope User's Group, see: http://www.vanpyz.org/ For information about the upcoming Vancouver Python Workshop, see: http://www.vanpyz.org/conference/ Cheers, Brian From ajw140NO@SPAMyork.ac.uk Fri Jul 2 16:36:58 2004 From: ajw140NO@SPAMyork.ac.uk (Andrew Wilkinson) Date: Fri, 02 Jul 2004 16:36:58 +0100 Subject: ANN: PyLinda 0.3 Message-ID: PyLinda 0.3 By Andrew Wilkinson Introduction --------------- Linda is an widely studied distributed computing environment, centred around the notion of a tuple space. A tuple space is a bag (also called a multi-set) of tuples. A tuple is an ordered, typed chunk of data. Tuple spaces exist independently of processes in the system, and the data placed into a tuple space also exist independently. See "Generative communication in Linda" (1985) and "Multiple tuple spaces in Linda" both by David Gelernter for more information on Linda. PyLinda is a simple implementation of a linda system, however it also includes several of the more recently proposed extensions to Linda in the form of multiple tuple spaces, garbage collection, sane non-blocking primitives and bulk tuple operations. Full details can be found at the website http://www-users.cs.york.ac.uk/~aw/pylinda The package can be downloaded from http://www-users.cs.york.ac.uk/~aw/pylinda/linda-0.3.tar.gz Changes In This Version --------------- - Efficency Updates * Switched to using System V Shared Memory where available. * Switched to using Unix domain sockets where available. * Switched to using map instead of an explicit loop in several places. * Changed main message handler to a dictionary of functions instead of a big if/elif statement. From tolivier@cstone.net Fri Jul 2 19:13:08 2004 From: tolivier@cstone.net (Tom Olivier) Date: Fri, 2 Jul 2004 14:13:08 -0400 Subject: CRITTRZ 0.7.0 Available Message-ID: 7-2-2004 I am writing to announce the availability of CRITTRZ 0.7.0, the initial, test release a population simulation library. This software was released on 6-2-2004 under an MIT open-source license. CRITTRZ is designed for modeling of demographic, genetic and disease processes in animal populations subdivided by space and social groupings. The system should be adaptable to modeling populations of many large mammal species. CRITTRZ is written in Python and uses a strongly object-oriented architecture. It includes an interface to the Idrisi GIS. The initial release is intended for computers with the Microsoft Windows operating system. I aim to release a later version for the Linux operating system. You can view documentation for the system and download a zip file with program code, documentation and examples at www.greencreekparadigms.com/CRITTRZ.htm. Comments to me at tolivier@cstone.net are welcome. Cheers. - Tom Olivier Thomas Olivier, Ph.D. Green Creek Paradigms, LLC 4632 Green Creek Road Schuyler, VA 22969 USA tolivier@cstone.net From calfdog@yahoo.com Fri Jul 2 19:45:06 2004 From: calfdog@yahoo.com (calfdog@yahoo.com) Date: 2 Jul 2004 11:45:06 -0700 Subject: Python Automation Module for Internet Explorer 1.3 released Message-ID: What is P.A.M.I.E - http://pamie.sourceforge.net This tool was developed as an open source Python class (cPAMIE). Pamie allows you to control an instance of Internet Explorer and access it's methods attributes, events, properties though OLE automation . You can write simple or complex scripts which allows you to automate Internet Explorer. You can easily drive them using either MS Excel, MS Access, or Oracle. This tool was modeled after the Perl module by Henry Wasserman Sam.pm. How is I.E. automated?: By utilizing the following; Collections, Methods, Events and Properties exposed by the DHTML Object Model Who is this for? This "free" open source tool "Pamie" was developed to help quality assurance engineers, developers or any other technical professionals in their web testing efforts. USES: * Build verification testing for a web site * Simulating different users logging into a web * Simulating different users filling in and submitting an online enrollment. * An aide for developing other web testing tools. Example: Take Pamie for a test drive! Pamie is in the early stages but is still a professional quality tool that is quite useable and effective. Functions that will be available for latest version. Current Method list in CVS: GetNames - NEW! GetCookie - NEW! ClickButton ClickImage ClickLink ClickSubmitButton FireEvent GetCheckBox GetCheckBoxChecked GetForm ControlNames GetNames GetFormNames GetFrameNames GetListBox GetListBoxSelected GetRadioButton GetRadioButtonSet GetTextBox - new LocationName LocationURL Navigate SetCheckBox SetEventListBox SetListBox SetRadioButton SetTextBox UnSetCheckBox UnSetListBox __doc__ __init__ __module__ _wait_ innerHTML outerHTML pageText quit refresh Thank you Robert Marchetti From jmiller@stsci.edu Fri Jul 2 22:05:48 2004 From: jmiller@stsci.edu (Todd Miller) Date: 02 Jul 2004 17:05:48 -0400 Subject: ANN: numarray-1.0 released Message-ID: Release Notes for numarray-1.0 Numarray is an array processing package designed to efficiently manipulate large multi-dimensional arrays. Numarray is modeled after Numeric and features c-code generated from python template scripts, the capacity to operate directly on arrays in files, and improved type promotions. I. ENHANCEMENTS 1. User added ufuncs There's a setup.py file in numarray-1.0/Examples/ufunc which demonstrates how a numarray user can define their own universal functions of one or two parameters. Ever wanted to write your own bessel() function for use on arrays? Now you can. Your ufunc can use exactly the same machinery as add(). 2. Ports of Numeric functions A bunch of Numeric functions were ported to numarray in the new libnumeric module. To get these import from numarray.numeric. Most notable among these are put, putmask, take, argmin, and argmax. Also added were sort, argsort, concatenate, repeat and resize. These are independent ports/implementations in C done for the purpose of best Numeric compatibility and small array performance. The numarray versions, which handle additional cases, still exist and are the default in numarray proper. 3. Faster matrix multiply The setup for numarray's matrix multiply was moved into C-code. This makes it faster for small matrices. 4. The numarray "header PEP" A PEP has been started for the inclusion of numarray (and possibly Numeric) C headers into the Python core. The PEP will demonstrate how to provide optional support for arrays (the end-user may or may not have numarray installed and the extension will still work). It may also (eventually) demonstrate how to build extensions which support both numarray and Numeric. Thus, the PEP is seeking to make it possible to distribute extensions which will still compile when numarray (or either) is not present in a user's Python installation, which will work when numarry (or either) is not installed, and which will improve performance when either is installed. The PEP is now in numarray-1.0/Doc/header_pep.txt in docutils format. We want feedback and consensus before we submit to python-dev so please consider reading it and commenting. For the PEP, the C-API has been partitioned into two parts: a relatively simple Numeric compatible part and the numarray native part. This broke source and binary compatibility with numarray-0.9. See CAUTIONS below for more information. 5. Changes to the manual There are now brief sections on numarray.mlab and numarray.objects in the manual. The discussion of the C-API has been updated. II. CAUTIONS 1. The numarray-1.0 C-API is neither completely source level nor binary compatible with numarray-0.9. First, this means that some 3rd party extensions will no longer compile without errors. Second, this means that binary packages built against numarray-0.9 will fail, probably disastrously, using numarray-1.0. Don't install numarray-1.0 until you are ready to recompile or replace your extensions with numarray-1.0 binaries because 0.9 binaries will not work. In order to support the header PEP, the numarray C-API was partitioned into two parts: Numeric compatible and numarry extensions. You can use the Numeric compatible API (the PyArray_* functions) by including arrayobject.h and calling import_array() in your module init function. You can use the extended API (the NA_* functions) by including libnumarray.h and calling import_libnumarray() in your init function. Because of the partitioning, all numarray extensions must be recompiled to work with 1.0. Extensions using *both* APIs must include both files in order to compile, and must do both imports in order to run. Both APIs share a common PyArrayObject struct. 2. numarray extension writers should note that the documented use of PyArray_INCREF and PyArray_XDECREF (in numarray) was found to be incompatible with Numeric and these functions have therefore been removed from the supported API and will now result in errors. 3. The numarray.objects.ObjectArray parameter order was changed. 4. The undocumented API function PyArray_DescrFromTypeObj was removed from the Numeric compatible API because it is not provided by Numeric. III. BUGS FIXED / CLOSED See http://sourceforge.net/tracker/?atid=450446&group_id=1369&func=browse for more details. 979834 convolve2d parameter order issues 979775 ObjectArray parameter order 979712 No exception for invalid axis 979702 too many slices fails silently 979123 A[n:n] = x no longer works 979028 matrixmultiply precision 976951 Unpickled numarray types unsable? 977472 CharArray concatenate 970356 bug in accumulate contiguity status 969162 object array bug/ambiguity 963921 bitwise_not over Bool type fails 963706 _reduce_out: problem with otype 942804 numarray C-API include file 932438 suggest moving mlab up a level 932436 mlab docs missing 857628 numarray allclose returns int 839401 Argmax's behavior has changed for ties 817348 a+=1j # Not converted to complex 957089 PyArray_FromObject dim check broken 923046 numarray.objects incompatibility 897854 Type conflict when embedding on OS X 793421 PyArray_INCREF / PyArray_XDECREF deprecated 735479 Build failure on Cygwin 1.3.22 (very current install). 870660 Numarray: CFLAGS build problem 874198 numarray.random_array.random() broken? 874207 not-so random numbers in numarray.random_array 829662 Downcast from Float64 to UInt8 anomaly 867073 numarray diagonal bug? 806705 a tale of two rank-0's 863155 Zero size numarray breaks for loop 922157 argmax returns integer in some cases 934514 suggest nelements -> size 953294 choose bug 955314 strings.num2char bug? 955336 searchsorted has strange behaviour 955409 MaskedArray problems 953567 Add read-write requirement to NA_InputArray 952705 records striding for > 1D arrays 944690 many numarray array methods not documented 915015 numarray/Numeric incompatabilities 949358 UsesOpPriority unexpected behavior 944678 incorrect help for "size" func/method 888430 NA_NewArray() creates array with wrong endianess 922798 The document Announce.txt is out of date 947080 numarray.image.median bugs 922796 Manual has some dated MA info 931384 What does True mean in a mask? 931379 numeric.ma called MA in manual 933842 Bool arrays don't allow bool assignment 935588 problem parsing argument "nbyte" in callStrideConvCFunc() 936162 problem parsing "nbytes" argument in copyToString() 937680 Error in Lib/numerictypes.py ? 936539 array([cmplx_array, int_array]) fails 936541 a[...,1] += 0 crashes interpreter. 940826 Ufunct operator don't work 935882 take for character arrays? 933783 numarray, _ufuncmodule.c: problem setting buffersize 930014 fromstring typecode param still broken 929841 searchsorted type coercion 924841 numarray.objects rank-0 results 925253 numarray.objects __str__ and __repr__ 913782 Minor error in chapter 12: NUM_ or not? 889591 wrong header file for C extensions 925073 API manual comments 924854 take() errors 925754 arange() with large argument crashes interpreter 926246 ufunc reduction crash 902153 can't compile under RH9/gcc 3.2.2 916876 searchsorted/histogram broken in versions 0.8 and 0.9 920470 numarray arange() problem 915736 numarray-0.9: Doc/CHANGES not up to date WHERE ----------- Numarray-1.0 windows executable installers, source code, and manual is here: http://sourceforge.net/project/showfiles.php?group_id=1369 Numarray is hosted by Source Forge in the same project which hosts Numeric: http://sourceforge.net/projects/numpy/ The web page for Numarray information is at: http://stsdas.stsci.edu/numarray/index.html Trackers for Numarray Bugs, Feature Requests, Support, and Patches are at the Source Forge project for NumPy at: http://sourceforge.net/tracker/?group_id=1369 REQUIREMENTS ------------------------------ numarray-1.0 requires Python 2.2.2 or greater. AUTHORS, LICENSE ------------------------------ Numarray was written by Perry Greenfield, Rick White, Todd Miller, JC Hsu, Paul Barrett, Phil Hodge at the Space Telescope Science Institute. We'd like to acknowledge the assitance of Francesc Alted, Paul Dubois, Sebastian Haase, Tim Hochberg, Nadav Horesh, Edward C. Jones, Eric Jones, Jochen K"upper, Travis Oliphant, Pearu Peterson, Peter Verveer, Colin Williams, and everyone else who has contributed with comments, bug reports, or patches. Numarray is made available under a BSD-style License. See LICENSE.txt in the source distribution for details. -- Todd Miller jmiller@stsci.edu From greg@cosc.canterbury.ac.nz Sun Jul 4 02:44:28 2004 From: greg@cosc.canterbury.ac.nz (greg) Date: Sun, 04 Jul 2004 13:44:28 +1200 Subject: ANN: PyGUI 1.5.1 Message-ID: PyGUI 1.5.1 is now available: http://www.cosc.canterbury.ac.nz/~greg/python_gui/ Bug fixes: - Menu item groups did not work. - Mac: Labels were not updated properly on changing the text property. - Mac: Setup script failed when Pyrex was not available. What is PyGUI? -------------- PyGUI is an experimental highly-Pythonic cross-platform GUI API. Implementations are currently available for MacOSX and Gtk. For a full description of the project goals, see the PyGUI web page at the address above. From uuu-devel@unununium.org Sun Jul 4 19:57:18 2004 From: uuu-devel@unununium.org (Phil Frost) Date: Sun, 4 Jul 2004 14:57:18 -0400 Subject: Unununium OS 0.1-rc2 released Message-ID: Unununium is an OS in development written primarily in Python. Currently implemented features include a fully functional Python interpreter, floppy, ATA, and ext2 drivers written entirely in Python. For a discussion of motives behind the development and planned features, see . The most current release is available at . Further questions may be addressed to our development list, .

Unununium OS 0.1-rc2 - an operating system written in Python. (04-Jul-04)

From abulka@netspace.net.au Mon Jul 5 13:47:25 2004 From: abulka@netspace.net.au (Andy Bulka) Date: 5 Jul 2004 05:47:25 -0700 Subject: PyNSource 1.4a - UML reverse engineering and modelling tool for Python source code Message-ID: Announcing PyNSource 1.4a A UML reverse engineering and modelling tool for Python source code. http://www.atug.com/andypatterns/pynsource.htm PyNSource is a python code scanner and UML modelling tool that generates UML diagrams that you can layout, arrange and print out. A standalone exe release for windows users is available. PyNSource can also generate UML ASCII / text diagrams, which you can paste into your source code for documentation purposes, in conjunction with an ascii art editor (see references on web site). PyNSource can scan python source code and generate compilable Java or Delphi code, which can be subsequently imported into more sophisticated UML modelling tools. New in this release ------------------- Version 1.4a GUI changes: - Right Click on a node to delete it. - Run Layout anytime from menu. - Left click on background will deselect any selected shapes Parser changes: - Fixed indentation error causing more output than normal in text ouput - Module level functions not treated as classes any more - Smarter detection of composition relationships, as long as classname and variable name are the same (ignoring case) then PyNSource will detect e.g. class Cat: pass class A: def __init__(self, cat): self.cats.append(Cat()) # always has worked, composition detected. self.cats.append(cat) # new 1.4 feature, composition detected here too. Features -------- * Resilient: doesn't import the python files, thus will never get "stuck" when syntax is wrong. * Fast * Recognises inheritance and composition relationships * Detects the cardinality of associations e.g. one to one or 1..* etc * Optionally treat modules as classes - creating a pseudo class for each module - module variables and functions are treated as attributes and methods of a class * Has been developed using unit tests (supplied) so that you can trust it just that little bit more ;-) * Free http://www.atug.com/andypatterns/pynsource.htm From abulka@netspace.net.au Mon Jul 5 13:49:25 2004 From: abulka@netspace.net.au (Andy Bulka) Date: 5 Jul 2004 05:49:25 -0700 Subject: PyNSource 1.4a - UML reverse engineering and modelling tool for Python source code Message-ID: Announcing PyNSource 1.4a A UML reverse engineering and modelling tool for Python source code. http://www.atug.com/andypatterns/pynsource.htm PyNSource is a python code scanner and UML modelling tool that generates UML diagrams that you can layout, arrange and print out. A standalone exe release for windows users is available. PyNSource can also generate UML ASCII / text diagrams, which you can paste into your source code for documentation purposes, in conjunction with an ascii art editor (see references on web site). PyNSource can scan python source code and generate compilable Java or Delphi code, which can be subsequently imported into more sophisticated UML modelling tools. New in this release ------------------- Version 1.4a GUI changes: - Right Click on a node to delete it. - Run Layout anytime from menu. - Left click on background will deselect any selected shapes Parser changes: - Fixed indentation error causing more output than normal in text ouput - Module level functions not treated as classes any more - Smarter detection of composition relationships, as long as classname and variable name are the same (ignoring case) then PyNSource will detect e.g. class Cat: pass class A: def __init__(self, cat): self.cats.append(Cat()) # always has worked, composition detected. self.cats.append(cat) # new 1.4 feature, composition detected here too. Features -------- * Resilient: doesn't import the python files, thus will never get "stuck" when syntax is wrong. * Fast * Recognises inheritance and composition relationships * Detects the cardinality of associations e.g. one to one or 1..* etc * Optionally treat modules as classes - creating a pseudo class for each module - module variables and functions are treated as attributes and methods of a class * Has been developed using unit tests (supplied) so that you can trust it just that little bit more ;-) * Free http://www.atug.com/andypatterns/pynsource.htm From barry at python.org Tue Jul 6 06:23:11 2004 From: barry at python.org (Barry Warsaw) Date: Tue Jul 6 06:24:19 2004 Subject: The new mail system is up Message-ID: <1089087791.7234.64.camel@localhost> Your friendly neighborhood volunteer postmasters have completed the migration of the python.org mail system to the new machine donated by XS4ALL. We'll be watching and tweaking the system over the next few days, but so far, everything looks pretty good. Of course, if you notice any problems, contact us at postmaster@python.org. Huge thanks go to Thomas Wouters, Brad Knowles, Neil Schemenauer, and Skip Montanaro for staying up late with me tonight. :) -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 307 bytes Desc: This is a digitally signed message part Url : http://mail.python.org/pipermail/python-announce-list/attachments/20040706/13f76dbf/attachment.pgp From aahz at pythoncraft.com Wed Jul 7 15:38:51 2004 From: aahz at pythoncraft.com (Aahz) Date: Thu Jul 8 00:14:45 2004 Subject: REMINDER: BayPIGgies: July 8, 7:30pm Message-ID: <20040707133851.GA15231@panix.com> The next meeting of BayPIGgies will be Thurs July 8 at 7:30pm. It will feature Roger Binns talking about BitPim, a program that manipulates data on cell phones. http://bitpim.sf.net/ BayPIGgies meetings are in Stanford, California. For more information and directions, see http://www.baypiggies.net/ Before the meeting, some people meet at 6pm for dinner at Jing Jing in downtown Palo Alto. Ducky Sherwood is handling that; please send RSVPs to ducky@osafoundation.org Discussion of dinner plans is handled on the BayPIGgies mailing list. NOTE: Please RSVP by 3pm 7/8 if you want to attend the dinner. Jing Jing 443 Emerson St. (half block north of University) Palo Alto 650-328-6885 Advance notice: The August 12 meeting agenda has not been set. Please send e-mail to baypiggies@baypiggies.net if you want to make a presentation. -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ "Typing is cheap. Thinking is expensive." --Roy Smith, c.l.py From amk at amk.ca Tue Jul 6 15:07:47 2004 From: amk at amk.ca (A.M. Kuchling) Date: Thu Jul 8 12:26:51 2004 Subject: Python Bug Day this Saturday Message-ID: <20040706130747.GA32569@rogue.amk.ca> The second Python Bug Day is coming soon: Saturday, July 10, 2004. What's a bug day? ================= Participants meet in an IRC channel and collaboratively go through the Python bug database, fixing and closing bugs as they go. It's a good way to contribute to Python and learn about the source code, helps the developers by reducing the backlog of bugs, and makes Python 2.4 a better release. When? ===== This Saturday, July 10, 2004, from 9AM to 9PM EDT (1PM to 1AM GMT). Where? ====== The #python-dev channel on irc.freenode.net. More information ================ For instructions and more information, see http://www.python.org/cgi-bin/moinmoin/PythonBugDay --amk From alberanid at libero.it Tue Jul 6 17:07:34 2004 From: alberanid at libero.it (Davide Alberani) Date: Thu Jul 8 12:26:51 2004 Subject: IMDbPY 1.3 released Message-ID: <2veecc.4j5.ln@snoopy.mio> IMDbPY 1.3 is available here: http://imdbpy.sourceforge.net/ IMDbPY is a Python package useful to retrieve and manage the data of the IMDb movie database. In this release, minor changes were introduced to stay up-to-date with the IMDb's web site. The test suite was moved outside the tgz package. IMDbPY aims to provide an easy way to access the IMDb's database using a Python script. Platform-independent and written in pure Python, it's theoretically independent from the data source (since IMDb provides two or three different interfaces to their database). IMDbPY is mainly intended for programmers and developers who want to build their Python programs using the IMDbPY package, but some example scripts - useful for simple users - are included. So far the only data source supported is the IMDb web server. -- Davide Alberani [PGP KeyID: 0x465BFD47] http://erlug.linux.it/~da/ From bac at OCF.Berkeley.EDU Tue Jul 6 18:46:46 2004 From: bac at OCF.Berkeley.EDU (Brett Cannon) Date: Thu Jul 8 12:26:52 2004 Subject: python-dev Summary for 2004-06-16 through 2004-06-30 Message-ID: <40EAD776.6060802@ocf.berkeley.edu> Initial attempt bounced; if this actually ends up as a duplicate, sorry. ---------------- python-dev Summary for 2004-06-16 through 2004-06-30 ++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from June 16, 2004 through June 30, 2004. It is intended to inform the wider Python community of on-going developments on the list. To comment on anything mentioned here, just post to `comp.lang.python`_ (or email python-list@python.org which is a gateway to the newsgroup) 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 forty-third summary written by Brett Cannon (and that count is correct; 21.5 months worth of reading and writing). To contact me, please send email to brett at python.org ; I do not have the time to keep up on comp.lang.python and thus do not always catch follow-ups posted there. 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; it's simple and is accepted for `PEP markup`_ and gives some perks for the HTML output. 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`_. .. _PEP Markup: 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 looking up any documentation on new code; otherwise use the current documentation as found at http://docs.python.org/ . PEPs (Python Enhancement Proposals) are located at http://www.python.org/peps/ . To view files in the Python CVS online, go to http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/ . Reported bugs and suggested patches can be found at the SourceForge_ project page. The `Python Software Foundation`_ is the non-profit organization that holds the intellectual property for Python. It also tries to forward the development and use of Python. But the PSF_ cannot do this without donations. You can make a donation at http://python.org/psf/donations.html . Every penny helps so even a small donation (you can donate through PayPal or by check) helps. .. _python-dev: http://www.python.org/dev/ .. _SourceForge: http://sourceforge.net/tracker/?group_id=5470 .. _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 .. _PSF: .. _Python Software Foundation: http://python.org/psf/ .. contents:: .. _last summary: http://www.python.org/dev/summary/2004-06-16_2004-06-30.html .. _original text file: http://www.python.org/dev/summary/2004-06-16_2004-06-30.ht Summary Announcements ===================== The trouble plaguing mail.python.org mid-month has been cleared up. It had led to some rather delayed emails so if you sent one in and it was ignored for no good reason you might want to consider bringing the topic back up. In the little comment made by the summary count last month, I questioned whether that count was correct. Turns out it was off by one; this is the true forty-third semi-monthly summary by me (month-long summaries I count as two summaries; more of a count of the number of semi-months I have been doing this). So counting the two week span that I took off when Raymond Hettinger summarized for a week way back in October 2002 (still waiting for the second week, Raymond =) I have been doing this for 22 months straight. And yet after all of that email I still have my vision intact. Amazing. A reader suggested that PEP mentions also include the the title of the PEP. Now normally I purposefully leave it out. Not only is it easier for me to not have to look up the title, but I always hope it might help spurn people on to read the PEP instead of going by my summary of what it entails. Does that even work? If you would rather have me state the title, send me an email. Silence will be taken to mean that you are fine with the way I do it now. Otherwise I need to have a certain number of people (have a number in my head between 1 and 100 =) tell me that they would rather have me institute this change. Summaries ========= --------------------------------------------- Decimal type still chugging along --------------------------------------------- Facundo Batista updated `PEP 327`_ with what are close to the last issues for the PEP. There has also been some recent activity in the sandbox on the package. It could still make it into 2.4 ... And it has! As I wrote this Decimal.py graduated kindergarten, left the sandbox, and is now out on the playground with the rest of Lib. Play nice. .. _PEP 327: http://www.python.org/peps/pep-0327.html Contributing threads: - `PEP 327 (Decimal data type) updated and status `__ ------------------------------------------------- CVS docs, now in handy tarball form ------------------------------------------------- Fred Drake has tweaked the script that puts up new versions of the CVS docs to also upload a tarball of the HTML. You can find that and links to the other in-development documentation at http://www.python.org/dev/doc/ . Contributing threads: - `Downloadable HTML from the trunk `__ --------------------------------------------- Proposed additions to heapq API --------------------------------------------- Raymond Hettinger proposed adding two new functions to the heapq API. heappushpop() would take an item, push it on to the heap, and then pop off the smallest value. heapiter() would return a destructive iterator. The actual implementation of heappushpop() got the most discussion. No final decision has been made, so if either function sounds good to you then do speak up. Contributing threads: - `heapq API `__ --------------------------------------- Consolidation of CJK codecs --------------------------------------- Hye-Shik Chang consolidated the various CJK codecs into various files and managed to save some space in terms of the files themselves. As M-A Lemburg pointed out, though, there was no need to in terms of loading size since most linkers mmap only what is needed to run. Contributing threads: - `Planned updates for cjkcodecs before 2.4a1 `__ ------------------------------------------------ Function decorators in 2.4 ... maybe ------------------------------------------------ The topic of whether function decorators would go into 2.4, and if so with what syntax, continued to be debated from the `last summary`_. Beyond reference implementations (which include an implementation not requiring new syntax), nothing really changed. Overall people agreed they would like to see it in 2.4 using whatever syntax Guido chooses (and he has three in mind, so no more suggestions!), but if he felt the need to wait then functionality would be held off for 2.5 . Contributing threads: - `functions decorators in 2.4? `__ - `decorators and 2.4 `__ ------------------------------------------------------------------------- Making ``''.join(list_of_strs)`` an inconsequential idiom ------------------------------------------------------------------------- As most people know, concatenating strings in a 'for' loop is a bad idea; the idiom you are supposed to use is to store the strings you want to concatenate in a list and the pass it to ``''.join(list_of_strs)``. This is because string addition requires allocating memory for the size of the concatenation and then copying from both strings into the new memory. The constant new memory allocation is costly when you have a loop that goes for more than a few iterations. Raymond Hettinger suggested altering the str object to have a pointer that would point to any strings that were meant to be treated as concatenated to the current string. The problem with this is that it grew the str object the size of a pointer and that is costly for a object as common as string. Armin Rigo gave this challenge a shot and ended up with a bunch of code that special-cases the BINARY_ADD opcode. Neither solution as been accepted at this moment. Contributing threads: - `Wild Idea for the Year `__ - `Building strings with += `__ ---------------------------------------------------------------------------------------- Possible exposure of universal newlines outside of the file object ---------------------------------------------------------------------------------------- Scott David Daniels suggested a new itertools function that would work like universal newlines but for strings or files already opened without universal newlines turned on. People were receptive to the idea, just not for putting it into itertools. Suggestions ranged from exposing the functionality as a static method of the file type to sticking it into 'string'. No conclusion of where to put it was reached. Contributing threads: - `Possible addition to itertools `__ ---------------------------------- NOP does exist I tell you! ---------------------------------- Raymond Hettinger asked if anyone objected to adding a no-op opcode (aptly named NOP). People said nope (see? "NOP", "nope", sound the same? Forget it). So it's in. Contributing threads: - `NOP `__ --------------------------------------------------------------- Yes, the Windows binary for 2.4 will use VC 7.1 --------------------------------------------------------------- Yes, Python 2.4 will use VC 7.1 . No, we are not going to have a VC 6 binary (you can build it if you want, though). No, distributing the needed DLLs with the installer does not go against the GPL to the best of our knowledge (even though the codebase is not GPL but more BSD and no one from the FSF has told it including the DLLs is wrong). Maybe, we will use Martin v. Loewis' MSI installer, maybe not (still being debated as this was being written). Contributing threads: - `VC 7.1 maintenance? `__ ------------------------------------- Possible itertools additions ------------------------------------- Raymond Hettinger suggested two itertools additions; count_elements and pairswap. The former counts the number of times an item appears in the passed-in iterable and returns pairs of the count and the item. The latter takes an iterable that returns pairs and returns an iterable that returns those pairs swapped. In the end people didn't see the need for pairswap. People did want count_elements, but not as an iterator but as something that returned a dictionary. It was suggested as both a class method of dict and as a new bucket type that could possibly go into the 'collections' module. No final decisions yet, though. Contributing threads: - `Candidate Itertools `__ --------------------------------------------------------- Gettin' PEP 292 ("Simpler String Substitutions") into 2.4 --------------------------------------------------------- Barry Warsaw brought up the point that `PEP 292`_ was slated to go into 2.4 (it's currently in the sandbox). The two biggest questions was the names of the new functions and where to stick them. The name issue was not quite as bad once Barry explained the reasoning behind the existing names. Where to put the code, though, was not so easily dealt with. The original idea (which Barry and I came up with, so I am biased here) was to turn the string module into a package with the new code going there. Barry also pointed out that the code in 'string' that is deprecated and will eventually go away can be moved into an individual module that can just simply be deleted from the package later and then dismissed with the removal of a single ``import *`` line in __init__.py for the package. Not everyone saw the utopia Barry and I were trying to build. People suggested just not bothering with turning 'string' into a package. Still others suggested a new package altogether; 'stringlib' and 'text' were suggested names. It's still not resolved. .. _PEP 292: http://www.python.org/peps/pep-0292.html Contributing threads: - `PEP 292 for Python 2.4 `__ ------------------------------------------------------------------------- Having u.encode() return something other than strings ------------------------------------------------------------------------- Currently unicode.encode() returns only strings. M-A Lemburg wanted to lift this restriction. Guido pointed out that this could possibly cause problems for type inferencing since the return type would vary based on an argument (which made me happy since my masters thesis ties into this stuff). A compromise was reached where the method will only return 8-bit or Unicode strings; basically only subtypes of basestring. Contributing threads: - `Allowing u.encode() to return non-strings `__ -------------------------------------------------- Comparing floats and longs is a pain -------------------------------------------------- Basically this all boiled down to this (quoted from Michael Chermside): "when comparing a long with a float where the exponent is larger than the precision, that the float should be treated as if it were EXACTLY EQUAL TO *2^, instead of trying to treat it as some sort of a range." Guido said he would like to see this in 2.4 if someone would write up the code and commit it. Contributing threads: - `Comparing heterogeneous types `__ ---------------------------------------------------------- German and Turkish docstrings from pydoc ---------------------------------------------------------- Martin v. Loewis is currently trying to figure out where to put partial translations of docstrings in the stdlib for pydoc to use as appropriate. Contributing threads: - `Including translated doc strings in 2.4 `__ ------------------------------------------------------------------------------------------- What to do when 'raise' is called after the last exception was caught ------------------------------------------------------------------------------------------- What should happen if you call 'raise' when you already caught the last exception that was raised? People debated what the official docs said. Seemed to coalesce to be what ever the last exception was; caught or not. This ties into being what exception was currently stored. Contributing threads: - `Re-raise in absence of an "active" exception `__ --------------------------------------------------------------------- Can you help with cleaning up the Demo directory? --------------------------------------------------------------------- The Demo directory is in need of some TLC. A bunch of modules in there are out of date and could use an update to current Python abilities. If you care to help by submitting patches to update the code that would be great. There is a large swath of code in there varying from extremely simple to involved so if the mood ever strikes you there will be something for everyone. And if you attend the next Python Bug Day you can also work on it then. Contributing threads: - `What can we do about dealing with the Demo directory? `__ -------------------------------------------------------------------- No more expected test failures on Windows for 2.4 -------------------------------------------------------------------- The bsddb tests are now expected to pass on Windows. What this means is that failures are no longer the norm on Windows for the Python regression testing suite. Contributing threads: - `Joy in Berkeley Windowsland `__ ------------------------------------------------------ Getting accessible local dicts per thread ------------------------------------------------------ Jim Fulton wanted to expose the pre-thread local dict . He has an implementation going that he is going to play with and work the kinks out of. After that the code will most likely be committed. Contributing threads: - `Proposal: thread.get_dict `__ -------------------------------- Where to stick SHA-256 -------------------------------- Someone contributed a patch for adding SHA-256 support. A discussion built up over where to put it, if at all. It's still going on at this moment. Most people seem to agree that if it is included, it should either just be another function in the sha module or that sha.sha() should accept an optional argument specifying how many bits to use for the hash. Contributing threads: - `SHA-256 module `__ ------------------------------------------ Making weakrefs subclassable ------------------------------------------ Fred Drake has a patch to add the ability to subclass weakrefs. He wasn't sure if there would be a performance penalty though. But Tim Peters stepped up and said there wouldn't be. So it looks like it should go in shortly. Contributing threads: - `making weakref.ref objects subclassable `__ From brian at sweetapp.com Wed Jul 7 17:16:08 2004 From: brian at sweetapp.com (Brian Quinlan) Date: Thu Jul 8 12:26:52 2004 Subject: ANN: Vancouver Python Workshop - Jon Udell new keynote speaker In-Reply-To: <40E2E20D.2080001@sweetapp.com> References: <40CF1521.5040901@sweetapp.com> <40D5D59A.4060004@sweetapp.com> <40D86489.5060604@sweetapp.com> <40DC539D.2060206@sweetapp.com> <40E024D5.9090906@sweetapp.com> <40E2E20D.2080001@sweetapp.com> Message-ID: <40EC13B8.4010509@sweetapp.com> What's New? =========== Due to a cancellation, we are pleased to announce that John Udell will be our second keynote speaker. Jon Udell is an author, information architect, software developer and groupware evangelist. He has been an independent consultant, was BYTE Magazine's editor-at-large, executive editor and Web maven, and long ago developed business information products for Lotus. In June 2002 he joined InfoWorld as lead analyst. He also writes a monthly column for the O'Reilly Network. Due to this change of plans, early bird conference registration has been extended until Friday (July 9th). Registration is CDN$100 with significant discounts for students. Late registration will be available until the conference starts, but at a greater cost. To register, see: http://www.vanpyz.org/conference/registration For general conference information, see: http://www.vanpyz.org/conference About the Vancouver Python Workshop =================================== The conference will begin on July 31st with a keynote address by Guido van Rossum (the creator of Python) and Jon Udell (InfoWorld lead analyst). Further talks (and tutorials for beginners) will take place on August 1st and 2nd. The conference will be roughly divided into three tracks: o General Python Topics o Web application development with Python (esp. Zope and Plone) o Python for beginners More information see: http://www.vanpyz.org/conference/ or contact Brian Quinlan at: brian@sweetapp.com Vancouver ========= In addition to the opportunity to learn and socialize with fellow Pythonistas, the Vancouver Python Workshop also gives visitors the opportunity to visit one of the most extraordinary cities in the world (1). For more information about traveling to Vancouver, see: http://www.vanpyz.org/conference/travel.html http://www.tourismvancouver.com Important dates =============== Attendee registration: until July 9th Late registration: from July 10th Keynotes: July 31st Conference and tutorial dates: August 1st and 2nd (1) http://news.bbc.co.uk/2/hi/business/2299119.stm http://www.mercerhr.com/pressrelease/details.jhtml?idContent=1128760 Cheers, Brian From anthony at computronix.com Wed Jul 7 18:14:02 2004 From: anthony at computronix.com (Anthony Tuininga) Date: Thu Jul 8 12:26:53 2004 Subject: cx_Freeze 3.0 beta2 Message-ID: <40EC214A.7060305@computronix.com> What is cx_Freeze? cx_Freeze is a set of utilities for freezing Python scripts into executables using many of the techniques found in Thomas Heller's py2exe, Gordon McMillan's Installer and the Freeze utility that ships with Python itself. 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) Fix issues with locating the initscripts and bases relative to the directory in which the executable was started. 2) Added new base executable ConsoleKeepPath which is used when an existing Python installation is required (such as for FreezePython itself). 3) Forced the existence of a Python installation to be ignored when using the standard Console base executable. 4) Remove the existing file when copying dependent files; otherwise, an error is raised when attempting to overwrite read-only files. 5) Added option -O (or -OO) to FreezePython to set the optimization used when generating bytecode. -- 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 csad7 at t-online.de Wed Jul 7 20:14:11 2004 From: csad7 at t-online.de (c.) Date: Thu Jul 8 12:30:41 2004 Subject: ANN: pyXSLdoc 0.65 Message-ID: <40EC3D73.70603@cdot.de> what is it ---------- An application to produce documentation for XSLT files in XHTML format, similar to what javadoc does for Java files. changes since the last release ------------------------------ * shortcomments on overview tables are shown now (in ReST version only) * new options --windowtitle will be shown as Main Headline on overview page if no doctitle given or found --doctitle doctitle.txt in ReST format will be shown at the top of overview page --encoding specify the encoding of additional ReST documentation files like help.txt overview.txt or directory.txt. * improved --verbose, -v output prints messages about used doctitle, overview and helpfile ReST files now * bugfixes and Javadoc comment style improvements suggested by Doron Enav see http://cthedot.de/pyxsldoc/README.txt for a complete list of changes license ------- pyXSLdoc is published under the LGPL. download -------- download pyXSLdoc v0.65 - 040707 from http://cthedot.de/pyxsldoc/ pyXSLdoc needs * Python 2.3 (tested with Python 2.3.4 on Windows XP only) * Pyana (tested with Pyana 0.9.1 only) * Docutils (tested with Docutils 0.3 only) usage ----- Copy the XSLT files to document in a directory below pyXSLdoc (you could also give the complete path to your files but that would end up like that in the documentation). Then start the documentation process with >python xsldoc.py DIRNAMES FILENAMES [options] DIRNAMES directories with XSLT files to document,e.g. dir1 dir2 All directories and XSLT files below a given directory will be processed, so you can just use your XSLT package main directory name or use option -s. FILENAMES single XSLT files to document, e.g. file1.xsl path/file2.xsl options ~~~~~~~ -sSOURCEPATH, --sourcepath=SOURCEPATH sourcepath to XSLTs, all XSLT files under this path will be documented and ``$SOURCEPATH/doctitle.txt`` and ``$SOURCEPATH/overview.txt`` will be used for the overview. Alternatively you might also simply list all dirs and XSLT files to document. -j, --javadoc, --htmldocs process comments in Javadoc style (XHTML and @tags). Default is reStructuredText (ReST). -dDOCPATH, --docpath=DOCPATH documentation target directory. Default is ``./_xsldoc`` --windowtitle=WINDOWTITLE browser window title for the documentation. Text only, no markup. --doctitle=DOCTITLE show the contents of this ReST .txt file at the top of the overview page. Default is ``$SOURCEPATH/doctitle.txt``. If ommitted or no file is found, WINDOWTITLETEXT is used. -oOVERVIEW, --overview=OVERVIEW show the contents of this ReST .txt file on the overview page. Default is ``$SOURCEPATH/overview.txt`` --helpfile=HELPFILE show the information of this ReST .txt file on the help page. Default is ``./HELP.txt``. --encoding=ENCODING encoding of additional documenting ReST files (HELP.txt, doctitle.txt, overview.txt, directory.txt etc.). Default is utf-8. (Encoding of XSLT files and comments in these is of course read from the XSLT file itself.) -r, --removedocs remove all comments from given XSLTs and save results in COMMENTSTRIPPEDPATH. Present files will be OVERWRITTEN! -cCOMMENTSTRIPPEDPATH, --commentstrippedpath=COMMENTSTRIPPEDPATH path where XSLTs will be saved after removing of all docs. Only used when option ``--removedocs`` is given. Default directory is ``./_optimized``. -v, --verbose show more detailed information while generating the documentation thanks for the interest. any comment is appreciated christof hoeke http://cthedot.de

pyXSLdoc 0.65 - generate XSLT documentation (7-Jul-04) From follower at gmail.com Thu Jul 8 00:47:28 2004 From: follower at gmail.com (Follower) Date: Thu Jul 8 12:31:05 2004 Subject: [ANN] libgmail 0.0.3 -- Gmail access via Python Message-ID: <3c18c08f.0407071447.4271559f@posting.google.com> libgmail -- Python binding for Google's Gmail service The `libgmail` project is a pure Python binding to provide access to Google's Gmail web-mail service. The library currently ships with one demonstration utility to archive messages from a Gmail account into mbox files, suitable for importing into a local email client. License: GPL 2.0 Major changes since 0.0.1 & 0.0.2: * Archive Gmail to mbox utility. * No longer requires external ClientCookie package. * Uses constants extracted directly from Gmail Javascript, and includes utility to repeat the process if required. * Code & API refactoring. * Lazy retrieval and caching of thread and message data. * Sourceforge project & home page.

libgmail 0.0.3 - The `libgmail` project is a pure Python binding to provide access to Google's Gmail web-mail service. (08-Jul-04)

From gansevle at mamba.cs.utwente.nl Thu Jul 8 11:22:49 2004 From: gansevle at mamba.cs.utwente.nl (Fred Gansevles) Date: Thu Jul 8 12:31:21 2004 Subject: ANN: wreg-1.2.1 Message-ID: <20040708092249.4A50C50D6F@mamba.cs.utwente.nl> Straihghtforward Windows Registry access -- wreg Version 1.2.1 What is it? =========== wreg is a module implementing functions to access and manipulate the Windows Registry. The main goal is to simplify both the substring notation for registry keys an the access to registry data. What's new in version 1.2.1? ============================ * Requires Python 2.2 and up * Automatically enables security tokens if the user may Save, Load and UnLoad a registry key and the platform supports it (i.e. needs win32all). If the user has no rights or the platform doesn't support changing the rights, then SaveKey, LoadKey and UnLoad key always return None. * Added support for loading from, and saving to a regedit-style '.reg' file (Import and Export methods). * Added finding and copying Keys (Find and Add methods) * Usable on non-windows platforms with a pseudo-registry hive (RegObject) so you can test and/or manipulate '.reg' files (i.e. on Linux), before applying them on a windows platform. * Predefined toplevel keys kan directly be used in both the long form and the short form (i.e.: HKEY_LOCAl_MACHINE and HKLM). Where can I get it? =================== wreg is located at http://www.ewi.utwente.nl/~gansevle/python/wreg-1.2.1.zip Have Fun! ____________________________________________________________________________ Fred Gansevles Phone: +31 53 489 4613 Org.: Twente University, Fac. of EWI, Box 217, 7500 AE Enschede, Netherlands "Linux is like a wigwam, No windows, no gates and an apache inside" From mark at prothon.org Thu Jul 8 01:37:20 2004 From: mark at prothon.org (Mark Hahn) Date: Thu Jul 8 12:31:38 2004 Subject: Prothon 0.1.2 is getting close to alpha Message-ID: <005301c4647b$5eff4840$0d01a8c0@MarkVaio> Prothon is pleased to announce another major release of the language, version 0.1.2, build 710 at http://prothon.org. This release adds many new features and demonstrates the level of maturity that Prothon has reached. The next release after this one in approximately a month will be the first release to incorporate the final set of frozen Prothon 1.0 language features and will be the Alpha release. You can see the set of features still under discussion for 1.0 at the new Prothon WIKI at: http://prothon.org/wiki. This list is not only long but the changes are mostly major features. Changes in version 0.1.2.... - print is now a function, not a keyword - function-as-command feature allows print to be used without parens - Added prop keyword and properties feature with wildcards - Changed del_ to final_ so properties could use get_, set_, & del_ - a += b type assignments now always do a = a + b - New in-place modify operators a +! b, a -! b, a *! b, etc. - Formal parameter default values now evaluated at call time - String now stored with native 24-bit ordinal values - Split String type into seperate String and Bytes (binary) types - Split File into File and TextFile - Replaced String % operator with String.fmt() - Added cmp_ and eq_? for strings of length 1 and Ints - Added object-oriented Directory object and methods - Added TempDir and TempFile (deleted at shutdown) - Added basic DateTime object - Added WeakRef object with callback feature on obj modification - Added Slice object - getItem_, setItem_, and delItem_ now allow any object indexing - Finalization now called on shutdown - Added built-in range() generator (not list function) - Added List(iter_) constructor - Octal constant format changed from 0377 to 0o377 - Octal esc sequence changed from \0377 to \o377 - except keyword no longer allowed alone, must use "except Exception" - except syntax changed from "except exc, var" to "except exc as var" - Function formal params now introspectable via simple attribute - *args param local variable in func is now a tuple, not a list - Added immutable check to dictionary function key parameter - Added Dict.len_ and Dict.bool_? - Moved File from extension module to built-in - Changed File.stdxxx to sys.stdIn, sys.stdOut, and sys.stdErr - changed Len, Cmp, len, cmp, chr, ord to len, cmp, len_, cmp_, chr_, ord_ - changed Sys to sys, changed sys.ps1, sys.ps2 to sys.cons.ps1, sys.cons.ps2 - Changed SQLite to sqlite, OS to os, Re to re - Change symbol prefix from backtick (`var) to dollar-sign ($var) - Changed console prompt from >>> to O>> - Added many new *.pr test files - Fixed raise keyword so second arg is doc_ attribute of first - Fixed crash on printing recursive containers, now prints ... - Fixed assignment from sequences to arg lists and for statements - Fixed import in console - Fixed bug in Func constructor - Fixed bug in string.rstrip, string.strip, and string.find Prothon is an interpreted dynamic language that takes much from Python but is not compatible with Python as it uses the simpler prototypes instead of classes. Prothon is an industrial strength language that uses native OS threads and 64-bit architecture. For a description of Prothon see the tutorial at http://prothon.org/wiki?pagename=TutorialHomePage. Mark Hahn email: mark at prothon.org From middleware04 at eecg.toronto.edu Wed Jul 7 19:18:58 2004 From: middleware04 at eecg.toronto.edu (Middleware 04) Date: Thu Jul 8 12:31:51 2004 Subject: Middleware'04 Final Call for Workshops and Posters Message-ID: ACM/IFIP/USENIX Middleware 2004 Workshops Call For Workshop Papers and Posters http://www.eecg.toronto.edu/middleware2004/ws.htm Middleware'2004 will host three exciting workshops and a long-waited Doctoral Symposium. Workshop papers will be published in the Middleware'2004 Companion Proceedings and in the ACM Digital library. Please visit the workshop pages for specific submission details. * 3rd Workshop on Adaptive and Reflective Middleware * 2nd Workshop on Middleware for Grid Computing * 2nd Workshop on Middleware for Pervasive and Ad-Hoc Computing * 1st International Middleware Doctoral Symposium To visit the pages of each workshop, follow the links in http://www.eecg.toronto.edu/middleware2004/ws.htm Important Dates: Workshop paper submissions: July 10th, 2004 Notification of acceptance: August 10th, 2004 Camera-ready papers: September 1st, 2004 Workshops: October 18th or 19th, 2004 ****************************************************************************** ACM/IFIP/USENIX Middleware 2004 Workshops Call For Posters Posters are meant for publicizing current research initiatives as well as interesting new systems implemented using middleware technology. Reports of preliminary experience from middleware use cases are solicited. A 500-word summary of the poster's contents should be submitted by July 10th, 2004. Along with the notification of acceptance, authors will receive formatting instructions for the posters to be presented at the conference. Poster summaries will be published as part of the workshop proceedings. Note that the poster summaries will not be published within the conference proceedings. Submissions should be in PDF or PS format and should be sent directly by e-mail to the Posters Chair at delara@cs.toronto.edu, with the following subject line: "Middleware 2004 Poster Submission". Important Dates: Poster submissions: July 10th, 2004 Notification of acceptance: August 10th, 2004 For additional information contact: Eyal de Lara Middleware2004 Posters Chair Department of Computer Science University of Toronto Tel: +1-416-946-8656; Fax: +1-416-978-4765 delara@cs.toronto.edu From middleware04 at eecg.toronto.edu Thu Jul 8 01:24:32 2004 From: middleware04 at eecg.toronto.edu (Middleware 04) Date: Thu Jul 8 12:31:52 2004 Subject: MGC2004 DEADLINE EXTENSION - 2nd Workshop on Middleware for Grid Computing Message-ID: MGC2004 - 2nd International Workshop on Middleware for Grid Computing in conjunction with the 5th International Middleware Conference 2004 Toronto, Ontario, Canada - October 18th, 2004 http://mgc2004.lncc.br Announcements: ************* ************* Submission deadline has been extended to July 18th. ********** ************* No further extensions will be given. ********** Given the submission extension, notification of acceptance will be delayed until August 14th. The deadline for the camera-ready paper version has not changed and is a hard dealine !! To reduce the effort necessary for preparation of the camera-ready version, authors are advised to submit their papers already in ACM format. History: The first edition of this workshop (MGC2003) was held on June 17th 2003, in conjunction with the Middleware Conference, in Rio de Janeiro, Brazil. MGC2003 saw a good combination of the many different flavors in Middleware for Grid Computing, with 16 technical presentations and discussions on several stimulating topics including, among the others, Classic Grids, object oriented technologies, Service- based Grids, Open grid Service Architecture, Agent Grid, Interactive Grid, Grid Economy / Scheduling, and Portlets. After the event, extended and thoroughly revised versions of the papers were invited to a Special Issue of Concurrency and Computation Practice and Experience Journal - Vol.16 N.5 2004. The first workshop generated substantial interest in the community and we hope to build on this tradition this year. Far from exhausting the topics of interest, MGC2003 paved the way for a second edition of the workshop, that will continue the most interesting and stimulating topics emerged last year, and also include some novel issues. Description: Much of the focus of Grid until recently has been within research organizations. Currently the involvement of commercial organization has increased tremendously. That leads to a greater focus on integration with commercial computing models and more work on the security and resource management models required for automated and secure access negotiation for remote resources. In order to control such a broad base of resources, Grid Computing has a middleware layer which controls the distributed execution of applications. In this Workshop we would encourage researchers from the various GRID middleware communities to submit and present original work for publication. Overall topics of interest include but are not limited to: Classic Grid Middleware Object Oriented technologies or Component Middleware WSRF/OGSA/Web services Grid Middleware Architectures Grid Services Grid Middleware Security Resource Management and Scheduling Strategies and protocols for obtaining QoS Semantic Grid Middleware Managing Information in Grid Middleware Grid Object Metadata and Schemas Programming Models, Tools, and Environments Performance Evaluation and Modeling Evolution of and experiences with Grid systems Wireless Grids Data Grid Middleware Dependability and Fault Tolerance in Grids Virtualization in Grids Paper Submission: The Workshop on Middleware for Grid Computing invites authors to submit original and unpublished work. Papers should not exceed 4-6 single-spaced pages of text using 10 point size type on A4 paper. Authors should submit a PostScript (level 2) or PDF file that will print on a PostScript printer. Submission implies the willingness of at least one of the authors to register and present the paper. All selected papers for are peer-reviewed and will be published in the ACM Digital Library. Selected (extended) papers will be invited to a special issue of Concurrency and Computation: Practice and Experience Journal for 2005. Some papers may be selected to be presented as posters. Electronic only submission. Important Dates: Paper Submissions: July 18th, 2004 Papers Not. of acceptance: August 14th, 2004 Papers Camera-ready: September 1st, 2004 Program Committee (preliminar) * David Abramson - Monash U. AU * Cristiana Amza - U Toronto, CA * Rajkumar Buyya - U Melbourne, AU * Jim Basney - NCSA/UIUC, USA * Emmanuel Cecchet - INRIA Alpes, FR * Renato Cerqueira - PUC-Rio, BR * Walfredo Cirne - UFCG, BR * Geoff Coulson - Lancaster U, UK * Petre Dini - Cisco Systems & Concordia U, CA * Geoffrey Fox - U Indiana, US * Wolfgang Gentzsch - MCNC, US * Kate Keahey - U Chicago and ANL, US * Edmundo Madeira - UNICAMP, BR * Thomas Magedanz - TU Berlin & FHG Fokus, DE * Radha Nandkumar - NCSA/UIUC, US - Workshop Co-Chair * Andrea Omicini - U Bologna, IT * Fabio Porto - LNCC, BR - Publicity Co-Chair * Omer Rana - Cardiff U, UK * Vinod Rebello - UFF, BR * Noemi Rodrigues - PUC-Rio, BR * Bruno Schulze - LNCC, BR - Workshop Co-Chair * Stefan Tai - IBM T J Watson, US * Carlos Westphall - UFSC , BR From anthony at python.org Fri Jul 9 09:11:34 2004 From: anthony at python.org (Anthony Baxter) Date: Fri Jul 9 12:34:28 2004 Subject: RELEASED Python 2.4, alpha 1 Message-ID: <40EE4526.5060306@python.org> On behalf of the Python development team and the Python community, I'm happy to announce the first alpha of Python 2.4. Python 2.4a1 is an alpha release. We'd greatly appreciate it if you could download it, kick the tires and let us know of any problems you find, but it is not suitable for production usage. http://www.python.org/2.4/ In this release we have a number of new modules, a number of existing modules that have been reimplemented in C for speed, a large number of improvements and additions to existing modules and an even larger list of bugs squished. See either the highlights, the What's New in Python 2.4, or the detailed NEWS file -- all available from the Python 2.4 webpage. There will be at least one more alpha release in a couple of weeks to pick up a few new features that didn't make it into the first alpha, before we release 2.4 betas and then the final release. Please log any problems you have with this release in the SourceForge bug tracker (noting that you're using 2.4a1): http://sourceforge.net/bugs/?group_id=5470 Enjoy the new release, Anthony Anthony Baxter anthony@python.org Python Release Manager (on behalf of the entire python-dev team) From mike at pcblokes.com Fri Jul 9 16:05:20 2004 From: mike at pcblokes.com (Voidspace) Date: Fri Jul 9 16:08:50 2004 Subject: [ANN] approx - Python CGI Proxy, ConfigObj Update, Guestbook Update etc Message-ID: <40EEA620.7030002@pcblokes.com> There have been various updates to the Voidspace Python Utils. Available from : http://www.voidspace.org.uk/atlantibots/pythonutils.html *NEW* approx.py Version 1.0.0 Python CGI-proxy. A CGI-proxy for browsing the web in a restricted or censored environment. Will remotely fetch the pages for you. Similar in concept to the jmarshall perl proxy - though nothing like as fully featured yet. Trial version online to test. Modifies urls in the page so that images, stylesheets etc are also fetched through the proxy. Doesn't yet handle forms very well but functioning amd can handle authentication. Will use the ClientCookie module for cookie handling if it's available (authentication without cookie handling is generally useless). *NEW* listquote module Version 1.0.0 This module contains a set of functions for parsing values from text files and writing them back out again. It replaces the lineparse and csv_s modules. If you want a dead simple, bog-standard CSV module you could do worse than this one.. The function to read in lists is used by ConfigObj and has lots of functionality without being complicated. It will : * Appropriately quote and unquote individual elements * Read in lists, including nested lists o Comma seperated o Between '[..]' o Between '(...)' * Straightforwardly read CSV files * Straightforwardly write CSV files *UPDATE* ConfigObj Version 3.10 This now uses the listquote module for reading in keywords with lists of values. Much more flexible. *UPDATE* guestbook Version 1.1.0 This can now email the guestbook owner when a new entry is made. Also updates/bugfixes to the orderedDict module and FSDM filestruct module (used by DirWatcher). Licensing I'm in the process of 'relicensing' all my code available on this page. I still retain full copyright - but you are free to use, modify and relicense the code. This is effective immediately but it will take a while to update the text in all of my modules. Regards, Fuzzyman -- http://www.Voidspace.org.uk The Place where headspace meets cyberspace. Online resource site - covering science, technology, computing, cyberpunk, psychology, spirituality, fiction and more. --- http://www.Voidspace.org.uk/atlantibots/pythonutils.html Python utilities, modules and apps. Including Nanagram, Dirwatcher and more. --- http://www.fuchsiashockz.co.uk http://groups.yahoo.com/group/void-shockz --- Everyone has talent. What is rare is the courage to follow talent to the dark place where it leads. -Erica Jong Ambition is a poor excuse for not having sense enough to be lazy. -Milan Kundera From davidf at sjsoft.com Thu Jul 8 19:52:12 2004 From: davidf at sjsoft.com (David Fraser) Date: Sun Jul 11 16:31:22 2004 Subject: [ANN] libgmail 0.0.3 -- Gmail access via Python In-Reply-To: References: Message-ID: Follower wrote: > libgmail -- Python binding for Google's Gmail service > > > > The `libgmail` project is a pure Python binding to provide access to > Google's Gmail web-mail service. > > The library currently ships with one demonstration utility to archive > messages from a Gmail account into mbox files, suitable for importing > into a local email client. > > License: GPL 2.0 > > Major changes since 0.0.1 & 0.0.2: > > * Archive Gmail to mbox utility. > > * No longer requires external ClientCookie package. > > * Uses constants extracted directly from Gmail Javascript, > and includes utility to repeat the process if required. > > * Code & API refactoring. > > * Lazy retrieval and caching of thread and message data. > > * Sourceforge project & home page. > > >

libgmail 0.0.3 - The > `libgmail` project is a pure Python binding to provide access to > Google's Gmail web-mail service. (08-Jul-04)

This is getting really cool. One suggestion: the example on the home page needs a libgmail in front of the GmailAccount constructor I couldn't work out how to get the gmail.js required to update the constants.py. Maybe being able to give username and password to mkconstants to let it fetch the javascript would be a good idea? Cheers David From gansevle at mamba.cs.utwente.nl Fri Jul 9 12:00:51 2004 From: gansevle at mamba.cs.utwente.nl (Fred Gansevles) Date: Sun Jul 11 16:34:01 2004 Subject: ANN: wreg-1.2.2 Message-ID: <20040709100052.3F66950D2F@mamba.cs.utwente.nl> What is it? =========== wreg is a module implementing functions to access and manipulate the Windows Registry. The main goal is to simplify both the substring notation for registry keys an the access to registry data. What's new in version 1.2.2? ============================ * removed 'Regedit' from the __all__ list * added 'Reg' to the __all__ list * Pseudo Registry code completely rewritten so you can use both 'Registry' instances and 'RegObject' instances on a windows platform. * changed the __repr__ so printing a key doesn't print all it's subkeys and values ('pydoc wreg' now works correctly on windows) Where can I get it? =================== wreg is located at http://www.ewi.utwente.nl/~gansevle/python/wreg-1.2.2.zip Have Fun! ____________________________________________________________________________ Fred Gansevles Phone: +31 53 489 4613 Org.: Twente University, Fac. of EWI, Box 217, 7500 AE Enschede, Netherlands "Linux is like a wigwam, No windows, no gates and an apache inside" From theller at python.net Fri Jul 9 21:25:09 2004 From: theller at python.net (Thomas Heller) Date: Sun Jul 11 16:34:39 2004 Subject: py2exe 0.5.2 released Message-ID: **py2exe 0.5.2** released ========================= py2exe is a Python distutils extension which converts python scripts into executable windows programs, able to run without requiring a python installation. Console and Windows (GUI) applications, windows NT services, exe and dll COM servers are supported. This is a bugfix release. * Print a message explaining what's going on whan a service exe is started from the command line. * py2exe did build invalid version resources, they didn't show up correctly on Win98 at least. Patch by Roger Upole. * Fix a buffer overflow in the C code. Patch by Ralf Sieger, closes bug item #893310 * py2exe now (again) has a builtin list of dlls which should never be distributed * Patch sys.winver in the distributed pythonXY.dll, so that there is no possibility of conflicts with existing distributions and the registry keys found there. Patch by Mark Hammond. * Fix several problems when an exception in a 'windows' exe occurs. * Include a workaround for unbounded recursion in modulefinder when Jason Jorendorff's path module is installed See also http://python.org/sf/876278 * Fix problems when package_dir is set in the setup script, see http://tinyurl.com/yuc5l * py2exe can now be built from the sources with mingw32 * py2exe does now handle precompile .pyo and .pyc files (patch by Shane Holloway) * Fix a problem when the exe's directory contains single quotes * Register service dependencies when installing a service * Return an exit code of 255 from the exe when there's an uncatched exception running the main script. * Print a warning instead of failing to build with weird version numbers. Suggested by Cory Dodt. Homepage: Download from the usual location: Enjoy, Thomas From csad7 at t-online.de Sat Jul 10 13:26:32 2004 From: csad7 at t-online.de (c.) Date: Sun Jul 11 16:35:25 2004 Subject: ANN: pyXSLdoc 0.66 Message-ID: <40EFD268.4040901@cdot.de> what is it ---------- An application to produce documentation for XSLT files in XHTML format, similar to what javadoc does for Java files. changes since the last release ------------------------------ Mainly bugfixes. Additionally the template priority is processed and displayed now. See http://cthedot.de/pyxsldoc/README.txt for a complete list of changes. download -------- download pyXSLdoc v0.66 - 040710 from http://cthedot.de/pyxsldoc/ pyXSLdoc needs * Python 2.3 (tested with Python 2.3.4 on Windows XP only) * Pyana (tested with Pyana 0.9.1 only) * Docutils (tested with Docutils 0.3 only) usage ----- Copy the XSLT files to document in a directory below pyXSLdoc (you could also give the complete path to your files but that would end up like that in the documentation). Then start the documentation process with >python xsldoc.py DIRNAMES FILENAMES [options] DIRNAMES directories with XSLT files to document,e.g. dir1 dir2 All directories and XSLT files below a given directory will be processed, so you can just use your XSLT package main directory name or use option -s. FILENAMES single XSLT files to document, e.g. file1.xsl path/file2.xsl options ~~~~~~~ -sSOURCEPATH, --sourcepath=SOURCEPATH sourcepath to XSLTs, all XSLT files under this path will be documented and ``$SOURCEPATH/doctitle.txt`` and ``$SOURCEPATH/overview.txt`` will be used for the overview. Alternatively you might also simply list all dirs and XSLT files to document. -j, --javadoc, --htmldocs process comments in Javadoc style (XHTML and @tags). Default is reStructuredText (ReST). -dDOCPATH, --docpath=DOCPATH documentation target directory. Default is ``./_xsldoc`` --windowtitle=WINDOWTITLE browser window title for the documentation. Text only, no markup. --doctitle=DOCTITLE show the contents of this ReST .txt file at the top of the overview page. Default is ``$SOURCEPATH/doctitle.txt``. If ommitted or no file is found, WINDOWTITLETEXT is used. -oOVERVIEW, --overview=OVERVIEW show the contents of this ReST .txt file on the overview page. Default is ``$SOURCEPATH/overview.txt`` --helpfile=HELPFILE show the information of this ReST .txt file on the help page. Default is ``./HELP.txt``. --encoding=ENCODING encoding of additional documenting ReST files (HELP.txt, doctitle.txt, overview.txt, directory.txt etc.). Default is utf-8. (Encoding of XSLT files and comments in these is of course read from the XSLT file itself.) -r, --removedocs remove all comments from given XSLTs and save results in COMMENTSTRIPPEDPATH. Present files will be OVERWRITTEN! -cCOMMENTSTRIPPEDPATH, --commentstrippedpath=COMMENTSTRIPPEDPATH path where XSLTs will be saved after removing of all docs. Only used when option ``--removedocs`` is given. Default directory is ``./_optimized``. -v, --verbose show more detailed information while generating the documentation thanks for the interest. any comment is appreciated christof hoeke pyxsldoc a t c the dot . de http://cthedot.de

pyXSLdoc 0.66 - generate XSLT documentation (10-Jul-04) From tom.sheffler at sbcglobal.net Sat Jul 10 22:14:44 2004 From: tom.sheffler at sbcglobal.net (tom.sheffler@sbcglobal.net) Date: Sun Jul 11 16:36:07 2004 Subject: ANN: Python as a test and modeling language for Verilog Message-ID: Oroboro is an approach to integrating Python and Verilog. With it, Python generator functions are used to model simulation threads in a cooperative multitasking style. An Oroboro task can suspend its execution with a yield statement that lists the reasons the task should be resumed. Typical reasons map directly to VPI callback reasons. Oroboro does not implement a scheduler of its own, rather, it relies on Verilog for all event scheduling through the use of callback functions. A short example illustrates some basic capabilities for interacting with a Verilog simulation. from oroboro import * def watcher(sig): print "Watching signal %s" % sig while 1: yield sigchange(sig), timeout(10) if isinstance(currentreason(), sigchange): print "New value for signal %s is %s" % (sig, sig.get()) if isinstance(currentreason(), timeout): print "Timeout has elapsed. Wait again." def main(systf): s = signal("top.mysignal") t = task(watcher, s) yield timeout(0) returnThe example above illustrates a simple task that watches a Verilog signal. The task 'watcher' loops indefinitely, suspending its execution with a yield statement that lists the reasons it should be resumed. Here, the task waits until either the signal value changes, or a 10 simulation tick timeout occurs ... whichever comes first. When the task resumes, it uses the 'currentreason' function to determine whether the first or second reason in the yield statement was triggered. The task prints an informative message and then loops. Source downloads and documentation can be found at: http://apvm.sourceforge.net -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-announce-list/attachments/20040710/6c2ac198/attachment.html From greg at cosc.canterbury.ac.nz Sun Jul 11 10:04:35 2004 From: greg at cosc.canterbury.ac.nz (greg) Date: Sun Jul 11 16:36:07 2004 Subject: ANN: Pyrex 0.9.3 Message-ID: <40F0F493.3030401@cosc.canterbury.ac.nz> Pyrex 0.9.3 is now available: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ Highlights of this version: - Types defined with a ctypedef in a 'cdef extern from' block are now referred to by the typedef name in generated C code, so it is no longer necessary to match the type in the C header file exactly. - Some bugs introduced by the recent changes to the handling of string literals have been fixed. Plus several other enhancements and bug fixes -- see the CHANGES file in the distribution for 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. From rlbuvel at gmail.com Sun Jul 11 13:24:26 2004 From: rlbuvel at gmail.com (Ray Buvel) Date: Sun Jul 11 16:36:08 2004 Subject: [ANN] crcmod - CRC generator Message-ID: <38b79e61.0407110324.6c4bdb9b@posting.google.com> Python module for creating functions computing the Cyclic Redundancy Check (CRC). Any generating polynomial producing 8, 16, 32, or 64 bit CRCs is allowed. Generated functions can be used in Python or C/C++ source code can be generated. Visit the project home page at http://crcmod.sourceforge.net/ From follower at gmail.com Sun Jul 11 14:13:02 2004 From: follower at gmail.com (Follower) Date: Sun Jul 11 16:36:08 2004 Subject: [ANN] libgmail 0.0.5 -- Gmail access via Python Message-ID: <3c18c08f.0407110413.464f6ae5@posting.google.com> libgmail -- Python binding for Google's Gmail service The `libgmail` project is a pure Python binding to provide access to Google's Gmail web-mail service. The library currently ships with one demonstration utility to archive messages from a Gmail account into mbox files, suitable for importing into a local email client. License: GPL 2.0 Major changes since 0.0.4: * Added functionality to enable message sending. * Added command line example to send a message.

libgmail 0.0.5 - The `libgmail` project is a pure Python binding to provide access to Google's Gmail web-mail service. (11-Jul-04)

From pje at telecommunity.com Mon Jul 12 19:58:30 2004 From: pje at telecommunity.com (Phillip J. Eby) Date: Mon Jul 12 19:57:36 2004 Subject: PyProtocols 0.9.3 Release Candidate 2 Message-ID: <5.1.1.6.0.20040712135628.01ee8600@mail.telecommunity.com> PyProtocols 0.9.3 release candidate 2 is now available for download. Assuming there are no bugs reported in the next 3-4 weeks, it will become the 0.9.3 final release in early August. (The 0.9.3rc2 revision fixes a bug in the '--without-speedups' version of 0.9.3rc1, as reported by Matthew Scott.) What is PyProtocols? -------------------- PyProtocols is an extended implementation of PEP 246, adding 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. Using PyProtocols, you can easily make flexible frameworks that you or other developers can extend without needing to modify the base framework. PyProtocols interfaces can interoperate with those of Twisted and Zope, or can be used entirely standalone. PyProtocols may be used, modified, and distributed under the same terms and conditions as Python or Zope. What's new in version 0.9.3rc1? (Highlights) -------------------------------------------- * Adapter factories can now accept just one argument, the way Twisted and Zope adapters do. * Interface and protocol objects can be called, as a shortcut for 'adapt()' (as Zope and Twisted interfaces do) * You can now more easily install PyProtocols without a C compiler, using the '--without-speedups' option to 'setup.py' (see the README.txt file for details.) * Numerous other bug fixes and enhancements - see CHANGES.txt for details. IMPORTANT: If you are upgrading from a previous version of PyProtocols, please read UPGRADING.txt for important information. Certain rarely-used features have been deprecated, and others have changed slightly. Most users should not experience any problems (except perhaps for DeprecationWarnings), but please be sure to verify this before you upgrade any production code from 0.9.2 to 0.9.3. PyProtocols Resources --------------------- * Upgrading to PyProtocols 0.9.3 (and a look ahead to 1.0) http://peak.telecommunity.com/protocol_api/UPGRADING.txt.html * Detailed Changes for all releases: http://peak.telecommunity.com/protocol_api/CHANGES.txt.html * 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/ From python-url at phaseit.net Mon Jul 12 20:48:43 2004 From: python-url at phaseit.net (Peter Otten) Date: Mon Jul 12 20:51:48 2004 Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Jul 12) Message-ID: QOTW: "Python's a language you can swear by, not at." - Chris "Every sufficiently advanced LISP application will eventually reimplement Python." - Hodgson's Law Chad Himeda asks for a nested loop limit and Peter Hansen answers with a quick test on the commandline. A discussion on the merits of code approaching this limit entrails. http://groups.google.com/groups?threadm=fd07865f.0407071045.16e20c84%40posting.google.com Karl Pech wants to calculate PI using the Monte Carlo method - and fast. http://groups.google.com/groups?threadm=ccke8p%24c0h%2406%241%40news.t-online.com Chris recollects how he fell in love with Python. http://groups.google.com/groups?selm=mailman.138.1089318827.5135.python-list%40python.org Marco Aschwanden asks for opinions on the use of multiple return statements in a single function. http://groups.google.com/groups?threadm=mailman.158.1089358188.5135.python-list%40python.org Bryan Olson searches for the longest matching prefix of a string using regular expressions. Michael Hudson offers an alternate approach. http://groups.google.com/groups?threadm=gN5Hc.12587%24ia1.1667%40newssvr27.news.prodigy.com Contrary to the current documentation, the open() builtin is not retained for compatibility only. It may even grow some extra logic and no longer be confined to ordinary files. http://mail.python.org/pipermail/python-dev/2004-July/045931.html Guido van Rossum is less concerned about variable names shading builtins than many posters on c.l.py. http://mail.python.org/pipermail/python-dev/2004-July/045948.html Anthony Baxter announces release of the first alpha version of Python 2.4. You are invited to download and participate in the test. http://groups.google.com/groups?threadm=mailman.157.1089357112.5135.python-list%40python.org ======================================================================== Everything Python-related you want is probably one or two clicks away in these pages: Python.org's Python Language Website is the traditional center of Pythonia http://www.python.org Notice especially the master FAQ http://www.python.org/doc/FAQ.html PythonWare complements the digest you're reading with the marvelous daily python url http://www.pythonware.com/daily Mygale is a news-gathering webcrawler that specializes in (new) World-Wide Web articles related to Python. http://www.awaretek.com/nowak/mygale.html While cosmetically similar, Mygale and the Daily Python-URL are utterly different in their technologies and generally in their results. comp.lang.python.announce announces new Python software. Be sure to scan this newsgroup weekly. http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python.announce Brett Cannon continues the marvelous tradition established by Andrew Kuchling and Michael Hudson of intelligently summarizing action on the python-dev mailing list once every other week. http://www.python.org/dev/summary/ The Python Package Index catalogues packages. http://www.python.org/pypi/ The somewhat older Vaults of Parnassus ambitiously collects references to all sorts of Python resources. http://www.vex.net/~x/parnassus/ Much of Python's real work takes place on Special-Interest Group mailing lists http://www.python.org/sigs/ The Python Business Forum "further[s] the interests of companies that base their business on ... Python." http://www.python-in-business.org The Python Software Foundation (PSF) has replaced the Python Consortium as an independent nexus of activity. It has official responsibility for Python's development and maintenance. http://www.python.org/psf/ Among the ways you can support PSF is with a donation. http://www.python.org/psf/donate.html Cetus collects Python hyperlinks. http://www.cetus-links.org/oo_python.html Python FAQTS http://python.faqts.com/ The Cookbook is a collaborative effort to capture useful and interesting recipes. http://aspn.activestate.com/ASPN/Cookbook/Python Among several Python-oriented RSS/RDF feeds available are http://www.python.org/channews.rdf http://bootleg-rss.g-blog.net/pythonware_com_daily.pcgi http://python.de/backend.php For more, see http://www.syndic8.com/feedlist.php?ShowMatch=python&ShowStatus=all The old Python "To-Do List" now lives principally in a SourceForge reincarnation. http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse http://python.sourceforge.net/peps/pep-0042.html The online Python Journal is posted at pythonjournal.cognizor.com. editor@pythonjournal.com and editor@pythonjournal.cognizor.com welcome submission of material that helps people's understanding of Python use, and offer Web presentation of your work. *Py: the Journal of the Python Language* http://www.pyzine.com Archive probing tricks of the trade: http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python&num=100 http://groups.google.com/groups?meta=site%3Dgroups%26group%3Dcomp.lang.python.* Previous - (U)se the (R)esource, (L)uke! - messages are listed here: http://www.ddj.com/topics/pythonurl/ http://purl.org/thecliff/python/url.html (dormant) or http://groups.google.com/groups?oi=djq&as_q=+Python-URL!&as_ugroup=comp.lang.python Suggestions/corrections for next week's posting are always welcome. E-mail to should get through. To receive a new issue of this posting in e-mail each Monday morning (approximately), ask to subscribe. Mention "Python-URL!". -- The Python-URL! Team-- Dr. Dobb's Journal (http://www.ddj.com) is pleased to participate in and sponsor the "Python-URL!" project. From eric at enthought.com Wed Jul 14 07:07:42 2004 From: eric at enthought.com (eric jones) Date: Wed Jul 14 13:04:40 2004 Subject: ANN: Reminder -- SciPy 04 is coming up Message-ID: <40F4BF9E.8060103@enthought.com> Hey folks, Just a reminder that SciPy 04 is coming up. More information is here: http://www.scipy.org/wikis/scipy04 About the Conference and Keynote Speaker --------------------------------------------- The 1st annual *SciPy Conference* will be held this year at Caltech, September 2-3, 2004. As some of you may know, we've experienced great participation in two SciPy "Workshops" (with ~70 attendees in both 2002 and 2003) and this year we're graduating to a "conference." With the prestige of a conference comes the responsibility of a keynote address. This year, Jim Hugunin has answered the call and will be speaking to kickoff the meeting on Thursday September 2nd. Jim is the creator of Numeric Python, Jython, and co-designer of AspectJ. Jim is currently working on IronPython--a fast implementation of Python for .NET and Mono. Presenters ----------- We still have room for a few more standard talks, and there is plenty of room for lightning talks. Because of this, we are extending the abstract deadline until July 23rd. Please send your abstract to abstracts@scipy.org. Travis Oliphant is organizing the presentations this year. (Thanks!) Once accepted, papers and/or presentation slides are acceptable and are due by August 20, 2004. Registration ------------- Early registration ($100.00) has been extended to July 23rd. Follow the links off of the main conference site: http://www.scipy.org/wikis/scipy04 After July 23rd, registration will be $150.00. Registration includes breakfast and lunch Thursday & Friday and a very nice dinner Thursday night. Please register as soon as possible as it will help us in planning for food, room sizes, etc. Sprints -------- As of now, we really haven't had much of a call for coding sprints for the 3 days prior to SciPy 04. Below is the original announcement about sprints. If you would like to suggest a topic and see if others are interested, please send a message to the list. Otherwise, we'll forgo the sprints session this year. We're also planning three days of informal "Coding Sprints" prior to the conference -- August 30 to September 1, 2004. Conference registration is not required to participate in the sprints. Please email the list, however, if you plan to attend. Topics for these sprints will be determined via the mailing lists as well, so please submit any suggestions for topics to the scipy-user list: list signup: http://www.scipy.org/mailinglists/ list address: scipy-user@scipy.org thanks, eric From falted at pytables.org Tue Jul 13 11:22:27 2004 From: falted at pytables.org (Francesc Alted) Date: Wed Jul 14 13:05:08 2004 Subject: PyTables 0.8.1 released Message-ID: <200407131122.27056.falted@pytables.org> Hi!, I'm pleased to announce the availability of PyTables 0.8.1. PyTables is a hierarchical database package designed to efficiently manage very large amounts of data. PyTables is built on top of the HDF5 library and the numarray package. It features an object-oriented interface that, combined with natural naming and C-code generated from Pyrex sources, makes it a fast, yet extremely easy-to-use tool for interactively saving and retrieving different kinds of datasets. It also provides flexible indexed access on disk to anywhere in the data. The primary purpose of this release is to incorporate updates to related to the newly released numarray 1.0. I've taken the opportunity to backport some improvements added in PyTables 0.9 (in alpha stage) as well as to fix the known problems. Improvements: - The logic for computing the buffer sizes has been revamped. As a consequence, the performance of writing/reading tables with large row sizes has improved by a factor of ten or more, now exceeding 70 MB/s for writing and 130 MB/s for reading (using compression). See http://sf.net/mailarchive/forum.php?thread_id=4963045&forum_id=13760 for more info. - The maximum row size for tables has been raised to 512 KB (before it was 8 KB, due to some internal limitations) - Documentation has been improved in minor details. As a result of a fix in the underlying documentation system (tbook), chapters start now at odd pages, instead of even. So those of you who want to print to double side probably will have better luck now when aligning pages ;). Another one is that HTML documentation has improved its look as well. Bug Fixes: - Indexing of Arrays with list or tuple flavors (#968131) When retrieving single elements from an array with 'List' or 'Tuple' flavors, an error occurred. This has been corrected and now you can retrieve fileh.root.array[2] without problems for 'List' or 'Tuple' flavored (E, VL)Arrays. - Iterators on Arrays with list or tuple flavors fail (#968132) When using iterators with Array objects with 'List' or 'Tuple' flavors, an error occurred. This has been corrected. - Last Index (-1) of Arrays doesn't work (#968149) When accessing to the last element in an Array using the notation -1, an empty list (or tuple or array) is returned instead of the proper value. This happened in general with all negative indices. Fixed. - Table.read(flavor="List") should return pure lists (#972534) However, it used to return a pointer to numarray.records.Record instances, as in: >>> fileh.root.table.read(1,2,flavor="List") [] >>> fileh.root.table.read(1,3,flavor="List") [, ] Now the next records are returned: >>> fileh.root.table.read(1,2, flavor=List) [(' ', 1, 1.0)] >>> fileh.root.table.read(1,3, flavor=List) [(' ', 1, 1.0), (' ', 2, 2.0)] In addition, when reading a single row of a table, a numarray.records.Record pointer was returned: >>> fileh.root.table[1] Now, it returns a tuple: >>> fileh.root.table[1] (' ', 1, 1.0) Which I think is more consistent, and more Pythonic. - Copy of leaves fails... (#973370) Attempting to copy leaves (Table or Array with different flavors) on top of themselves caused an internal error in PyTables. This has been corrected by silently avoiding the copy and returning the original Leaf as a result. Minor changes: - When assigning a value to a non-existing field in a table row, now a KeyError is raised, instead of the AttributeError that was issued before. I think this is more consistent with the type of error. - Tests have been improved so as to pass the whole suite when compiled in 64 bit mode on a Linux/PowerPC machine (namely a dual-G5 Powermac running a 64-bit, 2.6.4 Linux kernel and the preview YDL distribution for G5, with 64-bit GCC toolchain). Thanks to Ciro Cattuto for testing and reporting the modifications that were needed. Where PyTables can be applied? ------------------------------ PyTables is not designed to work as a relational database competitor, but rather as a teammate. If you want to work with large datasets of multidimensional data (for example, for multidimensional analysis), or just provide a categorized structure for some portions of your cluttered RDBS, then give PyTables a try. It works well for storing data from data acquisition systems (DAS), simulation software, network data monitoring systems (for example, traffic measurements of IP packets on routers), very large XML files, or for creating a centralized repository for system logs, to name only a few possible uses. What is a table? ---------------- A table is defined as a collection of records whose values are stored in fixed-length fields. All records have the same structure and all values in each field have the same data type. The terms "fixed-length" and "strict data types" seem to be quite a strange requirement for a language like Python that supports dynamic data types, but they serve a useful function if the goal is to save very large quantities of data (such as is generated by many scientific applications, for example) in an efficient manner that reduces demand on CPU time and I/O resources. What is HDF5? ------------- For those people who know nothing about HDF5, it is a general purpose library and file format for storing scientific data made at NCSA. HDF5 can store two primary objects: datasets and groups. A dataset is essentially a multidimensional array of data elements, and a group is a structure for organizing objects in an HDF5 file. Using these two basic constructs, one can create and store almost any kind of scientific data structure, such as images, arrays of vectors, and structured and unstructured grids. You can also mix and match them in HDF5 files according to your needs. Platforms --------- I'm using Linux (Intel 32-bit) as the main development platform, but PyTables should be easy to compile/install on many other UNIX machines. This package has also passed all the tests on a UltraSparc platform with Solaris 7 and Solaris 8. It also compiles and passes all the tests on a SGI Origin2000 with MIPS R12000 processors, with the MIPSPro compiler and running IRIX 6.5. It also runs fine on Linux 64-bit platforms, like an AMD Opteron running SuSe Linux Enterprise Server or PowerPC G5 with Linux 2.6.x in 64bit mode. It has also been tested in MacOSX platforms (10.2 but should also work on newer versions). Regarding Windows platforms, PyTables has been tested with Windows 2000 and Windows XP (using the Microsoft Visual C compiler), but it should also work with other flavors as well. An example? ----------- For online code examples, have a look at http://pytables.sourceforge.net/html/tut/tutorial1-1.html and, for newly introduced Variable Length Arrays: http://pytables.sourceforge.net/html/tut/vlarray2.html Web site -------- Go to the PyTables web site for more details: http://pytables.sourceforge.net/ Share your experience --------------------- Let me know of any bugs, suggestions, gripes, kudos, etc. you may have. Cheers, -- Francesc Alted From joel at joelburton.com Tue Jul 13 16:17:40 2004 From: joel at joelburton.com (Joel Burton) Date: Wed Jul 14 13:05:18 2004 Subject: Upcoming Meetings for Zope/Python Users of Washington, DC Message-ID: <40F3EF04.3010805@joelburton.com> The newly-formed Zope/Python Users Group of DC announces our upcoming meeting schedule: Mo Jul 19: Zope -- presentation on Archetypes by Joel Burton Th Aug 5: Python -- no topic yet Mo Aug 16: Zope -- no topic yet Th Sep 2: Python -- no topic yet Mo Sep 20: Zope -- no topic yet The hot topics that users at the first meeting were most interested in include: Plone skinning, Zope/Plone performance, Python + XML, Text processing with Python, and Zope development, so expect that we'll fill in these topics ASAP with presentations like these. Our meetings take place at 7pm in the large conference room of Porter Novelli,a marketing/communications firm located in downtown DC at 1909 K Street (right off the red and orange/blue Metro lines, and close to many bus lines). We'll be meeting on the first Thursday and third Monday of each month. A full schedule of our meetings, talks, and plans are at our web site at http://www.zpugdc.org. To receive announcements about upcoming meetings, and to contribute to our group, please join our mailing list (send a message with the *subject* 'subscribe' to zpugdc@lists.zpugdc.org, or sign up at the site.) If you have questions, you can reach us at info@zpugdc.org. Thanks! - j. Joel Burton, for the Zope/Python Users Group of DC (www.zpugdc.org) From kiko at async.com.br Mon Jul 12 21:00:47 2004 From: kiko at async.com.br (Christian Robottom Reis) Date: Wed Jul 14 13:05:35 2004 Subject: ANNOUNCE: pygtk-0.6.12 Message-ID: <20040712190047.GB12694@async.com.br> ** Note: this is *not* relative to the current GTK+ 2.x-based PyGTK ** Hello there, I'm releasing today version 0.6.12 of PyGTK, off the 0.6 branch, which is the original PyGTK branch based on GTK+ 1.2. This version includes a small number of bugfixes and two API additions which have been incorporated during the last two years of stability. Summary of changes: Bugfixes - Fixed GtkScrolledWindow's use of `has_attr' - A fix for bug 96907: Crashes when calling emit() with less parameters than expected. - Check for non-existing directories in pygtk._get_available_versions - Implement proper exception handling in the GladeXML constructor. - Performance enhancement in bug 112395: Clean up __getattr__ and add __eq__/__nonzero__ to GtkObject. New API - Wrapped GtkRadioButton.group() - Implemented GtkCList.set_focus_row() to work around a GTK+ focus bug in the GtkCList. Download it from ftp://ftp.gtk.org/pub/gtk/python/v1.2/pygtk-0.6.12.tar.gz There is no accompanying gnome-python release. This tarball is identical to the release candidate that was announced earlier. Thanks for everyone that provided bug reports, comments and fixes for the branch, including Jon Nelson, Steve McClure and Andrew Reid. Take care, -- Christian Robottom Reis | http://async.com.br/~kiko/ | [+55 16] 3361 2331 From newsham at lava.net Fri Jul 16 06:48:28 2004 From: newsham at lava.net (Tim Newsham) Date: Tue Jul 20 13:46:06 2004 Subject: Announcing PyGgy 0.3 Message-ID: Announcing: PyGgy v0.3 - http://www.lava.net/~newsham/pyggy/ Tim Newsham 2004 Jul 15 Public Domain ---[ Description PyGgy is a python package for generating parsers and lexers in python. The PyGgy distribution contains two tools: PyLly - (Pronounced "pile-ey") A lexer generator that generates DFA tables for lexing tokens. PyGgy - (Pronounced "piggy") A parser generator that generates SLR tables for a GLR parsing engine. The PyLly program is used to pregenerate tables for a finite state machine from a lexer specification. There is a lexer engine that uses the tables to tokenize an input stream. The PyGgy program is used to pregenerate parser tables from a parser specification. There is a GLR parsing engine that uses the tables to parse a stream of input tokens. Because GLR parsing is used, the parser can deal with arbitrary grammars, even if they are recursive or ambiguous. PyGgy is self hosting -- PyGgy parsers and PyLly lexers are used to process the specification files used by both PyGgy and PyLly. This is version 0.3 of PyGgy. It is the second public release. This is an alpha release; the public interfaces are subject to change, and there may be bugs in the code. This version of PyGgy is placed in the public domain. This means anyone can do anything with it with no restrictions whatsoever. From follower at gmail.com Thu Jul 15 00:32:36 2004 From: follower at gmail.com (Follower) Date: Tue Jul 20 13:47:10 2004 Subject: ANN: libgmail 0.0.6 - Gmail access via Python - SMTP Proxy enabled! Message-ID: <3c18c08f.0407141432.4d1076b7@posting.google.com> libgmail -- Python binding for Google's Gmail service The `libgmail` project is a pure Python binding to provide access to Google's Gmail web-mail service. The library currently ships with a demonstration utility to archive messages from a Gmail account into mbox files, suitable for importing into a local email client. Also includes a demonstration utility that acts as a SMTP proxy to allow mail to be sent from any standard mail client that uses SMTP (e.g. Mail.app, Mozilla etc). License: GPL 2.0 Major changes since 0.0.5: * Implemented SMTP proxy to enable Gmail to be send with a standard mail client via (E)SMTP. * Extended standard SMTP class to handle ESMTP EHLO & AUTH PLAIN commands. * Utility function '_retrieveJavascript' to retrieve current version of Gmail Javascript file. (By request.)

libgmail 0.0.6 - The `libgmail` project is a pure Python binding to provide access to Google's Gmail web-mail service. (15-Jul-04)

From tom.sheffler at sbcglobal.net Thu Jul 15 05:12:52 2004 From: tom.sheffler at sbcglobal.net (tom.sheffler@sbcglobal.net) Date: Tue Jul 20 13:47:11 2004 Subject: [ANN] Python as a test and modeling langauge for Verilog Message-ID: Oroboro is an approach to using Python as a test and modeling language for Verilog. With it, Python generator functions are used to model simulation threads in a cooperative multitasking style. A simulation task in Python can suspend its execution with a yield statement that lists the reasons the task should be resumed. Typical reasons map directly to VPI callback reasons. Oroboro does not implement a scheduler of its own, rather, it relies on Verilog for all event scheduling through the use of callback functions. A short example illustrates some basic capabilities for interacting with a Verilog simulation. from oroboro import * def watcher(sig): print "Watching signal %s" % sig while 1: yield sigchange(sig), timeout(10) if isinstance(currentreason(), sigchange): print "New value for signal %s is %s" % (sig, sig.get()) if isinstance(currentreason(), timeout): print "Timeout has elapsed. Wait again." def main(systf): s = signal("top.mysignal") t = task(watcher, s) yield timeout(0) The example above illustrates a simple task that watches a Verilog signal. The task 'watcher' loops indefinitely, suspending its execution with a yield statement that lists the reasons it should be resumed. Here, the task waits until either the signal value changes, or a 10 simulation tick timeout occurs ... whichever comes first. When the task resumes, it uses the 'currentreason' function to determine whether the first or second reason in the yield statement was triggered. The task prints an informative message and then loops. A longer paper discussing Oroboro, source downloads and examples can be found at: http://apvm.sourceforge.net From martin at v.loewis.de Sun Jul 18 12:13:03 2004 From: martin at v.loewis.de (=?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=) Date: Tue Jul 20 13:47:12 2004 Subject: utf8script 1.0 is released Message-ID: <40fa4d2f$0$26137$9b622d9e@news.freenet.de> The package utf8script provides an additional binary format for Linux: scripts which start with an UTF-8 signature (aka BOM), i.e. with the byte sequence \xef\xbb\xbf#!. This is particularly useful for scripting languages which recognize the BOM, e.g. Python. With Python 2.3 or newer, scripts with the UTF-8 BOM are considered UTF-8 enocded without the need for an addition encoding declaration. The package is available from http://www.dcl.hpi.uni-potsdam.de/home/loewis/utf8script-1.0.tgz An x86 Debian package can be downloaded from http://www.dcl.hpi.uni-potsdam.de/home/loewis/debian/binary/utf8script_1.0-1_i386.deb Martin v. L?wis martin@v.loewis.de From jolsen at despammed.com Sun Jul 18 18:41:57 2004 From: jolsen at despammed.com (Jesper Olsen) Date: Tue Jul 20 13:47:12 2004 Subject: ANN: PChess 0.9 Message-ID: Hi, I don't know if the world needs another chess program, but here is one :-) http://jesperolsen.net/PChess/index.html It is a C-extension for python, and includes a cgi based chess application: http://jesperolsen.net/PChess/cgiskak.py The chess engine itself, is one I wrote a long time ago, and now I have updated it (for ANSI C) and created a python wrapper for it. I am planning a few more releases - adding features to the python interface. I have previously written GUIs for it, but they don't seem to last very long before becomming obsolete. I'm not going to do another - in addition to the CGI game, but may try to interface it to an existing one. If you are aware of a good candidate - particularly if it has a python interface and is relatively platform independent, I am interested. Cheers Jesper From python-url at phaseit.net Mon Jul 19 17:21:04 2004 From: python-url at phaseit.net (Peter Otten) Date: Tue Jul 20 13:47:13 2004 Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Jul 19) Message-ID: QOTW: "So I better start practice my throwing, and Dan [Sugalski] better start practice his ducking. ;-)" -- Guido van Rossum using his time-machine for a preview on the Pie-thon at Oscon 2004. "Anytime you need to do something on corresponding items in two lists, you should think of zip(), as this binds the matching elements together." -- Marc Boeren Michele Simionato shows a concise way to implement a revolving counter. http://groups.google.com/groups?threadm=4edc17eb.0407180632.14385359%40posting.google.com In his answer to Chris Lyon, Daniel Dittmar posts a mini-tutorial on list comprehensions and iterators. http://groups.google.com/groups?threadm=cd0pse%24q2g%241%40news1.wdf.sap-ag.de Mike C. Fletcher shares his experiences in building Python extensions with the free (of charge) Microsoft Visual C++ Toolkit compiler. http://groups.google.com/groups?threadm=mailman.528.1090097933.5135.python-list%40python.org http://members.rogers.com/mcfletch/programming/mstoolkit/ Python newbie Matt Feinstein misses fixed-size integers in the core. While answers point out that this will not be problem in practice, Dan Bishop has a pure-python implementation to ease the (phantom?) pain. http://groups.google.com/groups?selm=ad052e5c.0407161348.42abb996%40posting.google.com Jacek Generowicz explains Python's scoping rules, and yes, he has a not so hidden agenda. http://groups.google.com/groups?threadm=tyfwu15v85j.fsf%40pcepsft001.cern.ch David Pokorny wants to run a function a fixed number of bytecodes at a time. It turns out that a similar problem has already been discussed a year ago - with impressive code posted by Duncan Booth. http://groups.google.com/groups?threadm=40FA9D2A.3020905%40hotmail.com Python Windows guru Mark Hammond needs beta-testers with IIS and Apache experience for a new ISAPI module. http://groups.google.com/groups?selm=cdf3mb%2418b0%241%40arachne.labyrinth.net.au Heiko Wundram engages in a discussion about the algorithm used in his little Minesweeper program. http://groups.google.com/groups?threadm=mailman.326.1089751896.5135.python-list%40python.org What is Pie-thon? For an explanation see http://www.artima.com/forums/flat.jsp?forum=122&thread=27898 ======================================================================== Everything Python-related you want is probably one or two clicks away in these pages: Python.org's Python Language Website is the traditional center of Pythonia http://www.python.org Notice especially the master FAQ http://www.python.org/doc/FAQ.html PythonWare complements the digest you're reading with the marvelous daily python url http://www.pythonware.com/daily Mygale is a news-gathering webcrawler that specializes in (new) World-Wide Web articles related to Python. http://www.awaretek.com/nowak/mygale.html While cosmetically similar, Mygale and the Daily Python-URL are utterly different in their technologies and generally in their results. comp.lang.python.announce announces new Python software. Be sure to scan this newsgroup weekly. http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python.announce Brett Cannon continues the marvelous tradition established by Andrew Kuchling and Michael Hudson of intelligently summarizing action on the python-dev mailing list once every other week. http://www.python.org/dev/summary/ The Python Package Index catalogues packages. http://www.python.org/pypi/ The somewhat older Vaults of Parnassus ambitiously collects references to all sorts of Python resources. http://www.vex.net/~x/parnassus/ Much of Python's real work takes place on Special-Interest Group mailing lists http://www.python.org/sigs/ The Python Business Forum "further[s] the interests of companies that base their business on ... Python." http://www.python-in-business.org The Python Software Foundation (PSF) has replaced the Python Consortium as an independent nexus of activity. It has official responsibility for Python's development and maintenance. http://www.python.org/psf/ Among the ways you can support PSF is with a donation. http://www.python.org/psf/donate.html Cetus collects Python hyperlinks. http://www.cetus-links.org/oo_python.html Python FAQTS http://python.faqts.com/ The Cookbook is a collaborative effort to capture useful and interesting recipes. http://aspn.activestate.com/ASPN/Cookbook/Python Among several Python-oriented RSS/RDF feeds available are http://www.python.org/channews.rdf http://bootleg-rss.g-blog.net/pythonware_com_daily.pcgi http://python.de/backend.php For more, see http://www.syndic8.com/feedlist.php?ShowMatch=python&ShowStatus=all The old Python "To-Do List" now lives principally in a SourceForge reincarnation. http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse http://python.sourceforge.net/peps/pep-0042.html The online Python Journal is posted at pythonjournal.cognizor.com. editor@pythonjournal.com and editor@pythonjournal.cognizor.com welcome submission of material that helps people's understanding of Python use, and offer Web presentation of your work. *Py: the Journal of the Python Language* http://www.pyzine.com Archive probing tricks of the trade: http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python&num=100 http://groups.google.com/groups?meta=site%3Dgroups%26group%3Dcomp.lang.python.* Previous - (U)se the (R)esource, (L)uke! - messages are listed here: http://www.ddj.com/topics/pythonurl/ http://purl.org/thecliff/python/url.html (dormant) or http://groups.google.com/groups?oi=djq&as_q=+Python-URL!&as_ugroup=comp.lang.python Suggestions/corrections for next week's posting are always welcome. E-mail to should get through. To receive a new issue of this posting in e-mail each Monday morning (approximately), ask to subscribe. Mention "Python-URL!". -- The Python-URL! Team-- Dr. Dobb's Journal (http://www.ddj.com) is pleased to participate in and sponsor the "Python-URL!" project. From martin at v.loewis.de Tue Jul 20 07:16:34 2004 From: martin at v.loewis.de (=?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=) Date: Tue Jul 20 13:47:13 2004 Subject: Call for Grant Proposals Message-ID: <40fcaab1$0$27091$9b622d9e@news.freenet.de> The Python Software Foundation is seeking grant proposals for projects related to the further development of Python, Python-related technology, and educational resources. The PSF plans to issue calls for proposals regularly. Proposals should be for specific projects with a clear objective, rather than support for ongoing activities. Proposals should be brief (a few pages of text), and they should explain: a. what the objective of the project is, b. what precisely the funds are needed for, c. a delivery plan, indicating what deliverables will be provided at what time, and d. a payment plan, indicating what payments should be made at what time. Awarded grants can range up to $40,000. Proposals for this call must be submitted before October 1, 2004. Projects will start on November 1, 2004, and must be completed by October 30, 2005. Proposals should be sent to psf-grants@python.org. Kind regards, Martin v. L?wis From stuart at stuartbishop.net Tue Jul 20 12:14:14 2004 From: stuart at stuartbishop.net (Stuart Bishop) Date: Tue Jul 20 13:47:14 2004 Subject: ANN: pytz-2004b World timezone library Message-ID: <8D43523C-DA35-11D8-B7D4-000A95A06FC6@stuartbishop.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I have made a new release of pytz using the new revision of the Olsen time zone database made yesterday. The major change for this release are the emergency Argentinean timezones currently in place. pytz - World Timezone Definitions for Python ============================================ Introduction ~~~~~~~~~~~~ pytz brings the Olson tz database into Python. This library allows accurate and cross platform timezone calculations using Python 2.3 or higher. This implementation solves the issue of ambiguous times at the end of daylight savings, which you can read more about in the Python Library Reference (datetime.tzinfo). The only remaining inaccuracy is that datetime.strftime only reports the UTC offset to the nearest minute (This is probably a feature - you have to draw a line somewhere). 536 of the Olsen timezones are supported. The missing few are for Riyadh Solar Time in 1987, 1988 and 1989. As Saudi Arabia gave up trying to cope with their timezone definition, I see no reason to complicate my code further to cope with them. (I understand the intention was to set sunset to 0:00 local time, the start of the Islamic day. In the best case caused the DST offset to change daily and worst case caused the DST offset to change each instant depending on how you interpreted the ruling.) Note that if you perform date arithmetic on local times that cross DST boundaries, the results may be in an incorrect timezone (ie. subtract 1 minute from 2002-10-27 1:00 EST and you get 2002-10-27 0:59 EST instead of the correct 2002-10-27 1:59 EDT). This cannot be resolved without modifying the Python datetime implementation. However, these tzinfo classes provide a normalize() method which allows you to correct these values. Installation ~~~~~~~~~~~~ This is a standard Python distutils distribution. To install the package, run the following command as an administrative user:: python setup.py install Example & Usage ~~~~~~~~~~~~~~~ >>> from datetime import datetime, timedelta >>> from pytz import timezone >>> utc = timezone('UTC') >>> eastern = timezone('US/Eastern') >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc) >>> loc_dt = utc_dt.astimezone(eastern) >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)' >>> loc_dt.strftime(fmt) '2002-10-27 01:00:00 EST (-0500)' >>> (loc_dt - timedelta(minutes=10)).strftime(fmt) '2002-10-27 00:50:00 EST (-0500)' >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt) '2002-10-27 01:50:00 EDT (-0400)' >>> (loc_dt + timedelta(minutes=10)).strftime(fmt) '2002-10-27 01:10:00 EST (-0500)' License ~~~~~~~ BSD style license. I'm happy to relicense this code if necessary for inclusion in other open source projects. Latest Versions ~~~~~~~~~~~~~~~ This package will be updated after releases of the Olsen timezone database. The latest version can be downloaded from sourceforge_. The code that is used to generate this distribution is available in the sourceforge_ project's CVS repository. .. _sourceforge: http://sourceforge.net/projects/pytz/ Further Reading ~~~~~~~~~~~~~~~ More info than you want to know about timezones:: http://www.twinsun.com/tz/tz-link.htm Contact ~~~~~~~ Stuart Bishop - -- Stuart Bishop http://www.stuartbishop.net/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA/PB2AfqZj7rGN0oRAtzXAKCKLyKkoLjPt/ITGIFMefrIAAIbdQCfWQk/ DEPWhLICWH0hNwd9SqZUg0w= =U5U5 -----END PGP SIGNATURE----- From faassen at infrae.com Tue Jul 20 19:31:06 2004 From: faassen at infrae.com (Martijn Faassen) Date: Thu Jul 22 15:48:42 2004 Subject: Silva 1.0 final released Message-ID: <40fd56b2$0$36169$e4fe514c@news.xs4all.nl> Silva 1.0: The Structured Content Management System =================================================== July 20, 2004 - after two and a half years of development, the Silva team is happy to announce the release of Silva 1.0. Silva is an open source content management system with a focus on structured content and its reuse. It is based on the open source web application platform Zope, and the programming language Python. New in Silva 1.0 are: * Deeply integrated support for Kupu, the WYSIWYG through the web editor with support for both Mozilla and Internet Explorer. * Silva 1.0 ships with full documentation that is a Silva publication itself. When you install a new Silva root you get the option to install the documentation as well. * Other new features include image thumbnail support and image cropping support. "At ETH we operate a mass virtual hosting Silva instance hosting a few hundred sites," says Reinhard Hess, of the `central IT services`_ at the Swiss Federal Institute of Technology in Zurich (`ETH Zurich`_). "In addition to that there are a number of sites being run by independent departemental IT units across the university." ETH Zurich has been deploying Silva since 2002 - and they are also developing on the platform. "Silva is well capable to compete successfully with other web CMS products in the enterprise range - either open source or closed source. Silva was a good choice for us. Silva gives us the best cost/performance ratio even in the long term and maximum operational flexibility." The `University of Luton`_ in the UK is going online with a new Silva-backed version of their site later this week. "Silva is a very flexible tool for generating and maintaining web content," says Steve Kendall, who is managing the project. "Previously all web content had to be looked after by a small team of central staff with specialised skills, but now we have the mechanisms in place to return full ownership of the content to the faculties and departments." .. _`ETH Zurich`: http://www.ethz.ch/ .. _`central IT services`: http://www.id.ethz.ch/ .. _`University of Luton`: http://www.luton.ac.uk/ Downloads --------- You can download Silva 1.0 final here: http://www.zope.org/Members/infrae/Silva The -all.tgz ships with everything needed, including Kupu. A list of changes can be found here: http://www.zope.org/Members/infrae/Silva/HISTORY.txt About Silva ----------- Features of Silva include: * Through-the-web user interface with easy access to all features, including access keys. * Extensive documentation aimed to authors and editors, as well as for site managers, designers and system administrators. * Through-the-web structured authoring of documents using a WYSIWIG editor (kupu) or a forms-based editor. Content can be published to the web and exported as XML. Content can be reused in multiple areas of a publication using ghost objects. * Workflow and versioning support allows an author to work on a new version of a document while another version is already published online. * Separation of responsibilities between author, editor, and chief editor roles. Optional full integration with very large user sources using LDAP. Extensive group management abilities (with or without LDAP). * Resizing support for images, and extensive support to position images in document text. Images and files can be imported singly or in bulk. * Flexible customizable presentation using Zope Page Templates. Different sub sites can have different publications and designs. Virtual hosting support for sub sites. Silva extensions include: * SilvaNews - create and manage news and agenda items in Silva. RSS syndication and aggregation support. * DocMa - external server which integrates seamlessly into Silva and allows Silva publications to be exported to MS Word documents, and MS Word documents to be imported into Silva. * SilvaExternalSources - include data from external sources into documents, including CSV files, results from relational database queries or any Python script. More information about Silva can also be found here: http://www.infrae.com/products/silva More information about Infrae, the company that created Silva: http://www.infrae.com Press Contacts -------------- Martijn Faassen, Infrae, faassen at infrae.com From richardjones at optushome.com.au Wed Jul 21 03:39:44 2004 From: richardjones at optushome.com.au (Richard Jones) Date: Thu Jul 22 15:48:43 2004 Subject: SC-Track Roundup 0.7.6 - an issue tracking system Message-ID: <200407211139.44765.richardjones@optushome.com.au> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Roundup is a simple-to-use and -install issue-tracking system with command-line, web and e-mail interfaces. It is based on the winning design from Ka-Ping Yee in the Software Carpentry "Track" design competition. Roundup now has a wiki which is accepting user contributions of example modifications, trackers, etc. at: http://www.mechanicalcat.net/tech/roundup/wiki/FrontPage 0.7.6 is a bug fix release, including: - - rdbms backend full text search failure after import (sf bug 980314) - - rdbms backends not filtering correctly on link=None - - fix anydbm journal import (sf bug 983166) - - handle postgresql bug in SQL generation (sf bug 984591) - - fix dates-from-Dates (sf bug 984604) - - fix messageid generated when msgid is None for send_message (sf bug 987933) - - make user permissions check more sane (fix search page for anonymous) - - fixed RDBMS filter() for no matches from full-text search (sf bug 990778) - - fixed DateHTMLProperty for invalid date entry (sf bug 986538) - - fixed external password source example (sf bug 986601) - - document the STATIC_FILES config var - - implement the HTTP HEAD command (sf bug 992544) - - fix journal export of files to remove content from CSV files - - API clarification. Previously, the anydbm/bsddb/metakit filter() methods had required exact matches to Multilink argument lists. The RDBMS backends treated Multilink matches like all other data types - matching any of the Multilink argument list is good enough. The latter behaviour is implemented across the board now. - - fix metakit handling of filter on Link==None If you're upgrading from an older version of Roundup you *must* follow the "Software Upgrade" guidelines given in the maintenance documentation. Roundup requires python 2.1.3 or later for correct operation. To give Roundup a try, just download (see below), unpack and run:: python demo.py Source and documentation is available at the website: http://roundup.sourceforge.net/ Release Info (via download page): http://sourceforge.net/projects/roundup Mailing lists - the place to ask questions: http://sourceforge.net/mail/?group_id=31577 About Roundup ============= Roundup manages a number of issues (with flexible properties such as "description", "priority", and so on) and provides the ability to: (a) submit new issues, (b) find and edit existing issues, and (c) discuss issues with other participants. The system will facilitate communication among the participants by managing discussions and notifying interested parties when issues are edited. One of the major design goals for Roundup that it be simple to get going. Roundup is therefore usable "out of the box" with any python 2.1+ installation. It doesn't even need to be "installed" to be operational, though a disutils-based install script is provided. It comes with two issue tracker templates (a classic bug/feature tracker and a minimal skeleton) and seven database back-ends (anydbm, bsddb, bsddb3, sqlite, metakit, mysql and postgresql). -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA/clgrGisBEHG6TARArW+AJ9PZ/yo325TTtDrcgMfl2cTDI5nLgCfQCZr K+W/lxj3h/o9uW3G6TEso+I= =t5iA -----END PGP SIGNATURE----- From chris at psychofx.com Sat Jul 24 22:14:33 2004 From: chris at psychofx.com (Chris Miles) Date: Mon Jul 26 11:46:51 2004 Subject: EDDIE-Tool 0.33 Released Message-ID: <13C1A92C-DDAE-11D8-9E3E-000A95DD3D44@psychofx.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 EDDIE-Tool 0.33 has just been released. http://eddie-tool.net/ What is it ? The EDDIE-Tool is an intelligent UNIX monitoring agent written entirely in Python. It provides system, network and security monitoring features, with an extensive configuration facility for defining customized monitoring and data collection rules. What is new ? Support for two new platforms: OpenBSD and Darwin/OS X. Consider support for these platforms as beta - we still need plenty of testing, so volunteers would be great. Some other major updates are: Fine-grained HTTP timing; Configurable HTTP request timeouts (using Python 2.3+); Directive checktime parameter to specify exact times of day or days of week to perform tests; MySQL monitoring; and SNMP support for 64-bit counters. Why is it interesting to Python users ? Besides system and network administrators, Python users may find EDDIE-Tool interesting as it is an example of a threaded, multi-platform software package, providing easy access to system statistics and using Python's power to offer a dynamic and programmable rules engine. Regards, Chris - -- Chris Miles http://chrismiles.info/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFBAsMxzitzBnMzNcIRAvb0AKCTvNqLzYLdRar30/MmZBHd6Op+2gCgigsC ZgwgTv8EbM/6k4kHVFoax4M= =ySlU -----END PGP SIGNATURE----- From gward at python.net Sun Jul 25 01:32:35 2004 From: gward at python.net (Greg Ward) Date: Mon Jul 26 11:46:51 2004 Subject: ANNOUNCE: Optik 1.5a1 released Message-ID: <20040724233235.GA20060@cthulhu.gerg.ca> Optik 1.5a1 =========== Optik is a powerful, flexible, extensible, easy-to-use command-line parsing library for Python. Using Optik, you can add intelligent, sophisticated handling of command-line options to your scripts with very little overhead. Here's an example of using Optik to add some command-line options to a simple script: from optik import OptionParser [...] parser = OptionParser() parser.add_option("-f", "--file", dest="filename", help="write report to FILE", metavar="FILE") parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=True, help="don't print status messages to stdout") (options, args) = parser.parse_args() With these few lines of code, users of your script can now do the "usual thing" on the command-line: -f outfile --quiet -qfoutfile --file=outfile -q --quiet --file outfile all of which result in the 'options' object looking like this: options.filename == "outfile" options.verbose == 0 Even niftier, users can run one of -h --help and Optik will print out a brief summary of your script's options: usage: [options] options: -h, --help show this help message and exit -f FILE, --file=FILE write report to FILE -q, --quiet don't print status messages to stdout That's just a taste of the flexibility Optik gives you in parsing your command-line. See the documentation included in the package for details. AUTHOR, COPYRIGHT, AVAILABILITY ------------------------------- Optik was written by Greg Ward Optik 1.5a1 can be downloaded from: http://optik.sourceforge.net/Optik-1.5a1.tar.gz http://www.gerg.ca/software/optik/Optik-1.5a1.tar.gz More information can be found at: http://optik.sourceforge.net/ http://www.gerg.ca/software/optik/ Copyright (c) 2001-2004 Gregory P. Ward. All rights reserved. CHANGES IN OPTIK 1.5 (since 1.4.1) ---------------------------------- * Optik now requires Python 2.2 or later. * Add expansion of default values in help text: the string "%default" in an option's help string is expanded to str() of that option's default value, or "none" if no default value. * SF bug #955889: option default values that happen to be strings are now processed in the same way as values from the command line; this allows generation of nicer help when using custom types. Can be disabled with parser.set_process_default_values(False). * SF bug #960515: don't crash when generating help for callback options that specify 'type', but not 'dest' or 'metavar'. * SF feature #815264: change the default help format for short options that take an argument from e.g. "-oARG" to "-o ARG"; add set_short_opt_delimiter() and set_long_opt_delimiter() methods to HelpFormatter to allow (slight) customization of the formatting. * SF patch #736940: internationalize Optik: all built-in user- targeted literal strings are passed through gettext.gettext(). Also added po/ directory for message catalog and translations, so that Optik-based applications have a single place to go for translations of Optik's built-in messags. Include translations for Danish and German (thanks to Frederik S. Olesen and Martin v. L?wis respectively), and partial translations for French (by me). * SF bug #878453 (Python): respect $COLUMNS environment variable for wrapping help output. * SF feature #964317: allow type objects to specify option types; allow "str" as an alias for "string". * SF feature #988122: expand "%prog" in the 'description' passed to OptionParser, just like in the 'usage' and 'version' strings. (This is *not* done in the 'description' passed to OptionGroup.) * Added HTML-formatted docs to the source distribution (in addition to the reStructuredText source files). * Added three new examples: custom_source.py, custom_type.py, and no_help.py. -- Greg Ward http://www.gerg.ca/ I repeat myself when under stress I repeat myself when under stress I repeat--- From theller at python.net Fri Jul 23 20:22:15 2004 From: theller at python.net (Thomas Heller) Date: Mon Jul 26 11:48:20 2004 Subject: ctypes 0.9.0 released Message-ID: ctypes 0.9.0 released ===================== 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 simpole and complicated C data types transparently from Python - in other words: wrap libraries in pure Python. ctypes runs on Windows, MacOS X, Linux, Solaris, FreeBSD. It may also run on other systems, provided that libffi supports this platform. Changes in 0.9.0 ctypes now requires Python 2.3 or higher, Python 2.2 is no longer supported. The big change is that ctypes now uses the same code base on all platforms, many, many bug should have been fixed this way on non-windows systems. The destribution now contains libffi, no need to find, download, build and install a compatible version. There have been lots of improvements and additions both to ctypes itself, and to the ctypes.com windows framework, too many to remember now and document here. Most prominent additions to ctypes.com are: A ctypes.com.client module supporting dynamic dispatch An internet explorer toolband sample Many improvements to the stoplite sample Detailed changelogs are in CVS (well, sometimes I forget to update them): Future plans The ultimate purpose of the 0.9 release series is to shake out the remaining bugs, especially on platforms I have no access to, and to target a rock stable ctypes 1.0 release. When ctypes 1.0 is released, the com framework will be split off into a separate framework named 'comtypes'. Download Downloads are available in the sourceforge files section Separate source distributions are available for windows and non-windows systems. Please use the .zip file for Windows (it contains the ctypes.com framework), and use the .tar.gz file for non-Windows systems (it contains the complete cross-platform libffi sources). Binary windows installers, which contain compiled extension modules, are also available, be sure to download the correct one for the Python version you are using. Homepage Enjoy, Thomas From theller at python.net Fri Jul 23 21:00:21 2004 From: theller at python.net (Thomas Heller) Date: Mon Jul 26 11:48:21 2004 Subject: py2exe 0.5.3 released Message-ID: <1xj25z22.fsf@python.net> **py2exe 0.5.3** released =================================== py2exe is a Python distutils extension which converts python scripts into executable windows programs, able to run without requiring a python installation. Console and Windows (GUI) applications, windows NT services, exe and dll COM servers are supported. This release fixes a few bugs in the 0.5.2 version: * The windows installer has been fixed to avoid problems when doing non-admin installs. Thanks to Harald A. Massa for testing. * Applied a patch from Mark Hammond to correctly manage the thread state in dll COM servers. * Add a line feed to the script's code, to avoid problems byte-compiling it when it contains trailing white space. * Fix a problem with Python 2.4 when no extension modules are needed - py2exe didn't track down that python24.dll is needed. py2exe 0.5.2 is a bugfix release. * Print a message explaining what's going on whan a service exe is started from the command line. * py2exe did build invalid version resources, they didn't show up correctly on Win98 at least. Patch by Roger Upole. * Fix a buffer overflow in the C code. Patch by Ralf Sieger, closes bug item #893310 * py2exe now (again) has a builtin list of dlls which should never be distributed * Patch sys.winver in the distributed pythonXY.dll, so that there is no possibility of conflicts with existing distributions and the registry keys found there. Patch by Mark Hammond. * Fix several problems when an exception in a 'windows' exe occurs. * Include a workaround for unbounded recursion in modulefinder when Jason Jorendorff's path module is installed See also http://python.org/sf/876278 * Fix problems when package_dir is set in the setup script, see http://tinyurl.com/yuc5l * py2exe can now be built from the sources with mingw32 * py2exe does now handle precompile .pyo and .pyc files (patch by Shane Holloway) * Fix a problem when the exe's directory contains single quotes * Register service dependencies when installing a service * Return an exit code of 255 from the exe when there's an uncatched exception running the main script. * Print a warning instead of failing to build with weird version numbers. Suggested by Cory Dodt. Homepage: Download from the usual location: Enjoy, Thomas From nas at mems-exchange.org Fri Jul 23 23:08:11 2004 From: nas at mems-exchange.org (Neil Schemenauer) Date: Mon Jul 26 11:48:21 2004 Subject: [ANNOUNCE] Durus object database Message-ID: <20040723210811.GA10633@mems-exchange.org> I am happy to announce the first public release of the Durus object database. Durus offers an easy way to maintain a consistent persistent collection of Python object instances used by one or more processes. For more information, see the web site: http://www.mems-exchange.org/software/durus/ Although this release is numbered 0.1, we believe Durus is stable and reliable. We have been using it seriously for a some months now. Please give it a try and let us know what you think. Note that Durus does not support multi-threaded database access. If that is a requirement for your application, we recommend using the Zope Object Database (ZODB) instead. From webmaster at keyphrene.com Sun Jul 25 14:26:38 2004 From: webmaster at keyphrene.com (webmaster@keyphrene.com) Date: Mon Jul 26 11:48:22 2004 Subject: ANN: Naja 1.0.5 is now available Message-ID: <4103a6ec$0$1892$636a15ce@news.free.fr> Naja is a download manager and a website grabber written in Python/wxPython.You can add some plugins (newsreader, FTP client,WebDAV client) and take control of your downloads from your office. Naja supports proxy(HTTP, HTTPS, FTP, SOCKS v4a, SOCKS v5), and use some authentication methods. The downloading maybe achieved by splitting the file being downloaded into several parts and downloading these parts at the same time (HTTP, HTTPS, FTP). Donwload speeds are increased by downloading the file from the mirrors sites, when the sites propose it. Others features: Csv filter Cheksums (CRC32, MD2, MD4, MD5, SHA, SHA1, MDC2, RMD160) Crypt (Only for the eXtended version) and Decrypt (AES, DES, 3DES ...) newsreader, newsposter (uue, yEnc) CGI & WebDAV Server Web Interface basic and digest authentication for client and server Compress and decompress (zip, tar.gz, tar.bz2) Picture viewer Naja is available for download from the Keyphrene web site: http://www.keyphrene.com/products/naja From stuart at stuartbishop.net Sun Jul 25 22:42:24 2004 From: stuart at stuartbishop.net (Stuart Bishop) Date: Mon Jul 26 11:48:23 2004 Subject: ANN: pytz 2004b.2 - Python world timezone library Message-ID: <22796F11-DE7B-11D8-9869-000A95A06FC6@stuartbishop.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Changes for this release: - Improved localtime handling, and added a localize() method enabling correct creation of local times. pytz - World Timezone Definitions for Python ============================================ :Author: Stuart Bishop :Version: $Revision: 1.10 $ Introduction ~~~~~~~~~~~~ pytz brings the Olson tz database into Python. This library allows accurate and cross platform timezone calculations using Python 2.3 or higher. It also solves the issue of ambiguous times at the end of daylight savings, which you can read more about in the Python Library Reference (datetime.tzinfo). 546 of the Olsen timezones are supported [*]_. Note that if you perform date arithmetic on local times that cross DST boundaries, the results may be in an incorrect timezone (ie. subtract 1 minute from 2002-10-27 1:00 EST and you get 2002-10-27 0:59 EST instead of the correct 2002-10-27 1:59 EDT). This cannot be resolved without modifying the Python datetime implementation. However, these tzinfo classes provide a normalize() method which allows you to correct these values. Installation ~~~~~~~~~~~~ This is a standard Python distutils distribution. To install the package, run the following command as an administrative user:: python setup.py install Example & Usage ~~~~~~~~~~~~~~~ >>> from datetime import datetime, timedelta >>> from pytz import timezone >>> utc = timezone('UTC') >>> eastern = timezone('US/Eastern') >>> fmt = '%Y-%m-%d %H:%M:%S %Z%z' The preferred way of dealing with times is to always work in UTC, converting to localtime only when generating output to be read by humans. >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc) >>> loc_dt = utc_dt.astimezone(eastern) >>> loc_dt.strftime(fmt) '2002-10-27 01:00:00 EST-0500' This library also allows you to do date arithmetic using local times, although it is more complicated than working in UTC as you need to use the `normalize` method to handle daylight savings time and other timezone transitions. In this example, `loc_dt` is set to the instant when daylight savings time ends in the US/Eastern timezone. >>> before = loc_dt - timedelta(minutes=10) >>> before.strftime(fmt) '2002-10-27 00:50:00 EST-0500' >>> eastern.normalize(before).strftime(fmt) '2002-10-27 01:50:00 EDT-0400' >>> after = eastern.normalize(before + timedelta(minutes=20)) >>> after.strftime(fmt) '2002-10-27 01:10:00 EST-0500' Creating localtimes is also tricky, and the reason why working with local times is not recommended. Unfortunately, you cannot just pass a 'tzinfo' argument when constructing a datetime (see the next section for more details) >>> dt = datetime(2002, 10, 27, 1, 30, 0) >>> dt1 = eastern.localize(dt, is_dst=True) >>> dt1.strftime(fmt) '2002-10-27 01:30:00 EDT-0400' >>> dt2 = eastern.localize(dt, is_dst=False) >>> dt2.strftime(fmt) '2002-10-27 01:30:00 EST-0500' Problems with Localtime ~~~~~~~~~~~~~~~~~~~~~~~ The major problem we have to deal with is that certain datetimes may occur twice in a year. For example, in the US/Eastern timezone on the last Sunday morning in October, the following sequence happens: - 01:00 EDT occurs - 1 hour later, instead of 2:00am the clock is turned back 1 hour and 01:00 happens again (this time 01:00 EST) In fact, every instant between 01:00 and 02:00 occurs twice. This means that if you try and create a time in the US/Eastern timezone using the standard datetime syntax, there is no way to specify if you meant before of after the end-of-daylight-savings-time transition. >>> loc_dt = datetime(2002, 10, 27, 1, 30, 00, tzinfo=eastern) >>> loc_dt.strftime(fmt) '2002-10-27 01:30:00 EST-0500' As you can see, the system has chosen one for you and there is a 50% chance of it being out by one hour. For some applications, this does not matter. However, if you are trying to schedule meetings with people in different timezones or analyze log files it is not acceptable. The best and simplest solution is to stick with using UTC. If you insist on working with local times, this library provides a facility for constructing them almost unambiguously >>> loc_dt = datetime(2002, 10, 27, 1, 30, 00) >>> est_dt = eastern.localize(loc_dt, is_dst=True) >>> edt_dt = eastern.localize(loc_dt, is_dst=False) >>> print est_dt.strftime(fmt), '/', edt_dt.strftime(fmt) 2002-10-27 01:30:00 EDT-0400 / 2002-10-27 01:30:00 EST-0500 Note that although this handles many cases, it is still not possible to handle all. In cases where countries change their timezone definitions, cases like the end-of-daylight-savings-time occur with no way of resolving the ambiguity. For example, in 1915 Warsaw switched from Warsaw time to Central European time. So at the stroke of midnight on August 4th 1915 the clocks were wound back 24 minutes creating a ambiguous time period that cannot be specified without referring to the timezone abbreviation or the actual UTC offset. What is UTC ~~~~~~~~~~~ `UTC` is Universal Time, formerly known as Greenwich Mean Time or GMT. All other timezones are given as offsets from UTC. No daylight savings time occurs in UTC, making it a useful timezone to perform date arithmetic without worrying about the confusion and ambiguities caused by daylight savings time transitions, your country changing its timezone, or mobile computers that move roam through multiple timezones. License ~~~~~~~ BSD style license. I'm happy to relicense this code if necessary for inclusion in other open source projects. Latest Versions ~~~~~~~~~~~~~~~ This package will be updated after releases of the Olsen timezone database. The latest version can be downloaded from Sourceforge_. The code that is used to generate this distribution is available in the Sourceforge_ project's CVS repository. .. _Sourceforge: http://sourceforge.net/projects/pytz/ Issues & Limitations ~~~~~~~~~~~~~~~~~~~~ - - Offsets from UTC are rounded to the nearest whole minute, so timezones such as Europe/Amsterdam pre 1937 will be up to 30 seconds out. This is a limitation of the Python datetime library. Further Reading ~~~~~~~~~~~~~~~ More info than you want to know about timezones:: http://www.twinsun.com/tz/tz-link.htm Contact ~~~~~~~ Stuart Bishop .. [*] The missing few are for Riyadh Solar Time in 1987, 1988 and 1989. As Saudi Arabia gave up trying to cope with their timezone definition, I see no reason to complicate my code further to cope with them. (I understand the intention was to set sunset to 0:00 local time, the start of the Islamic day. In the best case caused the DST offset to change daily and worst case caused the DST offset to change each instant depending on how you interpreted the ruling.) - -- Stuart Bishop http://www.stuartbishop.net/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFBBBsxAfqZj7rGN0oRAsb5AJsHk/7ZIQFXbFFXedttcs/H5wEGiACdE5DY iY3X1ddjuEAbeWc6OlEQGYo= =gMyS -----END PGP SIGNATURE----- From python-url at phaseit.net Mon Jul 26 14:01:35 2004 From: python-url at phaseit.net (Peter Otten) Date: Wed Jul 28 20:02:47 2004 Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Jul 26) Message-ID: QOTW: "With only one historian, there are no errors, everything written becomes fact." - Raymond Hettinger about Brett Cannon as the author of the python-dev summary "[C]ode runs in the scope it was *defined* in, not the scope it is invoked in." - Jp Calderone Dan Bishop posts a string-to-date conversion oneliner for Martin Bless. http://groups.google.com/groups?selm=ad052e5c.0407201114.71ba95a0%40posting.google.com When Chris asked for a translation of his QBasic drawing code into Python, I was about to answer "you need a little more boilerplate". But then I learned about turtle module. http://groups.google.com/groups?threadm=Xns952E8286F18Fduncanrcpcouk%40127.0.0.1 Marduk wants string formatting to work with arbitrary sequences instead of tuples. It should not be required that all items in the sequence are consumed by the format string. Hans Nowak proposes a nice try-and-error approach. http://groups.google.com/groups?threadm=40FF1A61.9050408%40zephyrfalcon.org [Off topic] Watch gumshoes Quinlan, Rowe, and Andreas uncover the evil *** (I won't spoil it) haunting newbie Fred's Python experience. http://groups.google.com/groups?threadm=urqsf0lvs9eq64b4ruv5rpsa57ddl35gb8%404ax.com&rnum=1 Dave Reed has written an article about "Rapid Application Development with Python and Glade". http://www.linuxjournal.com/article.php?sid=7421 Istvan Albert describes how to use standard Python classes with Zope. http://groups.google.com/groups?selm=dY6dnXGNQOQMvJzcRVn-og%40giganews.com Steve wants to extract numbers embedded in a text following a certain pattern. A job for regular expressions? If you follow c.l.py, you will probably have noted that everything that can be done with regexps can also be achieved with Paul McGuire's pyparsing. Time to give it a try. http://groups.google.com/groups?threadm=e3805b94.0407240932.6d43a16b%40posting.google.com http://pyparsing.sourceforge.net "It really shouldn't be considered 'amazing' that people donate, I think... it just makes sense.", as Peter Hansen puts it. Thanks to a large number of donors, the Python Software Foundation is able to support Python-related projects. http://groups.google.com/groups?threadm=40fcaa90%240%2427091%249b622d9e%40news.freenet.de http://www.python.org/psf/call-2004.html http://www.python.org/psf/donations.html ======================================================================== Everything Python-related you want is probably one or two clicks away in these pages: Python.org's Python Language Website is the traditional center of Pythonia http://www.python.org Notice especially the master FAQ http://www.python.org/doc/FAQ.html PythonWare complements the digest you're reading with the marvelous daily python url http://www.pythonware.com/daily Mygale is a news-gathering webcrawler that specializes in (new) World-Wide Web articles related to Python. http://www.awaretek.com/nowak/mygale.html While cosmetically similar, Mygale and the Daily Python-URL are utterly different in their technologies and generally in their results. comp.lang.python.announce announces new Python software. Be sure to scan this newsgroup weekly. http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python.announce Brett Cannon continues the marvelous tradition established by Andrew Kuchling and Michael Hudson of intelligently summarizing action on the python-dev mailing list once every other week. http://www.python.org/dev/summary/ The Python Package Index catalogues packages. http://www.python.org/pypi/ The somewhat older Vaults of Parnassus ambitiously collects references to all sorts of Python resources. http://www.vex.net/~x/parnassus/ Much of Python's real work takes place on Special-Interest Group mailing lists http://www.python.org/sigs/ The Python Business Forum "further[s] the interests of companies that base their business on ... Python." http://www.python-in-business.org The Python Software Foundation (PSF) has replaced the Python Consortium as an independent nexus of activity. It has official responsibility for Python's development and maintenance. http://www.python.org/psf/ Among the ways you can support PSF is with a donation. http://www.python.org/psf/donate.html Cetus collects Python hyperlinks. http://www.cetus-links.org/oo_python.html Python FAQTS http://python.faqts.com/ The Cookbook is a collaborative effort to capture useful and interesting recipes. http://aspn.activestate.com/ASPN/Cookbook/Python Among several Python-oriented RSS/RDF feeds available are http://www.python.org/channews.rdf http://bootleg-rss.g-blog.net/pythonware_com_daily.pcgi http://python.de/backend.php For more, see http://www.syndic8.com/feedlist.php?ShowMatch=python&ShowStatus=all The old Python "To-Do List" now lives principally in a SourceForge reincarnation. http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse http://python.sourceforge.net/peps/pep-0042.html The online Python Journal is posted at pythonjournal.cognizor.com. editor@pythonjournal.com and editor@pythonjournal.cognizor.com welcome submission of material that helps people's understanding of Python use, and offer Web presentation of your work. *Py: the Journal of the Python Language* http://www.pyzine.com Archive probing tricks of the trade: http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python&num=100 http://groups.google.com/groups?meta=site%3Dgroups%26group%3Dcomp.lang.python.* Previous - (U)se the (R)esource, (L)uke! - messages are listed here: http://www.ddj.com/topics/pythonurl/ http://purl.org/thecliff/python/url.html (dormant) or http://groups.google.com/groups?oi=djq&as_q=+Python-URL!&as_ugroup=comp.lang.python Suggestions/corrections for next week's posting are always welcome. E-mail to should get through. To receive a new issue of this posting in e-mail each Monday morning (approximately), ask to subscribe. Mention "Python-URL!". -- The Python-URL! Team-- Dr. Dobb's Journal (http://www.ddj.com) is pleased to participate in and sponsor the "Python-URL!" project. From max at alcyone.com Mon Jul 26 22:01:02 2004 From: max at alcyone.com (Erik Max Francis) Date: Wed Jul 28 20:02:48 2004 Subject: ANN: googlism.py 1.0 -- Python access to googlism.com Message-ID: <410562FE.30E15617@alcyone.com> Summary Command line and Python module access to googlism.com. Overview The googlism.py module provides both Python module and command line access to googlism.com, the Web site which sifts through the results of the popular search engine Google and reports information about individual keywords. Getting the software The current version of googlism is 1.0. The latest version of the software is available in a tarball here: http://www.alcyone.com/software/googlism/googlism-latest.tar.gz. The official URL for this Web site is http://www.alcyone.com/software/googlism/. Requirements googlism.py is intended to be used with Python 2.2 or later. License This code is released under the GPL. -- __ Erik Max Francis && max@alcyone.com && http://www.alcyone.com/max/ / \ San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis \__/ I grow with each breath that I take / I cherish my freedom -- Chante Moore From premshree_python at yahoo.co.in Tue Jul 27 17:18:58 2004 From: premshree_python at yahoo.co.in (=?iso-8859-1?q?Premshree=20Pillai?=) Date: Wed Jul 28 20:03:33 2004 Subject: SMS to LJ Gateway in Python Message-ID: <20040727151858.44341.qmail@web8308.mail.in.yahoo.com> Hello, I wrote an SMS to LiveJournal gateway using which you can post to your LiveJournal by sending an SMS. The source is available at http://sourceforge.net/project/showfiles.php?group_id=107524&package_id=125003 There are certain issues ... and I am working on it. -Premshree Pillai http://www.livejournal.com/~premshree/ ===== -Premshree [http://www.qiksearch.com/] ________________________________________________________________________ Yahoo! India Matrimony: Find your life partner online Go to: http://yahoo.shaadi.com/india-matrimony From uche.ogbuji at fourthought.com Wed Jul 28 14:59:01 2004 From: uche.ogbuji at fourthought.com (Uche Ogbuji) Date: Wed Jul 28 20:03:34 2004 Subject: ANN: Scimitar 0.5.0 Message-ID: <1091019541.19713.104.camel@borgia> http://uche.ogbuji.net/tech/4Suite/scimitar Scimitar is an implementation of ISO Schematron that compiles a Schematron schema into a Python validator script, making it a faster and somewhat more flexible approach than the usual XSLT implementations. http://www.ascc.net/xml/resource/schematron/schematron.html Schematron is an XML schema language in which you express a set of rules that the document must meet, rather than expressing a full grammar for the XML vocabulary (which is the more common approach to XML schemata). It is by far the most flexible XML schema language available. Scimitar support all of the Schematron 1.5 subset except for keys. See the TODO file for gaps in Scimitar functionality and convenience, which are being worked on. Scimitar is open source, provided under the 4Suite variant of the Apache license. The compiler program runs standalone on Python 2.2 or more recent, although if you are using an earlier version than 2,3, you must also install Optik 1.4.1 or more recent. In addition to the above requirements the generated validators require 4Suite 1.0a3 or more recent (really only tested with latest 4Suite CVS). -- Uche Ogbuji Fourthought, Inc. http://uche.ogbuji.net http://4Suite.org http://fourthought.com Perspective on XML: Steady steps spell success with Google - http://www.adtmag.com/article.asp?id=9663 Use XML namespaces with care - http://www-106.ibm.com/developerworks/xml/library/x-namcar.html Managing XML libraries - http://www.adtmag.com/article.asp?id=9160 Commentary on "Objects. Encapsulation. XML?" - http://www.adtmag.com/article.asp?id=9090 Harold's Effective XML - http://www.ibm.com/developerworks/xml/library/x-think25.html A survey of XML standards - http://www-106.ibm.com/developerworks/xml/library/x-stand4/ From brian at sweetapp.com Wed Jul 28 18:54:00 2004 From: brian at sweetapp.com (Brian Quinlan) Date: Wed Jul 28 20:03:35 2004 Subject: ANN: Vancouver Python Workshop - Open keynote address and reception In-Reply-To: <40EC13B8.4010509@sweetapp.com> References: <40CF1521.5040901@sweetapp.com> <40D5D59A.4060004@sweetapp.com> <40D86489.5060604@sweetapp.com> <40DC539D.2060206@sweetapp.com> <40E024D5.9090906@sweetapp.com> <40E2E20D.2080001@sweetapp.com> <40EC13B8.4010509@sweetapp.com> Message-ID: <4107DA28.10309@sweetapp.com> The Vancouver Python Conference is pleased to announce that the conference's keynote addresses will be open to the public. Guido van Rossum (Python's creator), Jon Udell (prolific author and analyst) and Bram Cohen (creator of BitTorrent) will be speaking. Admission will be done on a first-come basis and is free of change. After the keynote, there will be a reception that is also open to the public. Admission is CDN$20/person and will be done on a first-come basis. Exact cash payment can be made before the keynote or directly at the reception. The reception will only include snacks so participants are strongly advised to eat ahead of time. If you have any questions, please contact: brian@sweetapp.com Vancouver Python Conference website: http://www.vanpyz.org/conference/ When ==== Keynote: July 31st 5:00pm to 6:30pm Registration begins at 4:00pm Reception: July 31st 8:00pm to 11:00pm Registration begins at 8:00pm Where ===== Keynote addresses: Simon Fraser University Harbour Center Main Concourse, Room 1900 555 West Hastings Street Vancouver http://www.harbour.sfu.ca/ Reception: Streamworks 375 Water Street, Vancouver http://www.steamworks.com/ Who === Guido van Rossum is the inventor of Python, an increasingly popular language for the creation of open source and commercial programs. Guido has managed the growth and development of Python for more than a decade and in 2002 was given the Free Software Foundation Award. In 1999 he was given Dr.Dobb's 1999 Excellence in Programming Award. Jon Udell is an author, information architect, software developer and groupware evangelist. He has been an independent consultant, was BYTE Magazine's editor-at-large, executive editor and Web maven, and long ago developed business information products for Lotus. In June 2002 he joined InfoWorld as lead analyst. He also writes a monthly column for the O'Reilly Network. Bram Cohen is the creator of BitTorrent, a revolutionary technology for distributing files over the Internet. BitTorrent has millions of users and is used to transfer millions of gigabytes of data each month. He is the organizer of CodeCon, a technical conference for peer to peer technologies. He is also a respected writer, juggler and creator of original origami. Cheers, Brian From bac at OCF.Berkeley.EDU Thu Jul 29 02:17:30 2004 From: bac at OCF.Berkeley.EDU (Brett Cannon) Date: Thu Jul 29 03:22:50 2004 Subject: python-dev Summary for 2004-07-01 through 2004-07-15 Message-ID: <4108421A.2000604@ocf.berkeley.edu> python-dev Summary for 2004-07-01 through 2004-07-15 ++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from July 01, 2004 through July 15, 2004. It is intended to inform the wider Python community of on-going developments on the list. To comment on anything mentioned here, just post to `comp.lang.python`_ (or email python-list@python.org which is a gateway to the newsgroup) 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 forty-forth summary written by Brett Cannon (wished he could be at OSCON to see Guido throw a pie). To contact me, please send email to brett at python.org ; I do not have the time to keep up on comp.lang.python and thus do not always catch follow-ups posted there. 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; it's simple and is accepted for `PEP markup`_ and gives some perks for the HTML output. 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`_. .. _PEP Markup: 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 looking up any documentation on new code; otherwise use the current documentation as found at http://docs.python.org/ . PEPs (Python Enhancement Proposals) are located at http://www.python.org/peps/ . To view files in the Python CVS online, go to http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/ . Reported bugs and suggested patches can be found at the SourceForge_ project page. The `Python Software Foundation`_ is the non-profit organization that holds the intellectual property for Python. It also tries to forward the development and use of Python. But the PSF_ cannot do this without donations. You can make a donation at http://python.org/psf/donations.html . Every penny helps so even a small donation (you can donate through PayPal or by check) helps. .. _python-dev: http://www.python.org/dev/ .. _SourceForge: http://sourceforge.net/tracker/?group_id=5470 .. _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 .. _PSF: .. _Python Software Foundation: http://python.org/psf/ .. contents:: .. _last summary: http://www.python.org/dev/summary/2004-07-01_2004-07-15.html .. _original text file: http://www.python.org/dev/summary/2004-07-01_2004-07-15.ht Summary Announcements ===================== I don't think my informal editors on python-dev often enough for their help. In case you didn't know, I send a rough draft (read: first draft since I **hate** proof-reading) to python-dev before a summary out for general consumption to make sure I didn't totally get something wrong. Luckily I tend not to screw stuff up that badly and it ends up being little grammatical errors here and there. But if it wasn't for them the summaries would not be the level of quality that they are (read: wouldn't seem like they are written by some grad student with impeccable grammar but instead as if they are written by some grad student with decent grammar =). Anyway, I just felt like I should give a public thanks to everyone who has ever sent me a fix. In case you didn't know, Python 2.4a1 was released in early July. If you have not already please `download `__ it and run the `regression test suite `__. And it looks like Unicode will finally work in the Summaries! Thanks for that goes to David Goodger for making that happen. Summaries ========= ------------------ 2.4a1 out the door ------------------ Thanks to Anthony Baxter, `Python 2.4a1`_ went out the door in early July. If you have not downloaded it and run the regression test suite, please do (see the stdlib docs on the 'test' pacakge on how to run the tests and please check if you can that any failures you got were not already posted and possibly fixed in CVS). .. _Python 2.4a1: http://www.python.org/2.4/ Contributing threads: - `2.4a1 `__ - `RELEASED Python 2.4, alpha 1 `__ -------------------------------- MSI installer on Windows for 2.4 -------------------------------- Some discussion on Martin v. L?wis' MSI installer code took place on the list. It seemed like Martin's installer was good and just needed some docs. Contributing threads: - `VC 7.1 maintenance? `__ - `Windows installer for 2.4? `__ --------------------------------------------------------------------------------- Decimal is in the stdlib with defaults for people who don't have a "bot" nickname --------------------------------------------------------------------------------- Since the Decimal package went in at the beginning of July, most of the discussions about Decimal revolved around making it easy to use out of the box for normal folk; "practicality beats purity". First discussion was over invalid constructor arguments. Originally if you tried something like ``Decimal("Raymond")``, it would return NaN. Obviously that ain't cool. Turned out to be a misinterpretation of the IBM spec that Decimal is based on. In the doc an exception being "signaled" is the same as it being raised in Python. So that got clarified and now raises an exception. From there a discussion of what signals should be on by default ensued. Michael Chermside sparked it with his list of what he thought would work. Some other people posted theirs and all of them coagulated into a final list. Those defaults have been added to CVS and will be available in 2.4a2 . Contributing threads: - `decimal API `__ - `decimal.py signals & traps `__ --------------------------------------------------------- The second Python Bug Day stomped out some of the buggers --------------------------------------------------------- AM Kuchling organized another Python Bug Day on July 10. A couple of people, including yours truly, showed up on #python-dev and managed to close a bunch of patches and bugs; 18 and 15 of them to be exact. Thanks to all that helped out, it was fun. The next one is tentatively scheduled for August 7th. Contributing threads: - `Python Bug day this Saturday `__ - `Bug day outcome `__ ---------------------------------- file()? open()? Paper? Plastic? ---------------------------------- Guido had noticed someone had committed a patch that changed open() to file(). While some of us thought that using the file type's factory constructor was the proper way to open files, Guido set us straight. Turns out he wants open() to be used for opening files. Part of the reason is that open() might at some point develop the abilities to open other things such as URLs (think ``open`` on OS X). Contributing threads: - `file() or open()? `__ --------------------------------------------------------------------------------------------- What happens when you try to enter a new key in a dict that has another key considered equal? --------------------------------------------------------------------------------------------- Michael Chermside wondered the same thing. Tim Peters answered. Turns out to be undefined, but currently implemented as to keep the original key and not the new key. Contributing threads: - `Equal but different keys in dicts `__ ------------------------------------------------------------------------------------- New macro that decrefs and sets to NULL a value, all while spinning plates on sticks! ------------------------------------------------------------------------------------- Jim Fulton added a new macro named Py_CLEAR() that takes in a variable, Py_DECREFs it, and then sets it to NULL. The common use case is a field in a struct that can hold a PyObject but not always which is set to NULL when it doesn't. It is in no way meant to signify the PyObject should be garbage collected immediately, just that the current variable no longer holds a reference to anything. Contributing threads: - `Proposal: C API Macro to decref and set to NULL `__ -------------------------------------- Trying out tagged integers in the core -------------------------------------- Result: can be faster, but people don't want the added complexity (and Guido had a bad experience while developing the ABC language). For those of you who don't know what tagged integers are, imagine all PyObjects being either an object or integer based on whether certain bits were flipped. This has the perk of saving space and not having to do a memory fetch to get to the int value in an int object. Problem is you now have to check constantly whether a PyObject is really a pointer or a tagged integer. Contributing threads: - `Tagged integers `__ ------------------------------------------------------ You are not getting proper tail recursion optimization ------------------------------------------------------ If you know what proper tail recursion is, skip this paragraph. Still there? OK, on with the lesson. Proper tail recursion is when a recursive call is made in which the callee does not need to return to the caller. Think of a 'return' statement that makes a recursive function call only; you don't *have* to return through the call chain since you just want that return statement to get to the first point where you are going to perform calculations on it. So if you have a recursive 'return' statement you can skip creating a bunch of frames that stick around by just having each subsequent tail recursive call just return to the beginning of the recursion. Confused yet? Use Scheme and you will know what I am talking about (this stuff is actually *required* by the Scheme specification). I could explain it using continuations, but chances are more people know about tail recursion than continuations so I am not even go to bother melting your brains with continuations. =) A patch to add proper tail recursion optimization was proposed, but Guido shot it down very strongly. Guido has spoken and is not about to change his mind. If you want to read the **long** thread on why then go ahead. Basically, though, Guido said that if you are writing recursive code that is hitting the recursion limit you should probably change your algorithm. There was also issues with how to handle tracebacks but that wasn't as entertaining. =) Contributing threads: - `Proper tail recursion `__ From karl.lindekugel at gmail.com Wed Jul 28 20:18:51 2004 From: karl.lindekugel at gmail.com (Karl Lindekugel) Date: Thu Jul 29 03:23:10 2004 Subject: Ann: PyGT 0.01 and PyMenu 0.01 Message-ID: <2815dea10407281118467f9a88@mail.gmail.com> Initial (Alpha) releases of two new modules: PyGT - Python Grid Toolkit A framework for developing, deploying, and managing grid systems using python modules. Curently very alpha, releasing to gauge public interest in project. GPL PyMenu - Python Menu Toolkit An easy-to-use API for making quick curses menus in python. Alpha, LGPL Both of these projects can be found at http://www.karllindekugel.com/ From brojohan at hotmail.com Wed Jul 28 22:01:01 2004 From: brojohan at hotmail.com (Bror Johansson) Date: Thu Jul 29 03:23:11 2004 Subject: IronPython 0.6 Message-ID: <2mqevtFq512bU1@uni-berlin.de> Available on http://ironpython.com/ /BJ From michael at stroeder.com Thu Jul 29 01:49:51 2004 From: michael at stroeder.com (=?ISO-8859-1?Q?Michael_Str=F6der?=) Date: Thu Jul 29 03:23:12 2004 Subject: ANN: python-ldap-2.0.1 Message-ID: <41083B9F.5060205@stroeder.com> 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.2 2004-07-29 Changes since 2.0.1: Modules: * Fixed detecting appropriate OpenLDAP libs version for determining whether ldap_whoami_s() is available or not. This fixes build problems with OpenLDAP libs 2.1.0 up to 2.1.12. From brett at python.org Thu Jul 29 20:05:57 2004 From: brett at python.org (Brett C.) Date: Mon Aug 2 02:34:58 2004 Subject: python-dev Summary for 2004-07-01 through 2004-07-15 References: Message-ID: <8ab0589d.0407291005.36f74e17@posting.google.com> > Summary Announcements > ===================== > I don't think my informal editors on python-dev often enough for their > help. That should read "I don't *thank* my informal editors", not "think". I added that bit just before I sent out the final version and thus it was never checked by anyone. I am not kidding when I say I don't proof-read anything. =) -Brett From Felix.Wiemann at gmx.net Thu Jul 29 21:18:39 2004 From: Felix.Wiemann at gmx.net (Felix Wiemann) Date: Mon Aug 2 02:35:41 2004 Subject: Docutils 0.3.5 released Message-ID: <87smbatyeo.fsf@news2.ososo.de> ========================= Docutils 0.3.5 released ========================= Docutils 0.3.5 has just been released. We recommend all users to upgrade to version 0.3.5. Download ======== You can download the release package from: http://prdownloads.sourceforge.net/docutils/docutils-0.3.5.tar.gz?download What's New ========== Major changes since Docutils 0.3.3 include: * improved, extended and reorganized documentation; see . * new csv-table directive * many minor improvements, additions and bug fixes See the HISTORY at for a detailed list of changes. What is Docutils? ================= Docutils is a modular system for processing documentation into useful formats, such as HTML, XML, and LaTeX. For input Docutils supports reStructuredText, an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax. Useful Resources ================ * The Docutils website: http://docutils.sourceforge.net * The reStructuredText homepage: http://docutils.sf.net/rst.html * The Docutils FAQ: http://docutils.sourceforge.net/FAQ.html * Known Bugs: http://docutils.sourceforge.net/BUGS.html#known-bugs Discussion ========== Please direct any discussion to . -- Felix Wiemann -- http://www.ososo.de/ From tismer at stackless.com Fri Jul 30 03:08:49 2004 From: tismer at stackless.com (Christian Tismer) Date: Mon Aug 2 02:35:42 2004 Subject: Ann: Revival of the BytecodeHacks Message-ID: <41099FA1.7000507@stackless.com> Dear community, I could not resist to do this announcement, although this project belongs to Michael Hudson. Mike, please forgive me. I owe you a beer. In a single day-and-night session, I hacked against bytecodehacks, to upgrade it from Python 1.5.2 to Python 2.3 . This was quite some work, although not so very much, due to the excellent basic layout which Michael created. What are the Bytecodehacks? --------------------------- The bytecodehacks allow you to do certain modifications to compiled Python code objects. There are lots of applications included, like macro expansions and function inlining, things which Python does not provide and also is not supposed to provide. This kind of madness exists for people who ask for it, without worring those who don't care. Again, this great package was written by Michael Hudson in early 2000, and to my knowledge, it was never ported to the more recent Python versions. Michael told me that this is a package he is no longer too fond of, since it was written in his early days. He also told me that he is not keen on supporting it so much, because he would be tempted to give it a whole rewrite. Now, I'm thinking differently. I got the package to work, after about 12 hours of hacking, and it simply works. Since I didn't write the initial version, I have a different relationship to it. In other words: It is easier to maintain a foreign package than your own, since you are not married with it. Why do I dig into foreign areas? -------------------------------- Well, I have enough work with my Stackless package. Stackless is almost ready. (Almost, like your toy railway gets really ready; it really never will.) I just built a minimum Psyco support into it, because I'm basically always after as much speed as I can get. But there are limits with the regular Python interpreter. So my idea is to use these crazy other projects to get more performance, and to support them directly. My first idea to accelerate Psyco using Stackless was to provide Stackless with extra hardware stacks, which can be switched at light-speed. I still have this idea in mind, but the implementation is not so trivial. Comparatively, replacing generators (yield calls) with a couple of save/restores of tuples *is* almost trivial, as I'm probably going to show tomorrow. In Python, these "fake-generators" would be reasonably slower. But, by the fact that these are then Psyco-enabled, makes them really, really fast, and also completely inlineable. I think to name the module "renegate". :-) Why do I want to revive this package ------------------------------------ Well, I am a pragmatic guy, and I have a really good reason why I need the bytecodehacks. I am writing a sophisticated package which involves parsing of PDF files, and I want to do it all in Python. In order to get this PDF processor to almost C speed, I used Armin Rigo's wonderful Psyco package. Unfortunately, Psyco has a few limitations, which act as a show-stopper: - generators are not supported. That means, whenever I use a generator, Psyco will not accelerate it, but will act as a small slow-down. - Psyco is great at optimizing simple structures like lists, tuples, numbers and strings. It is less able to enhance things like object properties. Using self frequently disables almost all of Psyco's capabilities. - Psyco has difficulties with inlining. Simple functions *are* inlined, but when they contain a conditional branch or they exceed some limit, inlining is disabled. This *could* be changed, but with a lot of effort by changing C code. This is not going to happen, because all of this stuff will be enhanced and re-implemented during the PyPy project. Now, by combining the re-animated bytecodehacks project with Psyco, I am almost sure that I can remove certain restrictions from Psyco, by turning problematic Python structures into simple ones, which the current Psyco can handle natively. Poor man's PyPy --------------- Although I am a member of the PyPy project, and I do belong to the people who initiated the PyPy project, I am impatient, and I want to get a few of the expected PyPy results right now. Psyco is phantastic but not perfect, and it needs some help to gather maximum performance. By adding Bytecodehacks in the right manner, I think I can fill this gap. With BCH, I can replace generators by ordinary methods of a class (plus a few bytecode instructions which have no real Python equivalent, like goto). By inspecting the data flow of a self.attribute, I can prove that it is invisible outside and replace it by a simple local variable in many cases. By using Bytecodehacks for proper inlining of functions, I can deliver Psyco from this difficult task. The expected result ------------------- By consequently applying the methods I sketched above, I expect that I can make almost every existing application reasonably faster. I will provide this as a service for customers and charge them for relevant acceleration. The software will stay open-sourced. This is just a few add-ons to Psyco and Bytecodehacks, and I'm not the author of these. I just found out how nicely they can fit together. My guess is an overall acceleration of at least a factor of five for almost any native Python application. There is no proof yet, this is all Vodoo from my stomach. But this stomach tends to be quite reliable Mike, please forgive me this announcement. You should have written it, but I was so very inspired. Getting the bytecodehacks for Python 2.3 ---------------------------------------- The current source code is available at cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/bytecodehacks login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/bytecodehacks co bytecodehacks cheers -- chris -- Christian Tismer :^) Mission Impossible 5oftware : Have a break! Take a ride on Python's Johannes-Niemeyer-Weg 9a : *Starship* http://starship.python.net/ 14109 Berlin : PGP key -> http://wwwkeys.pgp.net/ work +49 30 89 09 53 34 home +49 30 802 86 56 mobile +49 173 24 18 776 PGP 0x57F3BF04 9064 F4E1 D754 C2FF 1619 305B C09C 5A3B 57F3 BF04 whom do you want to sponsor today? http://www.stackless.com/ From rickh at ispwest.com Fri Jul 30 20:38:03 2004 From: rickh at ispwest.com (Rick Hilburger) Date: Mon Aug 2 02:35:42 2004 Subject: A Python preprocessor that has automatic flowcharting Message-ID: My new non-profit web site is www.getcet.org It's about automatic flow chart generation. I have a program that automatically draws a flow chart next to Python code so that you can see and understand the flow among the lines of Python code. I use a slightly different syntax for flow control than Python does, but the rest is regular Python. I have numerous images to illustrate this. I think it would be a new way to have code that is somewhat self-documenting. It could also help Python be somewhat self-teaching, at least with respect to structured control constructs and how they work.