From greg at cosc.canterbury.ac.nz Sat Apr 1 10:25:44 2006 From: greg at cosc.canterbury.ac.nz (greg) Date: Sat, 01 Apr 2006 20:25:44 +1200 Subject: ANN: PyGUI 1.7 Message-ID: <496rniFn9qraU1@individual.net> PyGUI 1.7 is now available: http://www.cosc.canterbury.ac.nz/~greg/python_gui/ New features: * GL.DisplayList class for managing OpenGL display lists in a similar way to the GL.Texture class introduced in 1.6. * Facilites for displaying a chosen cursor when the mouse is over a View. * Facilities for locating resources associated with an application. Bug fixes: * Cocoa: Getting the extent property of a ScrollableView did not work. * Cocoa: Worked around a PyObjC bug that was causing Tasks to leak memory. * Cocoa: Request New File dialog with a file type having a Macintosh type code did not work. Plus a number of other modifications, see CHANGES.txt in the distribution for details. 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 above address. From faltet at carabos.com Sat Apr 1 21:38:48 2006 From: faltet at carabos.com (Francesc Altet) Date: Sat, 1 Apr 2006 21:38:48 +0200 Subject: ANN: PyTables 1.3 released Message-ID: <200604012138.49492.faltet@carabos.com> ========================= Announcing PyTables 1.3 ========================= This is a new major release of PyTables. The most remarkable feature added in this version is a complete support (well, almost, because unicode arrays are not there yet) for NumPy objects. Improved support for native HDF5 is there as well. As an aside, I'm happy to inform you that the PyTables web site (http://www.pytables.org) has been converted into a wiki so that users can contribute to the project with recipes or any other document. Try it out! Go to the (new) PyTables web site for downloading the beast: http://www.pytables.org/ or keep reading for more info about the new features and bugs fixed. Changes more in depth ===================== Improvements: - Support for NumPy objects in all the objects of PyTables, namely: Array, CArray, EArray, VLArray and Table. All the numerical and character (except unicode arrays) flavors are supported as well as plain and nested heterogeneous NumPy arrays. PyTables leverages the adoption of the array interface (http://numeric.scipy.org/array_interface.html) for a very efficient conversion between all the numarray (which continues to be the native flavor for PyTables) object to/from NumPy/Numeric. - The FLAVOR schema in PyTables has been refined and simplified. Now, the only 'flavors' allowed for data objects are: "numarray", "numpy", "numeric" and "python". The changes has been made so that they are fully backward compatible with existing PyTables files. However, when users would try to use old flavors (like "Numeric" or "Tuple") in existing code, a ``DeprecationWarning`` will be issued in order to encourage them to migrate to the new flavors as soon as possible. - Nested fields can be specified in the "field" parameter of Table.read by using a '/' as a separator between fields (e.g. 'Info/value'). - The Table.Cols accessor has received a new ``__setitem__()`` method that allows doing things like: table.cols[4] = record table.cols.x[4:1000:2] = array # homogeneous column table.cols.Info[4:1000:2] = recarray # nested column - A clean-up function (using ``atexit``) has been registered so that remaining opened files are closed when a user hits a ^C, for example. That would help to avoid ending with corrupted files. - Native HDF5 compound datasets that are contiguous are supported now. Before, only chunked datasets were supported. - Updated (and much improved) sections about compression issues in the User's Guide. It includes new benchmarks made with PyTables 1.3 and a exhaustive comparison between Zlib, LZO and bzip2. - The HTML version of manual is made now from the docbook2html package for an improved look (IMO). Bug fixes: - Solved a problem when trying to save CharArrays with itemsize = 0 as attributes of nodes. Now, these objects are pickled in order to prevent HDF5 from crashing. - Fixed some alignment issues with nested record arrays under certain architectures (e.g. PowerPC). - Fixed automatic conversions when a VLArray is read in a platform with a byte ordering different from the file. Deprecated features: - Due to recurrent problems with the UCL compression library, it has been declared deprecated from this version on. You can still compile PyTables with UCL support (using the --force-ucl), but you are urged to not use it anymore and convert any existing datafiles with UCL to other supported library (zlib, lzo or bzip2) with the ``ptrepack`` utility. Backward-incompatible changes: - Please, see ``RELEASE-NOTES.txt`` file. Important note for Windows users ================================ If you are willing to use PyTables with Python 2.4 in Windows platforms, you will need to get the HDF5 library compiled for MSVC 7.1, aka .NET 2003. It can be found at: ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/bin/windows/5-165-win-net.ZIP Users of Python 2.3 on Windows will have to download the version of HDF5 compiled with MSVC 6.0 available in: ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/bin/windows/5-165-win.ZIP What it is ========== **PyTables** is a package for managing hierarchical datasets and designed to efficiently cope with extremely large amounts of data (with support for full 64-bit file addressing). It features an object-oriented interface that, combined with C extensions for the performance-critical parts of the code, makes it a very easy-to-use tool for high performance data storage and retrieval. PyTables runs on top of the HDF5 library and numarray (but NumPy and Numeric are also supported) package for achieving maximum throughput and convenient use. Besides, PyTables I/O for table objects is buffered, implemented in C and carefully tuned so that you can reach much better performance with PyTables than with your own home-grown wrappings to the HDF5 library. PyTables sports indexing capabilities as well, allowing doing selections in tables exceeding one billion of rows in just seconds. Platforms ========= This version has been extensively checked on quite a few platforms, like Linux on Intel32 (Pentium), Win on Intel32 (Pentium), Linux on Intel64 (Itanium2), FreeBSD on AMD64 (Opteron), Linux on PowerPC (and PowerPC64) and MacOSX on PowerPC. For other platforms, chances are that the code can be easily compiled and run without further issues. Please, contact us in case you are experiencing problems. Resources ========= Go to the PyTables web site for more details: http://www.pytables.org About the HDF5 library: http://hdf.ncsa.uiuc.edu/HDF5/ About numarray: http://www.stsci.edu/resources/software_hardware/numarray To know more about the company behind the PyTables development, see: http://www.carabos.com/ Acknowledgments =============== Thanks to various the users who provided feature improvements, patches, bug reports, support and suggestions. See the ``THANKS`` file in the distribution package for a (incomplete) list of contributors. Many thanks also to SourceForge who have helped to make and distribute this package! And last but not least, a big thank you to THG (http://www.hdfgroup.org/) for sponsoring many of the new features recently introduced in PyTables. Share your experience ===================== Let us know of any bugs, suggestions, gripes, kudos, etc. you may have. ---- **Enjoy data!** -- The PyTables Team From falted at pytables.org Sat Apr 1 21:13:19 2006 From: falted at pytables.org (Francesc Altet) Date: Sat, 1 Apr 2006 21:13:19 +0200 Subject: ANN: PyTables 1.3 is released Message-ID: <200604012113.20827.falted@pytables.org> ========================= Announcing PyTables 1.3 ========================= This is a new major release of PyTables. The most remarkable feature added in this version is a complete support (well, almost, because unicode arrays are not there yet) for NumPy objects. Improved support for native HDF5 is there as well. As an aside, I'm happy to inform you that the PyTables web site (http://www.pytables.org) has been converted into a wiki so that users can contribute to the project with recipes or any other document. Try it out! Go to the (new) PyTables web site for downloading the beast: http://www.pytables.org/ or keep reading for more info about the new features and bugs fixed. Changes more in depth ===================== Improvements: - Support for NumPy objects in all the objects of PyTables, namely: Array, CArray, EArray, VLArray and Table. All the numerical and character (except unicode arrays) flavors are supported as well as plain and nested heterogeneous NumPy arrays. PyTables leverages the adoption of the array interface (http://numeric.scipy.org/array_interface.html) for a very efficient conversion between all the numarray (which continues to be the native flavor for PyTables) object to/from NumPy/Numeric. - The FLAVOR schema in PyTables has been refined and simplified. Now, the only 'flavors' allowed for data objects are: "numarray", "numpy", "numeric" and "python". The changes has been made so that they are fully backward compatible with existing PyTables files. However, when users would try to use old flavors (like "Numeric" or "Tuple") in existing code, a ``DeprecationWarning`` will be issued in order to encourage them to migrate to the new flavors as soon as possible. - Nested fields can be specified in the "field" parameter of Table.read by using a '/' as a separator between fields (e.g. 'Info/value'). - The Table.Cols accessor has received a new ``__setitem__()`` method that allows doing things like: table.cols[4] = record table.cols.x[4:1000:2] = array # homogeneous column table.cols.Info[4:1000:2] = recarray # nested column - A clean-up function (using ``atexit``) has been registered so that remaining opened files are closed when a user hits a ^C, for example. That would help to avoid ending with corrupted files. - Native HDF5 compound datasets that are contiguous are supported now. Before, only chunked datasets were supported. - Updated (and much improved) sections about compression issues in the User's Guide. It includes new benchmarks made with PyTables 1.3 and a exhaustive comparison between Zlib, LZO and bzip2. - The HTML version of manual is made now from the docbook2html package for an improved look (IMO). Bug fixes: - Solved a problem when trying to save CharArrays with itemsize = 0 as attributes of nodes. Now, these objects are pickled in order to prevent HDF5 from crashing. - Fixed some alignment issues with nested record arrays under certain architectures (e.g. PowerPC). - Fixed automatic conversions when a VLArray is read in a platform with a byte ordering different from the file. Deprecated features: - Due to recurrent problems with the UCL compression library, it has been declared deprecated from this version on. You can still compile PyTables with UCL support (using the --force-ucl), but you are urged to not use it anymore and convert any existing datafiles with UCL to other supported library (zlib, lzo or bzip2) with the ``ptrepack`` utility. Backward-incompatible changes: - Please, see ``RELEASE-NOTES.txt`` file. Important note for Windows users ================================ If you are willing to use PyTables with Python 2.4 in Windows platforms, you will need to get the HDF5 library compiled for MSVC 7.1, aka .NET 2003. It can be found at: ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/bin/windows/5-165-win-net.ZIP Users of Python 2.3 on Windows will have to download the version of HDF5 compiled with MSVC 6.0 available in: ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/bin/windows/5-165-win.ZIP What it is ========== **PyTables** is a package for managing hierarchical datasets and designed to efficiently cope with extremely large amounts of data (with support for full 64-bit file addressing). It features an object-oriented interface that, combined with C extensions for the performance-critical parts of the code, makes it a very easy-to-use tool for high performance data storage and retrieval. PyTables runs on top of the HDF5 library and numarray (but NumPy and Numeric are also supported) package for achieving maximum throughput and convenient use. Besides, PyTables I/O for table objects is buffered, implemented in C and carefully tuned so that you can reach much better performance with PyTables than with your own home-grown wrappings to the HDF5 library. PyTables sports indexing capabilities as well, allowing doing selections in tables exceeding one billion of rows in just seconds. Platforms ========= This version has been extensively checked on quite a few platforms, like Linux on Intel32 (Pentium), Win on Intel32 (Pentium), Linux on Intel64 (Itanium2), FreeBSD on AMD64 (Opteron), Linux on PowerPC (and PowerPC64) and MacOSX on PowerPC. For other platforms, chances are that the code can be easily compiled and run without further issues. Please, contact us in case you are experiencing problems. Resources ========= Go to the PyTables web site for more details: http://www.pytables.org About the HDF5 library: http://hdf.ncsa.uiuc.edu/HDF5/ About numarray: http://www.stsci.edu/resources/software_hardware/numarray To know more about the company behind the PyTables development, see: http://www.carabos.com/ Acknowledgments =============== Thanks to various the users who provided feature improvements, patches, bug reports, support and suggestions. See the ``THANKS`` file in the distribution package for a (incomplete) list of contributors. Many thanks also to SourceForge who have helped to make and distribute this package! And last but not least, a big thank you to THG (http://www.hdfgroup.org/) for sponsoring many of the new features recently introduced in PyTables. Share your experience ===================== Let us know of any bugs, suggestions, gripes, kudos, etc. you may have. ---- **Enjoy data!** -- The PyTables Team From tomerfiliba at gmail.com Sat Apr 1 16:39:07 2006 From: tomerfiliba at gmail.com (tomerfiliba at gmail.com) Date: 1 Apr 2006 06:39:07 -0800 Subject: Construct 1.10 released Message-ID: <1143902347.407765.288270@u72g2000cwu.googlegroups.com> what's Construct ---------------------------- a library for parsing and building of data structures, at the bit-level, in a declarative manner (no procedural code needed). site ---------------------------- get it at http://pyconstruct.sourceforge.net what' news ---------------------------- * two bug fixes: forgot to define two exception classes * new builtins: - Pass - a "do nothing" construct, useful for the default arguments to Switch, etc. - If - a conditional construct, that executes the sub-construct only if some meta-condition is satisfied - Embed - embeds a Struct into another Struct. see example below. - LazyBind - lazy-binds a construct, so you can be define recursive constructs. see example. - Float - IEEE754 floating point implementation. this release only supports parsing of floats, not building them, but i thought its useful enough by itself. a later release will address the building problem. * improved the LV construct * removed the TLV construct (it's pointless to have it as a builtin) * added get_size() which returns the size of a 'normal' (non-meta) construct, example ---------------------------- to_embed = Struct("blah", UInt8("a"), UInt8("b"), UInt8("c"), ) struct1 = Struct("struct1", to_embed, UInt8("x"), ) struct2 = Struct("struct2", Embed(to_embed), UInt8("x"), ) #>>> print struct1.parse("xabc") #Container: # blah = Container: # a = 120 # b = 97 # c = 98 # x = 99 #>>> print struct2.parse("xabc") #Container: # a = 120 # b = 97 # c = 98 # x = 99 #>>> print struct1.get_size() #32 #>>> print struct2.get_size() #32 my_linked_list = Struct("linked_list", UInt8("data"), UInt8("has_next"), If("_.has_next", LazyBind("next", "my_linked_list", globals()) ) ) #>>> print my_linked_list.parse("A\x01B\x01C\x01D\x00") #Container: # data = 65 # has_next = 1 # next = Container: # data = 66 # has_next = 1 # next = Container: # data = 67 # has_next = 1 # next = Container: # data = 68 # has_next = 0 # next = None -tomer From quentel.pierre at wanadoo.fr Sun Apr 2 09:12:39 2006 From: quentel.pierre at wanadoo.fr (Pierre Quentel) Date: Sun, 02 Apr 2006 09:12:39 +0200 Subject: [ANN] Karrigell-2.2.3 released Message-ID: <442f7968$0$20146$8fcfb975@news.wanadoo.fr> The new version of the web framework Karrigell has been released a few days ago Its main feature is the support of Unicode Karrigell is provided with an integrated web server and a Python database (KirbyBase) so that you can start programming simple applications without anything else. For more ambitious uses, you can run it behind Apache and with all the databases for which a Python API exists The principle of Karrigell is that scripts are run in a namespace with all the variables you need already set : form fields, functions for session management and authentication, exceptions, etc For instance, suppose you ask a user to enter his login with and you want to store it using sessions. You would just have to put this in a script : Session().user = _login Without having anything to import, the script will find the name Session bound to a function that returns a browser-specific session object, and the name _login which is the value of the form field Read more on the tutorial : http://quentel.python-hosting.com/wiki/index.pih Pierre From fabiofz at gmail.com Mon Apr 3 15:39:16 2006 From: fabiofz at gmail.com (Fabio Zadrozny) Date: Mon, 3 Apr 2006 10:39:16 -0300 Subject: Pydev and Pydev Extensions 1.0.4 release Message-ID: Hi All, Pydev and Pydev Extensions 1.0.4 have been released Check http://www.fabioz.com/pydev for details on Pydev Extensions and http://pydev.sf.net for details on Pydev Release Highlights in Pydev Extensions: ----------------------------------------------------------------- - Interactive Console binded to the Pydev Editor - Bug-fixes Release Highlights in Pydev: ---------------------------------------------- - Added jython scripting - Added an 'easy' way to bind actions after Ctrl+2 (to make scripting easier) - Added a way to list things binded with Ctrl+2 (To see: Ctrl+2+help) - Added a 'go to next problem' with jython scripting capabilities, as a first example on how to script Pydev with Jython (Ctrl+.) - A brand new indentation engine is available: * Does not try to make different indentations inside multilines * Does not try to add spaces to make smart-indent when in only tabs mode * Indents correctly after opening some bracket or after closing some bracket * Indents to 'expected level' when hitting tab - Fixed bug: syntax error described instead of throwing an error - Profiled Pydev (not that much, but still, I hope you'll be able to 'feel' it) - Fixed bug: the pythonpath was not added when additional environment variables where specified - And as always, other bugs have been fixed What is PyDev? --------------------------- PyDev is a plugin that enables users to use Eclipse for Python and Jython development -- making Eclipse a first class Python IDE -- It comes with many goodies such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others. Cheers, -- Fabio Zadrozny ------------------------------------------------------ Software Developer ESSS - Engineering Simulation and Scientific Software http://www.esss.com.br Pydev Extensions http://www.fabioz.com/pydev Pydev - Python Development Enviroment for Eclipse http://pydev.sf.net http://pydev.blogspot.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-announce-list/attachments/20060403/90716da3/attachment.htm From adamsz at gmail.com Mon Apr 3 23:27:01 2006 From: adamsz at gmail.com (Adam Souzis) Date: Mon, 3 Apr 2006 14:27:01 -0700 Subject: ANNOUNCE: Rhizome 0.6.0 In-Reply-To: References: Message-ID: Rhizome is an application stack for building RDF-based applications and web sites implemented in Python. It includes: RxPath, a RDF data engine that allows XSLT, Schematron and other XPath-based languages to directly access RDF stores; Raccoon, an application server; and Rhizome Wiki, a Wiki-like content management and delivery system that brings the Wiki approach to building dynamic web sites. What's new? Major changes since last announced release (0.5.1): Rhizome Wiki: * major performance enhancements: several times faster * now supports GRDDL and "shredding", a framework for extracting RDF from content and maintaining the relationship over time. * better support for viewing and editing RDF directly with most RDF formats (RDF/XML, NTriples, Turtle). * new UI for editing users and roles * more Wiki features, including tracking missing pages and page and comment spam detection via the Akismet service RxPath: * much faster: now uses a simple but optimizing query engine * support for RDF named graphs (RDF contexts) * better support for using RxPath in XML contexts (e.g. an XSLT page) * better support 3rd party RDF libraries and RDF stores In addition, there have been many other enhancements, see http://rx4rdf.liminalzone.org/changelog.txt for more details. More Info: * RxPath provides a deterministic mapping between the RDF abstract syntax to the XPath data model, allowing you to query, transform, update and validate a RDF model with languages syntactically indentical to XPath, XSL, XUpdate and Schematron. * Raccoon is a simple application server that uses an RDF model for its data store, roughly analogous to RDF as Apache Cocoon is to XML. Raccoon uses RxPath to translate arbitrary requests (currently HTTP, XML-RPC and command line arguments) to RDF resources, each of which can be associated with RxSLT and RxUpdate stylesheets. * Rhizome is a Wiki-like content management and delivery system built on Raccoon that takes the concept of the Wiki to the next level: everything is editable, not just content but its meta-data and behavior, even the structure of the site itself. Furthermore, Wiki entries are abstract globally unique RDF resources that can have any kind of content and whose presentation is contextual. Rhizome uses: * ZML, a Wiki-like text formatting language that lets you write arbitrary XML or HTML (using Python-esque indentation rules), enabling you to author XML documents with (nearly) the same ease as a Wiki entry. * RxML, an alternative XML serialization for RDF that is designed for easy authoring in ZML, allowing novices to author and edit RDF metadata. Homepage: http://rx4rdf.liminalzone.org/ Download: http://sourceforge.net/project/showfiles.php?group_id=85676 -- adam (asouzis at user.sf.net) From mwh at python.net Mon Apr 3 17:19:46 2006 From: mwh at python.net (Michael Hudson) Date: Mon, 03 Apr 2006 16:19:46 +0100 Subject: EuroPython 2006 Call For Proposals Message-ID: <2m7j66u1nx.fsf@starship.python.net> EuroPython, the European Python and Zope conference, will this year take place at CERN near Geneva in Switzerland from Monday 3 July to Wednesday 5 July 2006. To make this conference as successful as the previous four conferences we need talks, and this is where you come in. This year, as before, we have a variety of tracks or topics that we encourage talks in: Science Python Language and Libraries Agile Development Web Frameworks Business and Applications Teaching Games and Entertainment Misfits As the conference is at CERN this year, we are particularly interested in hearing about Python being used in the scientific world. We want to be certain that you do not feel excluded by the above list of tracks; if you have something interesting to talk about and it doesn't really fit any of the above categories, the "Misfits" track is just for you. There will be a refereed papers track as well this year, which will be announced separately. To read a longer description of each track go here: http://indico.cern.ch/conferenceProgram.py?confId=44 To submit a talk, go here: http://indico.cern.ch/abstractSubmission.py?confId=44 For more general information on the conference, please visit: http://www.europython.org/ -- There are two kinds of large software systems: those that evolved from small systems and those that don't work. -- Seen on slashdot.org, then quoted by amk From pyp at gmx.net Mon Apr 3 21:09:07 2006 From: pyp at gmx.net (Mike Mueller) Date: Mon, 03 Apr 2006 21:09:07 +0200 Subject: Leipzig Python User Group - Meeting, April 11 2006, 8:00pm Message-ID: <7.0.1.0.1.20060403210125.01c6d1d8@gmx.net> ========================= Leipzig Python User Group ========================= Next Meeting Tuesday, April 11 2006 ----------------------------------- We will meet on April 11 at 8:00 pm at the training center of Python Academy in Leipzig, Germany (http://www.python-academy.com/center/find.html). Mike M?ller will talk about rest2web (http://www.voidspace.org.uk/python/rest2web/), a Python module for dynamic generation of static websites. Food and soft drinks are provided. Please send a short confirmation mail to info at python-academy.de, so we can prepare appropriately. Everybody who uses Python, plans to do so or is interested in learning more about the language is encouraged to participate. While the meeting language will be mainly German, English speakers are very welcome. We will provide English interpretation if needed. Current information about the meetings can always be found at http://www.python-academy.com/user-group/index.html ========================= Leipzig Python User Group ========================= Stammtisch am 11.04.2006 ------------------------- Wir treffen uns am 11.04.2006 um 20:00 Uhr wieder im im Schulungszentrum der Python Academy in Leipzig (http://www.python-academy.de/Schulungszentrum/anfahrt.html). Diesmal wird Mike M?ller ?ber "rest2web - dynamische Erstellung statischer Webseiten" berichten (http://www.voidspace.org.uk/python/rest2web/). F?r das leibliche Wohl wird gesorgt. Wir bitten um kurze Anmeldung per e-mail an: info at python-academy.de An den Treffen der Python Anwendergruppe kann jeder teilnehmen, der Interesse an Python hat, die Sprache bereits nutzt oder nutzen m?chte. Die Arbeitssprachen des Treffens ist Deutsch. English sprechende Python-Enthusiasten sind trotzdem herzlich eingeladen. Wir ?bersetzen gern. Aktuelle Informationen zu den Treffen sind immer unter http://www.python-academy.de/User-Group/index.html zu finden. From remi at cherrypy.org Tue Apr 4 15:51:20 2006 From: remi at cherrypy.org (remi at cherrypy.org) Date: 4 Apr 2006 06:51:20 -0700 Subject: ANN: CherryPy-2.2.0-rc1 released Message-ID: <1144158680.517744.138290@e56g2000cwe.googlegroups.com> Hello everyone, After six months of hard work and 300 changesets since the last stable release I'm happy to announce that CherryPy-2.2.0-final is out. The biggest changes are: - switch to a lowercase api (although the old camelCase API is still supported for backward compatibility) - support for multiple applications (new "cherrypy.tree" object) - better error handling - lots of bug fixes (especially in file-based sessions) - better test suite. Check out http://www.cherrypy.org/wiki/UpgradeTo2.2 for more details. *************** About CherryPy: CherryPy is a simple (no dependencies), pythonic (doesn't get in your way) web development framework. Here is a sample Hello, World in CherryPy: # import cherrypy # class HelloWorld: # @cherrypy.expose # def index(self): # yield "" # yield "Hello world!" # yield "" # cherrypy.root = HelloWorld() # cherrypy.server.start() The project has been growing strongly lately: cherrypy.org averaged 3000 visitors/day in March, up from 2000 visitors/day in January and February; and the cherrypy-users list just passed 700 users. Details and downloads are available from: http://www.cherrypy.org Remi. From remi at cherrypy.org Tue Apr 4 16:41:43 2006 From: remi at cherrypy.org (remi at cherrypy.org) Date: 4 Apr 2006 07:41:43 -0700 Subject: ANN: CherryPy-2.2.0 released Message-ID: <1144161703.608119.252730@u72g2000cwu.googlegroups.com> (sorry for the double-post, the title of the previous one was wrong) Hello everyone, After six months of hard work and 300 changesets since the last stable release I'm happy to announce that CherryPy-2.2.0-final is out. The biggest changes are: - switch to a lowercase api (although the old camelCase API is still supported for backward compatibility) - support for multiple applications (new "cherrypy.tree" object) - better error handling - lots of bug fixes (especially in file-based sessions) - better test suite. Check out http://www.cherrypy.org/wiki/UpgradeTo2.2 for more details. *************** About CherryPy: CherryPy is a simple (no dependencies), pythonic (doesn't get in your way) web development framework. Here is a sample Hello, World in CherryPy: # import cherrypy # class HelloWorld: # @cherrypy.expose # def index(self): # yield "" # yield "Hello world!" # yield "" # cherrypy.root = HelloWorld() # cherrypy.server.start() The project has been growing strongly lately: cherrypy.org averaged 3000 visitors/day in March, up from 2000 visitors/day in January and February; and the cherrypy-users list just passed 700 users. Details and downloads are available from: http://www.cherrypy.org Remi. From robin at alldunn.com Tue Apr 4 19:31:47 2006 From: robin at alldunn.com (Robin Dunn) Date: Tue, 04 Apr 2006 10:31:47 -0700 Subject: ANNOUNCE: wxPython 2.6.3.2 Message-ID: <4432AD83.8080402@alldunn.com> Announcing ---------- The 2.6.3.2 release of wxPython is now available for download at http://wxpython.org/download.php. This is a mostly bug fix release and takes care of several "unfortunate features" discovered in the 2.6.3.0 release made last week. A summary of changes is listed below and at http://wxpython.org/recentchanges.php. What is wxPython? ----------------- wxPython is a GUI toolkit for the Python programming language. It allows Python programmers to create programs with a robust, highly functional graphical user interface, simply and easily. It is implemented as a Python extension module that wraps the GUI components of the popular wxWidgets cross platform library, which is written in C++. wxPython is a cross-platform toolkit. This means that the same program will usually run on multiple platforms without modifications. Currently supported platforms are 32-bit Microsoft Windows, most Linux or other Unix-like systems using GTK2, and Mac OS X 10.2+, in most cases the native widgets are used on each platform. Changes in 2.6.3.2 ------------------ Fixed reference leak in wx.gizmos.TreeListCtrl.GetSelections. wxMSW: Fixed sizing issue with wx.Choice and wx.ComboBox. This change was implemented by reverting a prior fix for a different problem (continuous painting/resizing when a combobox is used as a widget in a wx.html.HtmlWindow) so a method to fix both problems is still being investigated. wxGTK: Fixed potential buffer overrun when pasting from the clipboard. Fixed problem in wx.lib.splitter when used on 64-bit platforms. Used the current length of the list for specifying an append instead of sys.maxint. wxMSW: Support added for XP themed owner drawn buttons and bitmap buttons. For example, if you change the foreground color of a button it will now be drawn with the XP themed style rather than an ugly generic button style. XRCed: Fix for Copy/Paste objects with international characters. Fixed the equality and inequality operators for some of the basic data types (wx.Point, wx.Size, wx.Colour, etc.) to no longer raise a TypeError if the compared object is not compatible, but to just return a boolean as expected. For example:: wx.Colour(64,0,64) == 123 ==> False wxMSW: Fixed (again) sizing/positioning issues of calling Realize on a wx.ToolBar that is not manaaged directly by a frame and that is already shown. wxMSW: Fixed wx.Choice/wx.ComboBox so they send events when a new item is selected only with the keyboard. -- Robin Dunn Software Craftsman http://wxPython.org Java give you jitters? Relax with wxPython! From robin at alldunn.com Tue Apr 4 19:31:47 2006 From: robin at alldunn.com (Robin Dunn) Date: Tue, 04 Apr 2006 10:31:47 -0700 Subject: [wxPython-users] ANNOUNCE: wxPython 2.6.3.2 Message-ID: <4432AD83.8080402@alldunn.com> Announcing ---------- The 2.6.3.2 release of wxPython is now available for download at http://wxpython.org/download.php. This is a mostly bug fix release and takes care of several "unfortunate features" discovered in the 2.6.3.0 release made last week. A summary of changes is listed below and at http://wxpython.org/recentchanges.php. What is wxPython? ----------------- wxPython is a GUI toolkit for the Python programming language. It allows Python programmers to create programs with a robust, highly functional graphical user interface, simply and easily. It is implemented as a Python extension module that wraps the GUI components of the popular wxWidgets cross platform library, which is written in C++. wxPython is a cross-platform toolkit. This means that the same program will usually run on multiple platforms without modifications. Currently supported platforms are 32-bit Microsoft Windows, most Linux or other Unix-like systems using GTK2, and Mac OS X 10.2+, in most cases the native widgets are used on each platform. Changes in 2.6.3.2 ------------------ Fixed reference leak in wx.gizmos.TreeListCtrl.GetSelections. wxMSW: Fixed sizing issue with wx.Choice and wx.ComboBox. This change was implemented by reverting a prior fix for a different problem (continuous painting/resizing when a combobox is used as a widget in a wx.html.HtmlWindow) so a method to fix both problems is still being investigated. wxGTK: Fixed potential buffer overrun when pasting from the clipboard. Fixed problem in wx.lib.splitter when used on 64-bit platforms. Used the current length of the list for specifying an append instead of sys.maxint. wxMSW: Support added for XP themed owner drawn buttons and bitmap buttons. For example, if you change the foreground color of a button it will now be drawn with the XP themed style rather than an ugly generic button style. XRCed: Fix for Copy/Paste objects with international characters. Fixed the equality and inequality operators for some of the basic data types (wx.Point, wx.Size, wx.Colour, etc.) to no longer raise a TypeError if the compared object is not compatible, but to just return a boolean as expected. For example:: wx.Colour(64,0,64) == 123 ==> False wxMSW: Fixed (again) sizing/positioning issues of calling Realize on a wx.ToolBar that is not manaaged directly by a frame and that is already shown. wxMSW: Fixed wx.Choice/wx.ComboBox so they send events when a new item is selected only with the keyboard. -- Robin Dunn Software Craftsman http://wxPython.org Java give you jitters? Relax with wxPython! --------------------------------------------------------------------- To unsubscribe, e-mail: wxPython-users-unsubscribe at lists.wxwidgets.org For additional commands, e-mail: wxPython-users-help at lists.wxwidgets.org From python-url at phaseit.net Tue Apr 4 17:18:48 2006 From: python-url at phaseit.net (Peter Otten) Date: Tue, 04 Apr 2006 15:18:48 +0000 Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Apr 4) Message-ID: QOTW: "Don't be too sure that it's compatible for the indefinite future. XML is just as future-proof as any other format." - Sybren Stuvel "Submitting a proposed change or fix [of the Python docs] is easier and quicker than arguing about it on c.l.py and it seems to get pretty quickly to the actual document maintainers." - Kent Johnson Still struggling with recursion? comp.lang.python is newbie-friendly: http://groups.google.com/group/comp.lang.python/browse_frm/thread/2ca81c529b485f89/cf531016b54d0ca1?tvc=1 An interview with Michael Foord, author of MovablePython, is the latest entry in the Python411 series intended to help you learn Python and learn about Python: http://www.awaretek.com/python/index.html PyInstaller advances Gordon McMillan's earlier and widely-used work on Python installation: http://pyinstaller.hpcf.upr.edu/cgi-bin/trac.cgi "If PL/SQL is your only programming language, your Oracle work may suffer." In her introductory article Catherine Devlin demonstrates the power of Python from the perspective of a database user: http://www.oracle.com/technology/pub/articles/devlin-python-oracle.html http://catherinedevlin.blogspot.com/2006/03/otn-article-addendum.html Getting hold of subclasses is easy with new-style classes: http://groups.google.com/group/comp.lang.python/msg/8fbe567f4ff121f9 Once you learn about the secret of iter()'s second parameter, many use cases of a while-loop in C can be better expressed with a for-loop in Python: http://groups.google.com/group/comp.lang.python/browse_frm/thread/b3ab8141c492bb21/df51ed3d13dd4975?tvc=1 The Python 2.4.3 bugfix release is available: http://groups.google.com/group/comp.lang.python/browse_frm/thread/93a2ad5d99db34ec ======================================================================== 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. For far, FAR more Python reading than any one mind should absorb, much of it quite interesting, several pages index much of the universe of Pybloggers. http://lowlife.jp/cgi-bin/moin.cgi/PythonProgrammersWeblog http://www.planetpython.org/ http://mechanicalcat.net/pyblagg.html 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 Steve Bethard, Tim Lesher, and Tony Meyer continue the marvelous tradition early borne by Andrew Kuchling, Michael Hudson and Brett Cannon 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/ Python Success Stories--from air-traffic control to on-line match-making--can inspire you or decision-makers to whom you're subject with a vision of what the language makes practical. http://www.pythonology.com/success 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 Kurt B. Kaiser publishes a weekly report on faults and patches. http://www.google.com/groups?as_usubject=weekly%20python%20patch Although unmaintained since 2002, the Cetus collection of Python hyperlinks retains a few gems. 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 at pythonjournal.com and editor at pythonjournal.cognizor.com welcome submission of material that helps people's understanding of Python use, and offer Web presentation of your work. del.icio.us presents an intriguing approach to reference commentary. It already aggregates quite a bit of Python intelligence. http://del.icio.us/tag/python *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/topic/python/ (requires subscription) http://groups-beta.google.com/groups?q=python-url+group:comp.lang.python*&start=0&scoring=d& 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 There is *not* an RSS for "Python-URL!"--at least not yet. Arguments for and against are occasionally entertained. 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 steve at holdenweb.com Wed Apr 5 03:47:32 2006 From: steve at holdenweb.com (Steve Holden) Date: Tue, 04 Apr 2006 21:47:32 -0400 Subject: The "Need for Speed" Sprint, Reykjavik, Iceland, May 21-28, 2006 Message-ID: <443321B4.5010204@holdenweb.com> EWT LLC and CCP h.f., having specific commercial interests in doing so, have decided to sponsor a sprint on the Python programming language with specific short- and medium-term acceleration goals. The sprint is also intended to stimulate broad consideration of the future of Python, and specifically to try and identify the most promising routes to improved performance. Selected members of the Python developer community will receive direct invitations, and their attendance will be sponsored, to try to ensure the most effective possible result. In the spirit of open source events the sprint is open to all. The venue is the Grand Hotel, Reykjavik, http://www.grand.is/. The following objectives are of interest to the sponsors. * Improving the decimal module by implementing portions in C * Investigate whether RPython offers sufficient speedup over the regular CPython interpreter to replace tailored C and C++ code in MMP gaming applications * Implement an ordered dictionary in both C and Python * Implement data-structure-specific algorithms, which rely heavily on certain data structures, as RPython * Adding an iterator interface (similar to re.finditer) to the struct module * Further refine the PyPy LLVM back end to improve general execution speeds * Offer the PyPy team a sprint venue to continue their development work on Python implementations written in Python * Create a string subtype that provides lazy slicing without copying Sprinters are, as always, free to choose the aspects of Python they choose to work on. Flights should be booked to and from Keflavik airport (KEF). There will be a mid-week ?let your hair down? social event to which all sprint participants are cordially invited. In order to ensure that sufficient meeting space is available, please notify Steve Holden of your intention to attend by emailing steve at holdenweb.com. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd www.holdenweb.com Love me, love my blog holdenweb.blogspot.com From anthony at python.org Wed Apr 5 14:48:00 2006 From: anthony at python.org (Anthony Baxter) Date: Wed, 5 Apr 2006 22:48:00 +1000 Subject: RELEASED Python 2.5 (alpha 1) Message-ID: <200604052248.19094.anthony@python.org> On behalf of the Python development team and the Python community, I'm happy to announce the first alpha release of Python 2.5. This is an *alpha* release of Python 2.5, and is the *first* alpha release. As such, it is not suitable for a production environment. It is being released to solicit feedback and hopefully discover bugs, as well as allowing you to determine how changes in 2.5 might impact you. If you find things broken or incorrect, please log a bug on Sourceforge. In particular, note that changes to improve Python's support of 64 bit systems might require authors of C extensions to change their code. More information (as well as source distributions and Windows installers) are available from the 2.5 website: http://www.python.org/2.5/ The plan from here is for a number of additional alpha releases, followed by one or more beta releases and moving to a 2.5 final release around August. PEP 356 includes the schedule and will be updated as the schedule evolves. The new features in Python 2.5 are described in Andrew Kuchling's What's New In Python 2.5. It's available from the 2.5 web page. Amongst the language features added include conditional expressions, the with statement, the merge of try/except and try/finally into try/except/finally, enhancements to generators to produce a coroutine kind of functionality, and a brand new AST-based compiler implementation. New major modules added include hashlib, ElementTree, sqlite3 and ctypes. In addition, a new profiling module cProfile was added. A large number of bugs, regressions and reference leaks have been fixed since Python 2.4. See the release notes for more. Enjoy this new (alpha!) release, Anthony Anthony Baxter anthony at python.org Python Release Manager (on behalf of the entire python-dev team) -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.python.org/pipermail/python-announce-list/attachments/20060405/62a7b8ae/attachment-0001.pgp From jUrner at arcor.de Wed Apr 5 20:29:38 2006 From: jUrner at arcor.de (=?iso-8859-1?q?J=FCrgen_Urner?=) Date: 5 Apr 2006 11:29:38 -0700 Subject: ANN: uuid-0.2 released Message-ID: <1144261778.094770.318760@e56g2000cwe.googlegroups.com> Happy to announce the release of uuid-0.2 What is uuid? uuid is a python module to create RFC 4122 compatible UUIDs The module supports generation off RFC 4122 compatible time based, random, sha1 and md5 based UUIDs Whats new? x. new function get_mac_address() x. get_variant() now returns VARIANT_UNKNOWN if the variant of a UUID is not recognized x. output decoration around UUIDs is no longer included if the module is used from commandline x. bugfixes For download and documentation see http://home.arcor.de/jurner/python/ From fabiofz at gmail.com Wed Apr 5 20:30:51 2006 From: fabiofz at gmail.com (Fabio Zadrozny) Date: Wed, 5 Apr 2006 15:30:51 -0300 Subject: Pydev and Pydev Extensions 1.0.5 release Message-ID: Hi All, Pydev and Pydev Extensions 1.0.5 have been released Check http://www.fabioz.com/pydev for details on Pydev Extensions and http://pydev.sf.net for details on Pydev Release Highlights in Pydev Extensions: ----------------------------------------------------------------- - The pop-up does not pop as much for unlicensed versions Release Highlights in Pydev: ---------------------------------------------- - Another batch of things to improve indentation: * Indent does not try to make auto-indentation when pasting * When smart-indent is not selected, it will still add an indentation level after ':' * It will keep the indent of the previous line on new-lines if the current line is empty * Other little things - Added a place to specify vm arguments (for jython or python) -- thanks to Rudi de Andrade for this patch - Added a way to kill the underlying python/jython shells (Ctrl+2+kill) What is PyDev? --------------------------- PyDev is a plugin that enables users to use Eclipse for Python and Jython development -- making Eclipse a first class Python IDE -- It comes with many goodies such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others. Cheers, -- Fabio Zadrozny ------------------------------------------------------ Software Developer ESSS - Engineering Simulation and Scientific Software http://www.esss.com.br Pydev Extensions http://www.fabioz.com/pydev Pydev - Python Development Enviroment for Eclipse http://pydev.sf.net http://pydev.blogspot.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-announce-list/attachments/20060405/2a46a695/attachment.html From trentm at ActiveState.com Thu Apr 6 18:45:17 2006 From: trentm at ActiveState.com (Trent Mick) Date: Thu, 6 Apr 2006 09:45:17 -0700 Subject: ANN: ActivePython 2.4.3.11 is now available Message-ID: <20060406164517.GA16253@activestate.com> I'm happy to announce that ActivePython 2.4.3.11 is now available for free download from: http://www.ActiveState.com/Products/ActivePython/ This release is a maintenance/update release for existing platforms. Changes in this release include: - [Windows] Update to recent PyWin32 (build 208.1+) - Update to bzip2 1.0.3 (from 1.0.2) [bug 45239] - Update to Python 2.4.3 - [Windows] Fix a bug where the PyWin32 docs Table of Contents did not appear in the ActivePython CHM. - [Mac OS X] Fix errors in the build number in the Python.framework Info.plist and version.plist. ActivePython on Mac OS X ------------------------ Currently ActivePython provides separate Intel and PowerPC builds for Mac OS X rather than one universal build. Note that in the relatively near future ActivePython will switch to a universal build. What is ActivePython? --------------------- ActivePython is ActiveState's quality-assured binary distribution of Python. Builds for AIX, HP-UX, Linux, Mac OS X, Solaris, and Windows are made freely available. ActivePython includes the Python core and core extensions (zlib 1.2.3, bzip2 1.0.3, bsddb 4.2.52.NC, Tk 8.4.12, and Tix 8.1.4) and is fully compatible with other Python distributions of the same version. ActivePython also includes a wealth of Python documentation, including: - the core Python docs; - Andrew Kuchling's "What's New in Python" series; - the Non-Programmer's Tutorial for Python; - Mark Pilgrim's excellent "Dive into Python"; and - a snapshot of the Python FAQs, HOWTOs, and PEPs. An online version of the docs can be found here: http://aspn.activestate.com/ASPN/docs/ActivePython/2.4/welcome.html We would welcome any and all feedback to: ActivePython-feedback at ActiveState.com Please file bugs against ActivePython at: http://bugs.ActiveState.com/ActivePython On what platforms does ActivePython run? ---------------------------------------- ActivePython now includes installers for the following ten platforms: - AIX/PowerPC - HP-UX/PA-RISC - Linux/x86 - Linux/x86_64: "x86_64" is also known as "AMD64" - Solaris/SPARC - Solaris/x86 - Mac OS X/PowerPC - Mac OS X/x86 - Windows/x64: "x64" is also known as "AMD64" - Windows/x86 Extra Bits ---------- ActivePython releases also include the following packages: - Windows "debug" package: Debug-built binaries for ActivePython users building debug versions of their binary Python extensions. - ActivePython24.chm: An MS compiled help collection of the full ActivePython documentation set. Linux users of applications such as xCHM might find this useful. This package is installed by default on Windows. These packages are available from: ftp://ftp.activestate.com/ActivePython/etc/ Thanks, and enjoy! Trent, Python Tech Lead -- Trent Mick TrentM at ActiveState.com From tomerfiliba at gmail.com Fri Apr 7 16:10:11 2006 From: tomerfiliba at gmail.com (tomerfiliba at gmail.com) Date: 7 Apr 2006 07:10:11 -0700 Subject: Construct 1.20 released Message-ID: <1144419011.851413.19050@v46g2000cwv.googlegroups.com> what is Construct? Construct is a library for declaratively defining data structures at the bit-level, with lots of "built-in" constructs. website: http://pyconstruct.sourceforge.net note: the code is getting pretty stable already, so dont expect any more frequent releases. what's new? * added Formatted, a construct that uses the built-in struct module. * added [Big/Little]Float[32/64], both parsing and building, using Formatted * added FlagsAdapter (see example below) * improved Flag, the constructor now takes 'inverted' instead of 'truth' * improved LV, and made PascalString use LV instead * removed PascalStringAdapter * removed the utils package (may be re-added later if i find what to put in it) example: say you have a 32-bit integer that holds flags, but splitting it up to a Struct of Flag's is difficult, because of byte-ordering, etc. the new FlagsAdapter lets you do the following: my_flag = FlagsAdapter( ULInt32("flags"), dict( owner_read = 0x0001, owner_write = 0x0002, owner_execute = 0x0004, group_read = 0x0008, group_write = 0x0010, group_execute = 0x0020, other_read = 0x0040, other_write = 0x0080, other_execute = 0x0100, ) ) >>> print my_flag.parse("\x83\x00\x00\x00") Container: group_execute = False group_read = False group_write = False other_execute = False other_read = False other_write = True owner_execute = False owner_read = True owner_write = True -tomer From tomerfiliba at gmail.com Fri Apr 7 23:47:54 2006 From: tomerfiliba at gmail.com (tomerfiliba at gmail.com) Date: 7 Apr 2006 14:47:54 -0700 Subject: RPyC 2.45 released Message-ID: <1144446474.868537.297400@u72g2000cwu.googlegroups.com> what's RPyC: Remote Python Call (RPyC) is a python library that provides transparent and symmetrical distributed computing and remote procedure calls. site: http://rpyc.sourceforge.net what's new: this is a maintenance version of RPyC (Remote Python Call). * cleanups * fixed a bug with PipeStream.write * added stubs for Stream.wait and Stream.is_available to the windows version, so PipeConnection now works on windows as well. * added optional authentication: auth_server.py, and a new factory - AuthSocketConnection. see demo below. why add authentication? many people wanted to run rpyc over the internet, but it's a huge security risk. now the connection itself is not encrypted, but the server will require a login before it creates the connection. you are still encouraged to use SSL/VPNs where available, as it's surely more secure. also, please report security risks with my algo if you find any. demo: # run auth_server.py, then do from Rpyc import AuthSocketConnection conn = AuthSocketConnection("yossarian", "catch22", "localhost") # from this point it's the same -tomer From dbickett at gmail.com Sat Apr 8 03:44:33 2006 From: dbickett at gmail.com (Daniel Bickett) Date: 7 Apr 2006 18:44:33 -0700 Subject: ANN: pyISBNdb 0.1 Message-ID: <1144460673.320102.289490@v46g2000cwv.googlegroups.com> Package: pyISBNdb Version: 0.1 Pre-Alpha Author: Daniel Bickett Website: http://heureusement.org/programming/pyISBNdb/ ABOUT: pyISBNdb is a library that serves as a pythonic interface with the ISBNdb.com API, a service that provides a vast database of book information free of charge. This package is an attempt to completely abstract information retrieval from ISBNdb. USAGE: Currently pyISBNdb can retrieve books by their ISBN number, title, author, and more, in an abstract manner. DOCUMENTATION: * HOWTO document complete with annotated code snippets: http://heureusement.infogami.com/pyISBNdb_HOWTO * What pyISBNdb doesn't do yet, but should: http://heureusement.infogami.com/pyISBNdb_TODO * Pudge-generated source documentation: http://heureusement.org/programming/pyISBNdb/ DOWNLOAD: * Download, extract, and install (requires elementtree): http://heureusement.org/programming/pyISBNdb/pyISBNdb-0.1.tar.gz * If you have setuptools: easy_install pyISBNdb Try it, tell me what you think, and enjoy! -- Daniel Bickett dbickett at gmail dot com http://heureusement.org/ From fuzzyman at gmail.com Sat Apr 8 00:07:40 2006 From: fuzzyman at gmail.com (Fuzzyman) Date: 7 Apr 2006 15:07:40 -0700 Subject: ANN: ConfigObj 4.3.0 Message-ID: <1144447659.880720.223360@v46g2000cwv.googlegroups.com> `ConfigObj 4.3.0 `_ is now released. This has several bugfixes, as well as *several* major feature enhancements. You can download it from : `ConfigObj-4.3.0.zip 244Kb `_ .. raw:: html {title;What is ConfigObj ?} **ConfigObj** is a simple but powerful config file reader and writer: an *ini file round tripper*. Its main feature is that it is very easy to use, with a straightforward programmer's interface and a simple syntax for config files. It has lots of other features though : * Nested sections (subsections), to any level * List values * Multiple line values * String interpolation (substitution) * Integrated with a powerful validation system - including automatic type checking/conversion - repeated sections - and allowing default values * All comments in the file are preserved * The order of keys/sections is preserved * No external dependencies * Full Unicode support * A powerful ``unrepr`` mode for storing basic datatypes .. raw:: html {title;What's New ?} Moved the tests and the CHANGELOG (etc) into a separate file. This has reduced the size of ``configobj.py`` by about 40%. Added the ``unrepr`` mode to reading and writing config files. Thanks to Kevin Dangoor for this suggestion. Empty values are now valid syntax. They are read as an empty string ``''``. (``key =``, or ``key = # comment``.) ``validate`` now honours the order of the configspec. Added the ``copy`` mode to validate. Thanks to Louis Cordier for this suggestion. Fixed bug where files written on windows could be given ``'\r\r\n'`` line terminators. Fixed bug where last occurring comment line could be interpreted as the final comment if the last line isn't terminated. Fixed bug where nested list values would be flattened when ``write`` is called. Now sub-lists have a string representation written instead. Deprecated ``encode`` and ``decode`` methods instead. You can now pass in a ConfigObj instance as a configspec (remember to read the configspec file using ``list_values=False``). From gary at modernsongs.com Sat Apr 8 22:25:52 2006 From: gary at modernsongs.com (Gary Poster) Date: Sat, 8 Apr 2006 16:25:52 -0400 Subject: Fredericksburg, VA ZPUG Apr 12: Zenoss (Zope/Python network monitoring) and py2exe Message-ID: <6D4DA6F3-E742-414C-9891-5D8B9189842D@modernsongs.com> Please join us Wed., April 12, 7:30-9:00 PM, for another meeting of the Fredericksburg, VA Zope and Python User Group ("ZPUG"). We will have a lightning talk about py2exe (build a Windows executable from a Python app), a full presentation on Zenoss (network and systems monitoring application written in Python/Zope), and some nice snacks. Because of the Zenoss presentation, this will be a joint ZPUG and LUG (Linux Users Group) meeting. Lightning Talk: John Kimball will demonstrate how to use Py2Exe to create a standalone Windows executable from a Python script. Full presentation: Zenoss is a powerful network and systems monitoring application written in Python/Zope that has recently been launched at www.zenoss.org. Erik Dahl and Bill Karpovich from Zenoss will provide an overview of the project, a walkthrough of the architecture and a live demonstration. General ZPUG information When: second Wednesday of every month, 7:30-9:00. Where: Zope Corporation offices. 513 Prince Edward Street; Fredericksburg, VA 22408 (tinyurl for map is http://tinyurl.com/duoab). Parking: Zope Corporation parking lot; entrance on Prince Edward Street. Topics: As desired (and offered) by participants, within the constraints of having to do with Python or Zope. Mailing list: fredericksburg-zpug at zope.org Contact: Gary Poster (gary at zope.com) From bvdp at xplornet.com Sun Apr 9 22:23:26 2006 From: bvdp at xplornet.com (bvdp at xplornet.com) Date: 9 Apr 2006 13:23:26 -0700 Subject: Beta 0.21 of MMA - Musical MIDI Accompaniment Message-ID: <1144614206.692894.61120@e56g2000cwe.googlegroups.com> Beta 0.21 of MMA - Musical MIDI Accompaniment - is now available for downloading. Included in this release: Minor bug fixes, MAJOR change to the modules filename and import routines (shout if broken), MidiInc fixes, MidiInc lyrics import. Yet again, this may be the last BETA!!! MMA is a accompaniment generator -- it creates midi tracks for a soloist to perform with. User supplied files contain pattern selections, chords, and MMA directives. For full details please visit: http://users.xplornet.com/~bvdp/mma/ If you have any questions or comments, please send them to: bvdp at xplornet.com From gpsmith at gmail.com Mon Apr 10 00:31:48 2006 From: gpsmith at gmail.com (Gregory P. Smith) Date: 9 Apr 2006 15:31:48 -0700 Subject: ANN: hashlib 20060408a Message-ID: <1144621908.060620.11160@i40g2000cwc.googlegroups.com> WHAT hashlib 20060408a - A python module providing access to MD5, SHA1, SHA224, SHA256, SHA384 and SHA512 secure hash algorithms. It uses OpenSSL (when available) to provide much faster platform optimized versions of all of the above. When linked with OpenSSL additional algorithms are also available. WHERE http://code.krypto.org/python/hashlib/ WHY hashlib is included in Python 2.5, this is a backport to make the new algorithms and optimized implementations available to earlier Python versions. From ian at excess.org Sun Apr 9 23:57:18 2006 From: ian at excess.org (Ian Ward) Date: Sun, 09 Apr 2006 17:57:18 -0400 Subject: ANN: Speedometer 2.4 - bandwidth and download monitor Message-ID: <4439833E.2000908@excess.org> Announcing Speedometer 2.4 -------------------------- Speedometer home page: http://excess.org/speedometer/ Download: http://excess.org/speedometer/speedometer.py New in this release: ==================== - New -z option treats files that don't exist as zero length so speedometer will not wait for them to be created at startup. - Multiple file taps may now be used stacked vertically in the same column. About Speedometer ================= Speedometer is a console bandwidth and file download progress monitor with a logarithmic bandwidth display and a simple command-line interface. Speedometer requires Python 2.1 or later and Urwid 0.8.9 or later for full-console bar graph display. Urwid may be downloaded from: http://excess.org/urwid/ Speedometer is released under the GNU LGPL. From michael at stroeder.com Mon Apr 10 07:28:44 2006 From: michael at stroeder.com (=?ISO-8859-1?Q?Michael_Str=F6der?=) Date: Mon, 10 Apr 2006 07:28:44 +0200 Subject: ANN: python-ldap-2.2.0 Message-ID: <4439ED0C.9040800@stroeder.com> Find a new 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.2.0 2006-04-10 Changes since 2.0.11: * OpenLDAP 2.2+ required now to build. Modules/ * Dropped all occurences of '#ifdef #LDAP_VENDOR_VERSION'. * Fixed wrong tuple size in l_ldap_result3() (see SF#1368108) * Fixed get_option(ldap.OPT_API_INFO) (see SF#1440165) * Fixed memory leak in l_ldap_result3() when all=0 (see SF#1457325) * Fixed memory leak in l_ldap_result3() in error cases (see SF#1464085) Lib/ * Fixed ldap.schema.models.DITStructureRule.__str__() to separate SUP rule-ids with a single space instead of ' $ ' * Fixed ldap.async.Dict * Added ldap.async.IndexedDict * ldap.schema.subentry.SubSchema.attribute_types() has new key-word argument ignore_dit_content_rule From aahz at pythoncraft.com Tue Apr 11 05:20:52 2006 From: aahz at pythoncraft.com (Aahz) Date: Mon, 10 Apr 2006 20:20:52 -0700 Subject: BayPIGgies: April 13, 7:30pm (IronPort) Message-ID: <20060411032052.GA2596@panix.com> The next meeting of BayPIGgies will be Thurs, April 13 at 7:30pm at IronPort. This meeting features JJ reviewing "Professional Software Development" with discussion and newbie questions afterward. BayPIGgies meetings alternate between IronPort (San Bruno, California) and Google (Mountain View, California). For more information and directions, see http://baypiggies.net/ Before the meeting, we sometimes meet at 6pm for dinner. Discussion of dinner plans is handled on the BayPIGgies mailing list. Advance notice: We have a speaker for May. We can use speakers for June/July. Please e-mail baypiggies at python.org if you want to suggest an agenda (or volunteer to give a presentation). -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "LL YR VWL R BLNG T S" From jUrner at arcor.de Tue Apr 11 14:57:48 2006 From: jUrner at arcor.de (=?iso-8859-1?q?J=FCrgen_Urner?=) Date: 11 Apr 2006 05:57:48 -0700 Subject: ANN: uuid-0.3.0 released Message-ID: <1144760268.519880.313140@t31g2000cwb.googlegroups.com> Happy to announce the release of uuid-0.3.0 What is "uuid"? "uuid" is a python module to generate RFC 4122 compatible UUIDs The new release includes some bugfixes a new function format_mac_address(), other minor changes + an update on the documentation to provide some more background information. For download and documentation see http://home.arcor.de/jurner/python/ From hosalo at _NO_SPAM_gmail.com Tue Apr 11 15:27:17 2006 From: hosalo at _NO_SPAM_gmail.com (Heikki Salo) Date: Tue, 11 Apr 2006 13:27:17 GMT Subject: ANN: DirectPython 0.3.0 Message-ID: A new version of DirectPython is now available at http://directpython.sourceforge.net/ What is it? ----------- DirectPython is a C++ extension to the Python programming language which provides basic access to DirectX (9.0c) API, including Direct3D, DirectSound, DirectShow and DirectInput. The full distribution is very easy to install and it includes many samples and documentation that show the basics of DirectPython programming. No additional packages are needed. Whats new in 0.3.0? ------------------ -New samples -New functions and classes -Slightly improved documentation -Bug fixes Requirements ------------- A Windows operating system with Python 2.4.x and DirectX 9.0c installed. From johan at gnome.org Tue Apr 11 16:23:43 2006 From: johan at gnome.org (Johan Dahlin) Date: Tue, 11 Apr 2006 11:23:43 -0300 Subject: ANNOUNCE: PyGObject 2.10.1 Message-ID: <443BBBEF.8080402@gnome.org> I am pleased to announce version 2.10.1 of the Python bindings for GObject. The new release is available from ftp.gnome.org as and its mirrors as soon as its synced correctly: http://ftp.gnome.org/pub/GNOME/sources/pygobject/pygobject-2.10.1.tar.gz What's new since PyGObject 2.10.0: - uint64 property bug fix (Andy Wingo) - Hard code path to 2.0 (Gustavo) - Allow only tuples and lists in strv to value (Gustavo) - Include dsextras.py in the dist (Johan) Blurb: GObject is a object system library used by GTK+ and GStreamer. PyGObject provides a convenient wrapper for the GObject+ library for use in Python programs, and takes care of many of the boring details such as managing memory and type casting. When combined with PyGTK, PyORBit and gnome-python, it can be used to write full featured Gnome applications. Like the GObject library itself PyGObject is licensed under the GNU LGPL, so is suitable for use in both free software and proprietary applications. It is already in use in many applications ranging from small single purpose scripts up to large full featured applications. PyGObject requires GObject >= 2.8.0 and Python >= 2.3.5 to build. Bug reports, as always, should go to Bugzilla; check out http://www.pygtk.org/developer.html and http://www.pygtk.org/feedback.html for links to posting and querying bug reports for PyGTK. From spam-python at udev.org Tue Apr 11 18:23:36 2006 From: spam-python at udev.org (Antony Lesuisse) Date: Tue, 11 Apr 2006 18:23:36 +0200 Subject: ANN: QWeb, a python framework to build web applications quickly Message-ID: <443BD808.3020806@udev.org> Can you imagine a day without a new python web framework ? QWeb is Yet an another web framework (WSGI compatible). This one is in the spirit of web.py (http://webpy.org/) URL: http://antony.lesuisse.org/qweb/trac/ It provides: * A lightweight request handler (QWebRequest) * An xml templating engine (QWebXml and QWebHtml) * A simple name based controler (qweb_control) * A standalone WSGI Server (QWebWSGIServer) * A cgi and fastcgi WSGI wrapper (taken from flup) * A startup function that starts cgi, factgi or standalone according to the evironement (qweb_autorun). The templating system (that can be used independently) is IMHO superior to everything else. It looks like kid or ZPT. It takes pure XML to generate any kind of textual output (valid or non valid xml). It's very simple and extensible. QWebHtml is an extension of the basic templates that support urls and forms. The example blog shows how to use the templates: http://antony.lesuisse.org/qweb/files/QWeb-0.5-blog.tar.gz It's a small blog engine with comments made of 2 files. It uses sqlobject and sqlite as backend. blog.py 131 lines long (model and controller) template.xml 380 lines long (views 6 templates) The demo example illustrate the use of the request object and static component: http://antony.lesuisse.org/qweb/files/QWeb-0.5-demo.tar.gz Helloworld ---------- import qweb def helloapp(environ, start_response): req = qweb.QWebRequest(environ, start_response) req.response_headers['Content-type'] = 'text/plain' req.write('Hello World') return req if __name__ == '__main__': qweb.qweb_wsgi_autorun(helloapp) Example template: ----------------- democall called,



The QWebXml and QWebHTML templating system

     Basic tags: t-raw t-esc t-if t-foreach t-call t-set t-trim
     
test KO OK the value of arg1 body of the call i=
Usage of template: ------------------ import qweb t=qweb.QWebHtml('file.xml') t.render("demo_template",{'varname':"some text with a tag "}) From travis at enthought.com Tue Apr 11 22:10:30 2006 From: travis at enthought.com (Travis N. Vaught) Date: Tue, 11 Apr 2006 15:10:30 -0500 Subject: ANN: SciPy 2006 Conference Message-ID: <443C0D36.80608@enthought.com> Greetings, The *SciPy 2006 Conference* is scheduled for August 17-18, 2006 at CalTech. A tremendous amount of work has gone into SciPy and Numpy over the past few months, and the scientific python community around these and other tools has truly flourished[1]. The Scipy 2006 Conference is an excellent opportunity to exchange ideas, learn techniques, contribute code and affect the direction of scientific computing with Python. Conference details are at http://www.scipy.org/SciPy2006 Keynote ------- Python language author Guido van Rossum (!) has agreed to be the Keynote speaker at this year's Conference. http://www.python.org/~guido/ Registration: ------------- Registration is now open. You may register early online for $100.00 at http://www.enthought.com/scipy06. Registration includes breakfast and lunch Thursday & Friday and a very nice dinner Thursday night. After July 14, 2006, registration will cost $150.00. Call for Presenters ------------------- If you are interested in presenting at the conference, you may submit an abstract in Plain Text, PDF or MS Word formats to abstracts at scipy.org -- the deadline for abstract submission is July 7, 2006. Papers and/or presentation slides are acceptable and are due by August 4, 2006. Tutorial Sessions ----------------- Several people have expressed interest in attending a tutorial session. The Wednesday before the conference might be a good day for this. Please email the list if you have particular topics that you are interested in. Here's a preliminary list: - Migrating from Numeric or Numarray to Numpy - 2D Visualization with Python - 3D Visualization with Python - Introduction to Scientific Computing with Python - Building Scientific Simulation Applications - Traits/TraitsUI Please rate these and add others in a subsequent thread to the SciPy-user mailing list. Perhaps we can pick 4-6 top ideas and recruit speakers as demand dictates. The authoritative list will be tracked here: http://www.scipy.org/SciPy2006/TutorialSessions Coding Sprints -------------- If anyone would like to arrive earlier (Monday and Tuesday the 14th and 15th of August), we can borrow a room on the CalTech campus to sit and code against particular libraries or apps of interest. Please register your interest in these coding sprints on the SciPy-user mailing list as well. The authoritative list will be tracked here: http://www.scipy.org/SciPy2006/CodingSprints Mailing list address: scipy-user at scipy.org Mailing list archives: http://dir.gmane.org/gmane.comp.python.scientific.user Mailing list signup: http://www.scipy.net/mailman/listinfo/scipy-user [1] Some stats: NumPy has averaged over 16,000 downloads per month Sept. 05 to March 06. SciPy has averaged over 3,800 downloads per month in Feb. and March 06. (both scipy and numpy figures do not include the 2000 instances per month downloaded as part of the Python Enthought Edition Distribution for Windows.) From nnorwitz at gmail.com Wed Apr 12 08:30:07 2006 From: nnorwitz at gmail.com (Neal Norwitz) Date: Tue, 11 Apr 2006 23:30:07 -0700 Subject: IMPORTANT 2.5 API changes for C Extension Modules and Embedders Message-ID: If you don't write or otherwise maintain Python Extension Modules written in C (or C++) or embed Python in your application, you can stop reading. Python 2.5 alpha 1 was released April 5, 2006. The second alpha should be released in a few weeks. There are several changes which can cause C extension modules or embedded applications to crash the interpreter if not fixed. Periodically, I will send out these reminders with updated information until 2.5 is released. * support for 64-bit sequences (eg, > 2GB strings) * memory allocation modifications 64-bit changes -------------- There are important changes that are in 2.5 to support 64-bit systems. The 64-bit changes can cause Python to crash if your module is not upgraded to support the changes. Python was changed internally to use 64-bit values on 64-bit machines for indices. If you've got a machine with more than 16 GB of RAM, it would be great if you can test Python with large (> 2GB) strings and other sequences. For more details about the Python 2.5 schedule: http://www.python.org/dev/peps/pep-0356/ For more details about the 64-bit change: http://www.python.org/dev/peps/pep-0353/ How to fix your module: http://www.python.org/dev/peps/pep-0353/#conversion-guidelines The effbot wrote a program to check your code and find potential problems with the 64-bit APIs. http://svn.effbot.python-hosting.com/stuff/sandbox/python/ssizecheck.py Memory Allocation Modifications ------------------------------- In previous versions of Python, it was possible to use different families of APIs (PyMem_* vs. PyObject_*) to allocate and free the same block of memory. APIs in these families include: PyMem_*: PyMem_Malloc, PyMem_Realloc, PyMem_Free, PyObject_*: PyObject_Malloc, PyObject_Realloc, PyObject_Free There are a few other APIs with similar names and also the macro variants. In 2.5, if allocate a block of memory with one family, you must reallocate or free with the same family. That means: If you allocate with PyMem_Malloc (or MALLOC), you must reallocate with PyMem_Realloc (or REALLOC) and free with PyMem_Free (or FREE). If you allocate with PyObject_Malloc (or MALLOC), you must reallocate with PyObject_Realloc (or REALLOC) and free with PyObject_Free (or FREE). Using inconsistent APIs can cause double frees or otherwise crash the interpreter. It is fine to mix and match functions or macros within the same family. Please test and upgrade your extension modules! Cheers, n From jdavid at itaapy.com Wed Apr 12 10:12:55 2006 From: jdavid at itaapy.com (=?UTF-8?B?IkouIERhdmlkIEliw6HDsWV6Ig==?=) Date: Wed, 12 Apr 2006 10:12:55 +0200 Subject: itools 0.13.1 released Message-ID: <443CB687.9040907@itaapy.com> itools is a Python library, it groups a number of packages into a single meta-package for easier development and deployment: itools.catalog itools.i18n itools.uri itools.cms itools.ical itools.web itools.csv itools.resources itools.workflow itools.datatypes itools.rss itools.xhtml itools.gettext itools.schemas itools.xliff itools.handlers itools.stl itools.xml itools.html itools.tmx Changes: Catalog - Allow indexing tuples of keywords, by Herv? Cauwelier. [#285] Web - In virtual hosting, fix "context.uri" when the URL path ends with a slash. CMS - Correctly initialize the catalog when creating a new itools.cms instance. - Correctly index the modification time. [#290] - Use the title of the workflow state (instead of its name), in the state form, by Herv? Cauwelier. [#273] - Fix several icons, by Herv? Cauwelier. - Fix the accout form so field completion works, by Herv? Cauwelier. [#288] - Close standard input, output and error when the server is started in normal mode (not debugging), by Herv? Cauwelier. - Now icms-start checks the server is not already running, and icms-stop checks the server is running. [#293] Packaging - Fix typo in "setup.py". - Make isetup-build more robust when trying to figure out the version number, by Herv? Cauwelier. [#292] Resources --------- Download http://www.ikaaro.org/download/itools/itools-0.13.1.tar.gz Home http://www.ikaaro.org/itools Mailing list http://in-girum.net/mailman/listinfo/ikaaro Bug Tracker http://bugs.ikaaro.org -- J. David Ib??ez Itaapy Tel +33 (0)1 42 23 67 45 9 rue Darwin, 75018 Paris Fax +33 (0)1 53 28 27 88 From johan at gnome.org Wed Apr 12 15:48:51 2006 From: johan at gnome.org (Johan Dahlin) Date: Wed, 12 Apr 2006 10:48:51 -0300 Subject: ANNOUNCE: PyGTK 2.8.6 Message-ID: <443D0543.1040003@gnome.org> I am pleased to announce version 2.8.6 of the Python bindings for GTK. The new release is available from ftp.gnome.org as and its mirrors as soon as its synced correctly: http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.8/pygtk-2.8.6.tar.gz What's new since 2.8.5: - Allow None to be set in gtk.TreeSortable.set_default_sort_func() (Johan, Patrick O'Brien) - 327778: Increase property size limit to G_MAXLONG (Gustavo, Wander Boessenkool) - 334027: Fix leaks in enum/flags (Michael Smith) - 334188: Call g_log_default_handler when python isn't initialized. (Gustavo) Blurb: GTK is a toolkit for developing graphical applications that run on systems such as Linux, Windows and MacOS X. It provides a comprehensive set of GUI widgets, can display Unicode bidi text. It links into the Gnome Accessibility Framework through the ATK library. PyGTK provides a convenient wrapper for the GTK+ library for use in Python programs, and takes care of many of the boring details such as managing memory and type casting. When combined with PyORBit and gnome-python, it can be used to write full featured Gnome applications. Like the GTK+ library itself PyGTK is licensed under the GNU LGPL, so is suitable for use in both free software and proprietary applications. It is already in use in many applications ranging from small single purpose scripts up to large full features applications. PyGTK requires GTK+ >= 2.8.0 and Python >= 2.3.5 to build. Bug reports, as always, should go to Bugzilla; check out http://pygtk.org/developer.html and http://pygtk.org/feedback.html for links to posting and querying bug reports for PyGTK. -- Johan Dahlin johan at gnome.org From aahz at pythoncraft.com Wed Apr 12 15:50:18 2006 From: aahz at pythoncraft.com (Aahz) Date: Wed, 12 Apr 2006 06:50:18 -0700 Subject: REMINDER: BayPIGgies: April 13, 7:30pm (IronPort) Message-ID: <20060412135018.GA13449@panix.com> The next meeting of BayPIGgies will be Thurs, April 13 at 7:30pm at IronPort. This meeting features JJ reviewing "Professional Software Development" with discussion and newbie questions afterward. BayPIGgies meetings alternate between IronPort (San Bruno, California) and Google (Mountain View, California). For more information and directions, see http://baypiggies.net/ Before the meeting, we sometimes meet at 6pm for dinner. Discussion of dinner plans is handled on the BayPIGgies mailing list. Advance notice: We have a speaker for May. We can use speakers for June/July. Please e-mail baypiggies at python.org if you want to suggest an agenda (or volunteer to give a presentation). -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "LL YR VWL R BLNG T S" From trentm at ActiveState.com Wed Apr 12 23:43:40 2006 From: trentm at ActiveState.com (Trent Mick) Date: Wed, 12 Apr 2006 14:43:40 -0700 Subject: ANN: ActivePython 2.4.3.12 is now available (bugfix for Windows) In-Reply-To: <20060406164517.GA16253@activestate.com> References: <20060406164517.GA16253@activestate.com> Message-ID: <20060412214340.GB31550@activestate.com> I'm happy to announce that ActivePython 2.4.3.12 builds for Windows are now available for free download from: http://www.ActiveState.com/Products/ActivePython/ This is a bug fix release to for one Windows issue: - Fix a bug that results in ".pyo" and ".pyc" being placed on the PATHEXT environment variable before ".py" for clean installs. Bug 33311. This can cause surprises for command-line usage for Python scripts when not specifying the ".py" extension. The new installer will fix PATHEXT on machines that hit this bug. See this thread for more details: http://tinyurl.com/poyhp If you use ActivePython on any other platform, 2.4.3.11 is still the latest build. What is ActivePython? --------------------- ActivePython is ActiveState's quality-assured binary distribution of Python. Builds for AIX, HP-UX, Linux, Mac OS X, Solaris, and Windows are made freely available. ActivePython includes the Python core and core extensions (zlib 1.2.3, bzip2 1.0.3, bsddb 4.2.52.NC, Tk 8.4.12, and Tix 8.1.4) and is fully compatible with other Python distributions of the same version. ActivePython also includes a wealth of Python documentation, including: - the core Python docs; - Andrew Kuchling's "What's New in Python" series; - the Non-Programmer's Tutorial for Python; - Mark Pilgrim's excellent "Dive into Python"; and - a snapshot of the Python FAQs, HOWTOs, and PEPs. An online version of the docs can be found here: http://aspn.activestate.com/ASPN/docs/ActivePython/2.4/welcome.html We would welcome any and all feedback to: ActivePython-feedback at ActiveState.com Please file bugs against ActivePython at: http://bugs.ActiveState.com/ActivePython On what platforms does ActivePython run? ---------------------------------------- ActivePython now includes installers for the following ten platforms: - AIX/PowerPC - HP-UX/PA-RISC - Linux/x86 - Linux/x86_64: "x86_64" is also known as "AMD64" - Solaris/SPARC - Solaris/x86 - Mac OS X/PowerPC - Mac OS X/x86 - Windows/x64: "x64" is also known as "AMD64" - Windows/x86 Extra Bits ---------- ActivePython releases also include the following packages: - Windows "debug" package: Debug-built binaries for ActivePython users building debug versions of their binary Python extensions. - ActivePython24.chm: An MS compiled help collection of the full ActivePython documentation set. Linux users of applications such as xCHM might find this useful. This package is installed by default on Windows. These packages are available from: ftp://ftp.activestate.com/ActivePython/etc/ Thanks, and enjoy! Trent, Python Tech Lead -- Trent Mick TrentM at ActiveState.com From daftspaniel at gmail.com Wed Apr 12 22:19:07 2006 From: daftspaniel at gmail.com (daftspaniel at gmail.com) Date: 12 Apr 2006 13:19:07 -0700 Subject: ANNOUNCE: Podcast of comp.lang.python.announce Message-ID: <1144873147.337985.187520@e56g2000cwe.googlegroups.com> Podcast RSS http://www.latedecember.com/sites/pythonpod/podcast2.xml For more detail, please see: http://www.latedecember.com/sites/content/All/index.html Thanks, Davy Mitchell From baas at ira.uka.de Thu Apr 13 22:18:10 2006 From: baas at ira.uka.de (Matthias Baas) Date: Thu, 13 Apr 2006 22:18:10 +0200 Subject: ANN: Python cgkit v2.0.0alpha6 & Maya Python package Message-ID: The sixth alpha release of version 2 of the Python Computer Graphics Kit is available at http://cgkit.sourceforge.net This release also comes with a "preview" version of a Maya Python package that integrates Python into the 3D tool Maya. What is it? ----------- The Python Computer Graphics Kit is a generic 3D package written in C++ and Python that can be used for a variety of domains such as scientific visualization, photorealistic rendering, Virtual Reality or even games. The package contains a number of generic modules that can be useful for any application that processes 3D data. This includes new types such as vectors, matrices and quaternions. Furthermore, the package can read and store 3D models in memory where they can be manipulated by Python programs. The kit comes with tools that can be used to display the scene either interactively or by rendering it offline via a RenderMan renderer. What's new? ----------- - Smoother compilation under OSX - Some new modules like "glslangparams" to read shader parameters from an OpenGL 2 shader source file and "hammersley" to generate Hammersley and Halton points. - Initial support for Lightwave LWOB files. - + more bugfixes and enhancements (see the changelog). Windows binary versions are available for Python 2.3 - 2.5. For more information, visit: http://cgkit.sourceforge.net Feedback is most welcome... - Matthias - From ian at showmedo.com Fri Apr 14 19:12:05 2006 From: ian at showmedo.com (Ian Ozsvald) Date: Fri, 14 Apr 2006 18:12:05 +0100 Subject: ANN: 3 new ShowMeDo.com videos on Python Objects Message-ID: <443FD7E5.10103@showmedo.com> Summary: At http://ShowMeDo.com we have 3 new videos by Jerol Harrington introducing Python Objects: http://showmedo.com/videoListPage?listKey=IntroductionToPythonObjectsUsingIPython_JerolH and 5 videos for beginners to wxPython: http://showmedo.com/videoListPage?listKey=PythonWxPythonBeginnersSeries making a total of 20 ShowMeDo videos, mostly about Python, all free. Detail: Jerol Harrington's ShowMeDos use the IPython shell to give an introduction to using 'class', '__init__', inheritance and attributes. I have been using Python for 3 years and I got something out of each of the videos. These videos represent our first user-contribution - thanks Jerol! In the 5 wxPython videos Kyran Dale walks you through the first steps of using wxPython - from downloading, installing (MS Windows), a first application and on to menubars and event handling. Also, in our latest update we have enabled voting on other user's requests: http://showmedo.com/requests There are 14 requests right now, feel free to share your view on which videos you would like to see. Some of the requests include List Comprehensions, py2exe, wxGlade, PyDev and other IDEs. Please get in touch if we're missing a topic that ought to be included, we will do our best to have new ShowMeDos made. About ShowMeDo.com: Free videos (we call them ShowMeDos) showing you how to do things. The videos are made by us and our users, for everyone. Ian Ozsvald, Kyran Dale ian at ShowMeDo.com http://ShowMeDo.com (http://blog.showmedo.com) From tkikuchi at is.kochi-u.ac.jp Sat Apr 15 07:41:07 2006 From: tkikuchi at is.kochi-u.ac.jp (Tokio Kikuchi) Date: Sat, 15 Apr 2006 14:41:07 +0900 Subject: RELEASED: Mailman 2.1.8 Message-ID: <44408773.6010206@is.kochi-u.ac.jp> On behalf of the development team, I'm pleased to announce the release of GNU Mailman 2.1.8. In this release, we have fixed a cross-site scripting security bug in the previous release (CVE-2006-1712), integrated a new version of email library (email-2.5.7), and added bounce processing supports for number of sites and MUAs. It is highly recommended that all sites using 2.1.7 and before should update to this release. Mailman is free software for managing email mailing lists and e-newsletters. For more information, see: http://mailman.sourceforge.net/ For links to download the Mailman 2.1.8 source tarball, see: http://sourceforge.net/project/showfiles.php?group_id=103 (Note that uploading to the mirror sites may be delayed.) -- Tokio Kikuchi From gsculpt at googlemail.com Sat Apr 15 15:53:44 2006 From: gsculpt at googlemail.com (Geoffrey French) Date: Sat, 15 Apr 2006 14:53:44 +0100 Subject: gSculpt - open source procedural 3d modeller Message-ID: <562c63b10604150653t40b3002an8b14bb89ac0c3f97@mail.gmail.com> Announcing gSculpt v0.99.5-alpha gSculpt is an open source, procedural 3d modelling application. It can be found at: http://gsculpt.sourceforge.net It is still in the alpha stages, so early days yet. It is written in Python and C++. It currently runs on Linux only. I would be very grateful for any feedback on peoples experiences with compiling and running gSculpt. I intend to produce a Win32 version in the future. My attempts so far have not yielded much success. If anyone with experience with porting Python extensions (using boost::python) from Linux to C++ could render any assistance in this regard, either in an advisory or active role, I would be very grateful. - Mr. Meanie -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-announce-list/attachments/20060415/4b015fa7/attachment.htm From ian at excess.org Sat Apr 15 17:44:40 2006 From: ian at excess.org (Ian Ward) Date: Sat, 15 Apr 2006 11:44:40 -0400 Subject: ANN: Urwid 0.9.3 - Console UI Library Message-ID: <444114E8.3020509@excess.org> Announcing Urwid 0.9.3 ---------------------- Urwid home page: http://excess.org/urwid/ Tarball: http://excess.org/urwid/urwid-0.9.3.tar.gz About this release: =================== This release adds support for gpm and mouse dragging to the raw_display module, improves mouse release reporting and fixes a few text layout bugs. If you are interested in Urwid's mouse support please try the input test example program and let me know if it works properly in your environment. user at host:~/urwid-0.9.3$ ./input_test.py will test the input of the curses_display module. user at host:~/urwid-0.9.3$ ./input_test.py raw will test the input of the raw_display module. Please post your results and details about your environment to the mailing list. New in this release: ==================== - Improved mouse reporting. The raw_display module now detects gpm mouse events by reading "/usr/bin/mev" output. The curses_display module already supports gpm directly. Mouse drag events are now reported by raw_display in terminals that provide button event tracking and on the console with gpm. Note that gpm may report coordinates off the screen if the user drags the mouse off the edge. Button release events now report which button was released if that information is available, currently only on the console with gpm. - Added display of raw keycodes to the input_test.py example program. - Fixed a text layout bug affecting clipped text with blank lines, and another related to wrapped text starting with a space character. - Fixed a Frame.keypress(..) bug that caused it to call keypress on unselectable widgets. About Urwid =========== Urwid is a console UI library for Python. It features fluid interface resizing, UTF-8 support, multiple text layouts, simple attribute markup, powerful scrolling list boxes and flexible interface design. Urwid is released under the GNU LGPL. From No.Spam at Spam.none Sat Apr 15 23:24:08 2006 From: No.Spam at Spam.none (I. Myself) Date: Sat, 15 Apr 2006 21:24:08 +0000 (GMT) Subject: Python used to animate a compiled C program Message-ID: SailChallenge was originally a program in C. It simulates a sailboat being navigated by an ANN (Artificial Neural Network). Now a Python "front end" has been created which invokes the compiled C program, and then captures the real time text output, converting it into an animation. A screen shot can be seen on our website. SailChallenge-2.0 is a free download from http://sourceforge.net/projects/annevolve. All source code is included, both C and Python. It will run on linux or Windows. Windows .exe files are available for Windows users who don't wish to compile the C code. Mitchell Timin -- I'm proud of http://ANNEvolve.sourceforge.net. If you want to write software, or articles, or do testing or research for ANNEvolve, let me know. Humans may know that my email address is: (but remove the 3 digit number) zenguy at shaw666 dot ca From greg at cosc.canterbury.ac.nz Sun Apr 16 09:13:33 2006 From: greg at cosc.canterbury.ac.nz (greg) Date: Sun, 16 Apr 2006 19:13:33 +1200 Subject: ANN: Pyrex 0.9.4 - LValue Casts are Dead! Message-ID: <4441EE9D.5020903@cosc.canterbury.ac.nz> Pyrex 0.9.4 is now available: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ Highlights of this version: No more lvalue casts I have redesigned the code generator to eliminate the need for lvalue casting. This means that Pyrex-generated code should now be gcc4-compatible, although I haven't tested this. Let me know if you find any remaining lvalue casts; they should be fairly easy to fix now. C++ compilable The generated code should now be compilable as either C or C++ without errors (although there may still be warnings). However, note that you can still only call C++ functions if they have been declared "extern C", even if you compile the Pyrex output as C++. I hope to introduce some C++ interface features soon. And more... A slew of other improvements and bug fixes have been made, see the CHANGES.txt file in the distribution or on the web page. What is Pyrex? -------------- Pyrex is a language for writing Python extension modules. It lets you freely mix operations on Python and C data, with all Python reference counting and error checking handled automatically. -- Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | Carpe post meridiam! | Christchurch, New Zealand | (I'm not a morning person.) | greg.ewing at canterbury.ac.nz +--------------------------------------+ From 2005a at usenet.alexanderweb.de Mon Apr 17 00:45:38 2006 From: 2005a at usenet.alexanderweb.de (Alexander Schremmer) Date: Mon, 17 Apr 2006 00:45:38 +0200 Subject: ANN: MoinMoin 1.5.3 (advanced wiki engine) released Message-ID: _ _ /\/\ ___ (_)_ __ /\/\ ___ (_)_ __ / \ / _ \| | '_ \ / \ / _ \| | '_ \ __ / /\/\ \ (_) | | | | / /\/\ \ (_) | | | | | /| |_ \/ \/\___/|_|_| |_\/ \/\___/|_|_| |_| |.__) ============================================== MoinMoin 1.5.3 advanced wiki engine released ============================================== MoinMoin is an easy to use, full-featured and extensible wiki software package written in Python. It can fulfill a wide range of roles, such as a personal notes organizer deployed on a laptop or home web server, a company knowledge base deployed on an intranet, or an Internet server open to individuals sharing the same interests, goals or projects. A wiki is a collaborative hypertext environment with an emphasis on easy manipulation of information. MoinMoin 1.5.3 is a bug fix release and a recommend update. The 1.5 branch brings you several new features such as the GUI editor, which allows the users to edit pages in a WYSIWYG environment, and many bug fixes. The download page: http://moinmoin.wikiwikiweb.de/MoinMoinDownload New features in 1.5.3 ===================== * Introduced a new script system that accumulates all scripts under a single command "moin". * LDAP and SMB authentication modules, enhanced authentication subsystem * The full text search engine supports indexing attachments now. (It is still not considered stable, though) Major bug fixes in 1.5.3 ======================== * Many GUI editor related bug fixes. * Enhanced usability of the login process. * Fixed a small problem that could lead to XSS issues. Major new features in 1.5 ========================= * The WYSIWYG editor for wiki pages allows you to edit pages without touching the markup. Furthermore, the wiki page is not stored as HTML after editing but kept as wiki markup in order to simplify the editing process for users that cannot or do not want to use the new editor. * AutoAdmin security policy allows users to gain admin permissions on particular pages. * The new authentication system allows to add short methods that check the credentials of the user. This allowed us to add eGroupware single sign on support. * Separation of homepages into a separate wiki (in a farm) and having a single user database is supported. * A DeSpam action to allow mass-reverting of spam attacks. * PackageInstaller support for simplified installation of plugins, themes and page bundles. This enables you to decide in which languages help pages should be installed. Note that Python 2.3.0 or newer is required. For a more detailed list of changes, see the CHANGES file in the distribution or http://moinmoin.wikiwikiweb.de/MoinMoinRelease1.5/CHANGES MoinMoin History ================ MoinMoin has been around since year 2000. The codebase was initally started by J?rgen Hermann; it is currently being developed by a growing team. Being originally based on PikiPiki, it has evolved heavily since then (PikiPiki and MoinMoin 0.1 consisted of just one file!). Many large enterprises have been using MoinMoin as a key tool of their intranet, some even use it for their public web page. A large number of Open Source projects use MoinMoin for communication and documentation. Of course there are also many private installations. More Information ================ * Project site: http://moinmoin.wikiwikiweb.de/ * Feature list: http://moinmoin.wikiwikiweb.de/MoinMoinFeatures * Download: http://moinmoin.wikiwikiweb.de/MoinMoinDownload * DesktopEdition: http://moinmoin.wikiwikiweb.de/DesktopEdition * This software is available under the GNU General Public License v2. * Changes: http://moinmoin.wikiwikiweb.de/MoinMoinRelease1.5/CHANGES * Known bugs: * http://moinmoin.wikiwikiweb.de/KnownIssues * http://moinmoin.wikiwikiweb.de/MoinMoinBugs sent by Alexander Schremmer for the MoinMoin team From richard at pyweek.org Mon Apr 17 01:36:17 2006 From: richard at pyweek.org (richard at pyweek.org) Date: Mon, 17 Apr 2006 09:36:17 +1000 Subject: PyWeek Python Game Programming Challenge #2 has finished! Message-ID: <200604170936.17563.richard@pyweek.org> Congratulations to Rushed and Team Pekuja for taking out the top placings in the individual and team categories. Go see all the entries, ratings and diaries at: http://www.pyweek.org/2/ The PyWeek challenge: - Invites entrants to write a game in one week from scratch either as an individual or in a team, - Is intended to be challenging and fun, - Will hopefully increase the public body of game tools, code and expertise, - Will let a lot of people actually finish a game, and - May inspire new projects (with ready made teams!) Entries must be developed in Python during the challenge, and must incorporate some theme decided at the start of the challenge. See the challenge rules for more information. The next PyWeek will be in 6 months. -- Visit the PyWeek website: http://www.pyweek.org/ From IvoNet at gmail.com Tue Apr 18 08:24:47 2006 From: IvoNet at gmail.com (Ivo) Date: 17 Apr 2006 23:24:47 -0700 Subject: New PPCEncoder available (v00.34) Message-ID: <1145341487.321712.253970@t31g2000cwb.googlegroups.com> PPCEncoder The xViD encoder for a PocketPC like aparatus has new features. - IconTray in minimize - Set Processing priority. Very handy If you want to convert movies and still be able to work on you PC during the conversion This application Encodes video to PocketPC DivX format and size. With PPCEncoder you can encode and optimize your movies for the size of your PocketPC screen and memory card Check it out here: http://IvoNet.nl From tomerfiliba at gmail.com Wed Apr 19 00:47:12 2006 From: tomerfiliba at gmail.com (tomerfiliba at gmail.com) Date: 18 Apr 2006 15:47:12 -0700 Subject: Construct 1.25 released Message-ID: <1145400432.878672.186560@g10g2000cwb.googlegroups.com> Construct, the "parsing made fun" library this release focused on minor bugfixes and other small improvements http://pyconstruct.sourceforge.net http://pyconstruct.wikispaces.net -tomer From jdavid at itaapy.com Wed Apr 19 17:07:56 2006 From: jdavid at itaapy.com (=?UTF-8?B?IkouIERhdmlkIEliw6HDsWV6Ig==?=) Date: Wed, 19 Apr 2006 17:07:56 +0200 Subject: itools 0.13.2 released Message-ID: <4446524C.2010200@itaapy.com> itools is a Python library, it groups a number of packages into a single meta-package for easier development and deployment: itools.catalog itools.i18n itools.uri itools.cms itools.ical itools.web itools.csv itools.resources itools.workflow itools.datatypes itools.rss itools.xhtml itools.gettext itools.schemas itools.xliff itools.handlers itools.stl itools.xml itools.html itools.tmx Changes: Handlers - Remove obsolete module "Python.py" (#297). CSV - Fix "add_row" when the schema is defined, by Herv? Cauwelier (#296). Catalog - Now the text analyser accepts numbers. Packaging - Implement "get_version" to help other packages to define __version__. Web - Now canonical URLs never end with a slash (#294). CMS - Several fixes related to virtual hosting. - Now "icms-start" refuses to start the server if the instance is not up-to-date (#301). - Speed-up "icms-init" and "icms-update". Resources --------- Download http://www.ikaaro.org/download/itools/itools-0.13.2.tar.gz Home http://www.ikaaro.org/itools Mailing list http://in-girum.net/mailman/listinfo/ikaaro Bug Tracker http://bugs.ikaaro.org -- J. David Ib??ez Itaapy Tel +33 (0)1 42 23 67 45 9 rue Darwin, 75018 Paris Fax +33 (0)1 53 28 27 88 From mark.m.mcmahon at gmail.com Thu Apr 20 01:52:46 2006 From: mark.m.mcmahon at gmail.com (Mark Mc Mahon) Date: Wed, 19 Apr 2006 19:52:46 -0400 Subject: ANN: pywinauto 0.3.3 released - bug fixes, added methods, removed deprecated methods Message-ID: <71b6302c0604191652g2ac26159wb5a8eab20431f1c6@mail.gmail.com> Hi, 0.3.3 release of pywinauto is now available. pywinauto is a set of open-source (LGPL) modules for using Python as a GUI automation 'driver' for Windows NT based Operating Systems (NT/W2K/XP). SourceForge project page: http://sourceforge.net/projects/pywinauto Download from SourceForge http://sourceforge.net/project/showfiles.php?group_id=157379 Here is the list of changes from 0.3.2: 0.3.3 Added some methods, and fixed some small bugs ------------------------------------------------------------------ 19-Apr-2006 * Added a wait for the control to be active and configurable sleeps after 'modifying' actions (e.g. Select, Deselect, etc) * Fixed Timings.Slow() and Timings.Fast() - they could in certain circumstances do the opposite! If you had already set a timing slower or faster then they would set it then they would blindly ignore that and set their own times. I added functionality that they will take either the slowest or fastest of the new/current setting rather then blindly setting to the new value. * Fixed some hidden bugs with HwndWrapper.CloseClick() * Fixed a bug in setup.py that would raise an error when no argument was specified * Added an argument to HwndWrapper.SendMessageTimeout so that the wait options could be passed in. * Added HwndWrapper.Close(), Maximize(), Minimize(), Restore() and GetShowState(). * Commented out all deprecated methods (will be removed completely in some future release). * Added Application.kill_() method - which closes all windows and kills the application. If the application is asking if you want to save your changes - you will not be able to click yes or no and the application will be killed anyway!. If you want to follow this project then please sign up to the mailing list: https://lists.sourceforge.net/mailman/listinfo/pywinauto-users Thanks Mark -------------------------------------------- Mark Mc Mahon Manchester, NH 03110, USA

pywinauto 0.3.3 Simple Windows GUI automation with Python. (19-Apr-06) From gward-1337f07a94b43060ff5c1ea922ed93d6 at python.net Thu Apr 20 03:46:20 2006 From: gward-1337f07a94b43060ff5c1ea922ed93d6 at python.net (Greg Ward) Date: Wed, 19 Apr 2006 21:46:20 -0400 Subject: ANNOUNCE: Optik 1.5.1 Message-ID: <20060420014620.GA9343@cthulhu.gerg.ca> Optik 1.5.1 is now available, just 16 months after I first planned to release it (sigh). (Optik is a command-line parsing library for Python, also known as optparse in the standard library; see http://optik.sourceforge.net/ for blurbs, docs, downloads, etc.) Changes since 1.5: * Fix so the 'merge' script works again (bugs spotted, and mostly fixed, by Andrea 'fwyzard' Bocci). * SF bug #1145594: add 'destroy()' method to OptionParser so applications can explicitly break reference cycles, making life easier for Python's garbage collector. * SF feature #988126: add 'epilog' attribute to OptionParser (and constructor arg): paragraph of text to print after the main option help. * Corrected French translation (po/optik/fr.po) (Laurent Laporte). * Beefed up reference guide. * Backported to Python 2.0/2.1 (Giovanni Bajo). Greg -- Greg Ward http://www.gerg.ca/ "... but in the town it was well known that when they got home their fat and psychopathic wives would thrash them to within inches of their lives ..." From nnorwitz at gmail.com Thu Apr 20 09:32:56 2006 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 20 Apr 2006 00:32:56 -0700 Subject: Python Software Foundation seeks mentors and students for Google Summer of Code Message-ID: This spring and summer, Google will again provide stipends for students (18+, undergraduate thru PhD programs) to write new open-source code. The Python Software Foundation (PSF) http://www.python.org/psf/ will again act as a sponsoring organization in Google's Summer of Code, matching mentors and projects benefiting Python and Python users. Projects can include work on the core Python language, programmer utilities, libraries, packages, frameworks related to Python, or other Python implementations like Jython, PyPy, or IronPython. Please add your project ideas to the existing set at http://wiki.python.org/moin/SummerOfCode Mentoring instructions are also on this page. The deadline is soon, so please sign up as a mentor early. If you are a student considering a project, you should start deciding now. Feel free to ask questions on python-dev at python.org The main page for the Summer of Code is http://code.google.com/summerofcode.html At the bottom are links to StudentFAQ, MentorFAQ, and TermsOfService. The first two have the timeline. Note that student applications are due between May 1, 17:00 PST and May 8, 17:00 PST. People interested in mentoring a student though PSF are encouraged to contact me, Neal Norwitz at nnorwitz at gmail.com. People unknown to Guido or myself should find a couple of people known within the Python community who are willing to act as references. Feel free to contact me if you have any questions. I look forward to meeting many new mentors and students. Let's improve Python! Cheers, n From sylvain.thenault at logilab.fr Thu Apr 20 10:06:59 2006 From: sylvain.thenault at logilab.fr (Sylvain =?iso-8859-1?Q?Th=E9nault?=) Date: Thu, 20 Apr 2006 10:06:59 +0200 Subject: [ANN] PyLint 0.11 / astng 0.16 Message-ID: <20060420080659.GF4037@logilab.fr> Hi there! I'm please to announce new releases of pylint (0.11) and its underlying library astng (0.16). Those releases should fix a number of crashes and false positive and provide a few new options/features, the most notable one being the ability to enable/disable messages at block level in the code (I'll post an example of this new feature on the python-projects mailing-list). Thanks to every people helping pylint by their feedback and bug reports, and special thanks to Benjamin Niemann for his message control patch... To get the new releases of more information : http://www.logilab.org/projects/pylint/ http://www.logilab.org/projects/astng/ Enjoy ! -- Sylvain Th?nault LOGILAB, Paris (France). http://www.logilab.com http://www.logilab.fr http://www.logilab.org From aahz at pythoncraft.com Thu Apr 20 23:46:25 2006 From: aahz at pythoncraft.com (Aahz) Date: Thu, 20 Apr 2006 14:46:25 -0700 Subject: SPECIAL: BayPIGgies: April 26, 7:30pm (Google) Message-ID: <20060420214625.GA9590@panix.com> NOTE: Special date of WEDNESDAY April 26 at Google, usual time of 7:30pm Special meeting! One of the lead developers of Django is in town! Jacob Kaplan-Moss will be talking about Django at Google. More details as they get finalized -- but save the date! (No, it's not on the website yet...) This does not change the usual May meeting on May 11 at Google; stay tuned for an announcement of that. BayPIGgies meetings alternate between IronPort (San Bruno, California) and Google (Mountain View, California). For more information and directions, see http://baypiggies.net/ Before the meeting, we sometimes meet at 6pm for dinner. Discussion of dinner plans is handled on the BayPIGgies mailing list. Advance notice: We have a speakers for May and June. We are currently setting up the schedule for the rest of the year. Please e-mail baypiggies at python.org if you want to suggest an agenda (or volunteer to give a presentation). -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "Argue for your limitations, and sure enough they're yours." --Richard Bach From greg at cosc.canterbury.ac.nz Fri Apr 21 09:56:02 2006 From: greg at cosc.canterbury.ac.nz (greg) Date: Fri, 21 Apr 2006 19:56:02 +1200 Subject: ANN: Pyrex 0.9.4.1 Message-ID: <4arhgaFuhgj2U1@individual.net> Pyrex 0.9.4.1 is now available: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ This is a very minor update to correct a tab/space problem in the distutils extension. What is Pyrex? -------------- Pyrex is a language for writing Python extension modules. It lets you freely mix operations on Python and C data, with all Python reference counting and error checking handled automatically. -- Greg From edreamleo at charter.net Fri Apr 21 14:58:01 2006 From: edreamleo at charter.net (Edward K. Ream) Date: Fri, 21 Apr 2006 07:58:01 -0500 Subject: ANN: Leo 4.4 b4 released Message-ID: Leo 4.4 beta 4 is now available at: http://sourceforge.net/project/showfiles.php?group_id=3458&package_id=29106 This version fixes a long-standing MacOS bug. It is likely to be the last beta release before 4.4 rc1. This release also adds several new commands and contains a script for updating leoSettings.leo. Warning: The previous beta was not widely distributed. Please do some testing in your environment before recommending this version of Leo to others, (such as your students). Leo is a text editor, data organizer, project manager and much more. See: http://webpages.charter.net/edreamleo/intro.html The highlights of Leo 4.4: -------------------------- - An Emacs-like mini-buffer: you can now execute any command by typing its long name, with tab completion. - Many new commands, including cursor and screen movement, basic character, word and paragraph manipulation, and commands to manipulate buffers, the kill ring, regions and rectangles. You can use Leo without using a mouse. - Flexible key bindings and input modes. You can emulate the operation of Emacs, Vim, or any other editor. - A tabbed log pane. The Find and Spell Check commands now use tabs instead of dialogs, making those commands much easier to use. Plugins or scripts can easily create new tabs. The Completion tab shows possible typing completions. - Autocompletion and calltips. - Dozens of other new features and bug fixes since Leo 4.3.3. Links: ------ Leo: http://webpages.charter.net/edreamleo/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://sourceforge.net/cvs/?group_id=3458 Quotes: http://webpages.charter.net/edreamleo/testimonials.html Edward -------------------------------------------------------------------- Edward K. Ream email: edreamleo at charter.net Leo: http://webpages.charter.net/edreamleo/front.html -------------------------------------------------------------------- From aahz at pythoncraft.com Fri Apr 21 22:59:08 2006 From: aahz at pythoncraft.com (Aahz) Date: Fri, 21 Apr 2006 13:59:08 -0700 Subject: www.python.org problems Message-ID: <20060421205908.GA11853@panix.com> Before people start sending a flood of e-mail to webmaster, we already know that www.python.org is having problems. Please be patient. -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "Argue for your limitations, and sure enough they're yours." --Richard Bach From lcrees at gmail.com Sun Apr 23 08:51:19 2006 From: lcrees at gmail.com (L. C. Rees) Date: 22 Apr 2006 23:51:19 -0700 Subject: webstring 0.2 released Message-ID: <1145775079.149147.319680@v46g2000cwv.googlegroups.com> This is the second public release of webstring. Improvements in this version include speed enhancements and the ability to mark groups of fields inside an XML/HTML document with an XML/HTML attribute (by default "class") so they can be manipulated in a single operation. webstring is a template system that lets Python programmers manipulate XML and HTML documents using standard Python sequence and string operators. It is designed for those whose preferred web template languages are Python and HTML. webstring's design is inspired by PyMeld but with a stricter Python feel. Like PyMeld, webstring separates the view (the XML/HTML document) from the controller (Python). It uses XML/HTML attributes (by default "id") to mark which tags in a document are fields where content can be inserted or substituted. webstring flattens a document into a Python object hierarchy, exposing only parts of the document you need to manipulate. webstring is a wrapper for Fredrik Lundh's cElementTree package, so both cElementTree and elementtree are required. It also requires Fredrik Lundh's elementtidy package for trying hack through odd HTML. These packages are available for download at: http://effbot.org/downloads/ webstring is currently only known to work with Python 2.4. webstring documentation can be found at: http://psilib.sourceforge.net/webstring.html Future planned enhancements include making webstring capable of using lxml as an optional backend. The file is available for download from: http://prdownloads.sourceforge.net/psilib/webstring.py?download From levub137 at wi.rr.com Sun Apr 23 14:45:38 2006 From: levub137 at wi.rr.com (Raymond L. Buvel) Date: Sun, 23 Apr 2006 07:45:38 -0500 Subject: [ANN] crcmod-1.3 CRC Generator Message-ID: <444B76F2.1070103@wi.rr.com> Crcmod is a Python package 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. Home page: http://crcmod.sourceforge.net/ Changes in 1.3 * Make compatible with Python 2.5 on 64-bit platforms. * Improve the install procedure. From cito at online.de Sun Apr 23 23:07:23 2006 From: cito at online.de (Christoph Zwerschke) Date: Sun, 23 Apr 2006 23:07:23 +0200 Subject: ANN: Webware 0.9.1 released Message-ID: Webware 0.9.1 has been released. This release of Webware for Python includes a few fixes and improvements of the WebKit, MiddleKit and KidKit components. Webware for Python is a suite of Python packages and tools for developing object-oriented, web-based applications. The suite uses well known design patterns and includes a fast Application Server, Servlets, Python Server Pages (PSP), Object-Relational Mapping, Task Scheduling, Session Management, and many other features. Webware is very modular and easily extended. Webware for Python is well proven and platform-independent. It is compatible with multiple web servers, database servers and operating systems. Check out the Webware for Python home page at http://www.w4py.org From cochrane at avon.esscc.uq.edu.au Mon Apr 24 18:11:42 2006 From: cochrane at avon.esscc.uq.edu.au (cochrane at avon.esscc.uq.edu.au) Date: 24 Apr 2006 16:11:42 GMT Subject: ANN: PyScript 0.6.0 released Message-ID: Overview: PyScript is a python module for producing high quality postscript graphics. Rather than use a GUI to draw a picture, the picture is programmed using python and the PyScript objects. Some of the key features are: * All scripting is done in python, which is a high level, easy to learn, well developed scripting language. * All the objects can be translated, scaled, rotated, ... in fact any affine transformation. * Plain text is automatically kerned. * You can place arbitrary LaTeX expressions on your figures. * You can create your own figure objects, and develop a library of figure primitives. * Output is publication quality. License: Released under the GPL Changes: The major change in this release is a complete rewrite of the Talk and Poster classes of the presentation library. There have also been many bug fixes and minor other improvements. For details see the PyScript web page: pyscript.sourceforge.net. Getting the software: One can download the latest version (0.6) from: PyScript Requirements: * Python 2.2 and above * An up-to-date LaTeX distribution Authors: * Alexei Gilchrist * Paul Cochrane If you use this software, have any suggestions, or bug reports, please let us know! -- paultcochrane at users.sourceforge.net From fabiofz at gmail.com Mon Apr 24 18:58:55 2006 From: fabiofz at gmail.com (Fabio Zadrozny) Date: Mon, 24 Apr 2006 13:58:55 -0300 Subject: Pydev and Pydev Extensions 1.0.6 release Message-ID: Hi All, Pydev and Pydev Extensions 1.0.6 have been released Check http://www.fabioz.com/pydev for details on Pydev Extensions and http://pydev.sf.net for details on Pydev Release Highlights in Pydev Extensions: ----------------------------------------------------------------- - New Feature: Show hierarchy (F4) -- Still in a beta state (currently only looks for subclasses on the same project). - Analysis happens in a Thread, so, you should now always have the latest parse without any halts (this happened only when the option was set to analyze only on save). - Class variable marked as error when self ommitted - when an undefined import is found within a try..except ImportError, it will not be reported. - Allow changing the keybinding for activating the Interactive Console (Ctrl+Enter) - Added a simple text-search that looks for in all .py and .pyw files (will be improved in the future to make a real python-like search). - The keywords that match the 'simple' keywords completion do not show up. Release Highlights in Pydev: ---------------------------------------------- - Assign variables to attributes (Ctrl+2+a): Contributed by Joel Hedlund (this is the first contribution using the new jython scripting engine). - 3 minor 'quirks' were fixed in the indentation engine - The debugger had some changes (so, if you had halts with it, please try it again). - Allow changing the keybinding for activating the Find next problem (Ctrl+.) - The debugger step-return had its behaviour changed. - Additional scripts location added to pythonpath in the jython scripting engine - Transversal of nested references improved - Fixed problems with compiled modules when they had 'nested' module structures (e.g.: wx.glcanvas) What is PyDev? --------------------------- PyDev is a plugin that enables users to use Eclipse for Python and Jython development -- making Eclipse a first class Python IDE -- It comes with many goodies such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others. Cheers, -- Fabio Zadrozny ------------------------------------------------------ Software Developer ESSS - Engineering Simulation and Scientific Software http://www.esss.com.br Pydev Extensions http://www.fabioz.com/pydev Pydev - Python Development Enviroment for Eclipse http://pydev.sf.net http://pydev.blogspot.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-announce-list/attachments/20060424/f73282fd/attachment.htm From jdahlin at async.com.br Tue Apr 25 19:34:48 2006 From: jdahlin at async.com.br (Johan Dahlin) Date: Tue, 25 Apr 2006 14:34:48 -0300 Subject: ANNOUNCE: kiwi 1.9.8 Message-ID: <444E5DB8.8000706@async.com.br> New in this released is API documentation which is generated using epydoc[3]. It's still being written but at this point I feel that it's good enough to be a very useful resource to help understand kiwi. Kiwi is a PyGTK framework for building graphical applications loosely based on MVC Model-View-Controller (MVC) and Allen Holub's Visual proxy [1]. Think of Kiwi as a high-level, object-oriented layer built on PyGTK. Its design is based on real-world experience using PyGTK to develop large desktop applications, which use many concepts common to most graphical applications: multiple windows and dialogs, forms, data persistence, lists and high-level classes that support domain objects directly. Download ======== Grab the latest sources from: http://www.async.com.br/projects/kiwi/download/kiwi-1.9.8.tar.gz What's new since 1.9.7? ======================= - distutils.setup() replacement - date tests - FileChooser & FileChooserButton - Rename all proxy widgets to start with Proxy - Win32 installation fixes - UI test threading fixes - Sizegroup merging (Ronaldo) - Mask improvements (Ronaldo) - ObjectList improvements (Johan, Ronaldo, Patrick) - Lots of bug fixes (Johan, Ronaldo, Sidnei) Features ======== * An MVC-derived framework of classes: * Views, which represent the graphical display * Controllers, which handles user interaction with the widgets in a View. * Delegates, combines a View and a Controller. * Models, which are special mixins for your domain objects * Proxies, special types of Delegate designed to implement forms * Validation: Kiwi supports validation on different levels: data type validation and verification on the Model/Proxy level, View validation and hooks for visually displaying validation state. * ObjectList widget, which provides a higher level abstraction of GtkTreeView and all its classes (GtkTreeModel, GtkTreeViewColumn, GtkCellRenderer) with hooks to easily integrate into the Kiwi Framework. * Mask suport: You can set a mask on entries to force the input to follow a certain standard, such as zip code, social security, ip address * Gazpacho integration for most (non-deprecated) interactive widgets with attributes for handling validation and proxy attributes. * UI Test framework Features a recorder and a player. The recorder allows you to record different tasks, a script will be saved which will reproduce the actions you made in the interface. * Kiwi Tasklets Tasklet is a small coroutines framework written by Gustavo Carneiro, it was previously known as gtasklets. * PyGTK utilities, to make it easier to add signals and properties to your objects. * i18n translation utilities, to help you translate PyGTK applications, currently depends on gettext and intltool. * and many other things! Requirements ============ Python 2.3 or higher (2.4 recommended) http://www.python.org/ PyGTK 2.6.0 or higher (2.8 recommended) http://www.pygtk.org/ gazpacho 0.6.5 (svn recommenced) http://gazpacho.sicem.biz/ Documentation ============= Kiwi provides API documentation generated by epydoc, it can be found at http://www.async.com.br/projects/kiwi/api/ Included in the tarball are also a number of examples, which serves as a good starting point. Keep in mind that most of them require gazpacho to be installed. Thanks ====== Christian Robottom Reis: Original author and design Lorenzo Gil Sanchez: PyGTK 2.x port Also thanks to the following people which has contributed features or bug reports: Ali Afshar, Henrique Romano, Daniel Saran R. da Cunha, Evandro Vale Miquelito, Gustavo Barbieri, Gustavo Carneiro, Sidnei da Silva Patrick O'Brien, Ronaldo Maia Resources ========= Homepage http://www.async.com.br/projects/kiwi/ Download http://www.async.com.br/projects/kiwi/download/ Repository http://svn.async.com.br/cgi-bin/viewcvs.cgi/kiwi/ Report a bug http://bugs.async.com.br/enter_bug.cgi?product=Kiwi API docs http://www.async.com.br/projects/kiwi/api/ Open bugs http://tinyurl.com/cyrms Mail. list http://www.async.com.br/mailman/listinfo/kiwi/ [1] http://en.wikipedia.org/wiki/Model-view-controller [2] http://tinyurl.com/2ccch [3] http://epydoc.sourceforge.net/ -- Johan Dahlin Async Open Source From jUrner at arcor.de Tue Apr 25 21:16:37 2006 From: jUrner at arcor.de (=?iso-8859-1?q?J=FCrgen_Urner?=) Date: 25 Apr 2006 12:16:37 -0700 Subject: ANN: uuid-0.3.1 released Message-ID: <1145992596.968029.81880@t31g2000cwb.googlegroups.com> Happy to announce the release of uuid-0.3.1 (bugfix release) What is uuid? uuid is a python module to create RFC 4122 compatible UUIDs The module supports generation off RFC 4122 compatible time based, random, sha1 and md5 based UUIDs Whats new? x. fixed a bug where a call to uuid_nd5() and uuid_sha1() could lead to infinite recursion For download and documentation see http://home.arcor.de/jurner/python/ From tomerfiliba at gmail.com Tue Apr 25 22:51:39 2006 From: tomerfiliba at gmail.com (tomerfiliba at gmail.com) Date: 25 Apr 2006 13:51:39 -0700 Subject: released: RPyC 2.50A Message-ID: <1145998299.775841.305290@u72g2000cwu.googlegroups.com> Remote Python Call (RPyC) version 2.50-final is about to be released in the week or so. meanwhile, a release candidate (2.50A) has been released to public review -- please report bugs. i'm still working on real unit-tests for the library, but i'm sure users can help uncover more bugs. http://rpyc.wikispaces.com -tomer From mark.m.mcmahon at gmail.com Tue Apr 25 23:32:10 2006 From: mark.m.mcmahon at gmail.com (Mark Mc Mahon) Date: Tue, 25 Apr 2006 17:32:10 -0400 Subject: ANN: pywinauto 0.3.4 released - Fixed issue with latest ctypes, speed gains, other changes Message-ID: <71b6302c0604251432r5ef796d2q6c4663e58b6be7c3@mail.gmail.com> Hi, 0.3.4 release of pywinauto is now available. pywinauto is a set of open-source (LGPL) modules for using Python as a GUI automation 'driver' for Windows NT based Operating Systems (NT/W2K/XP). SourceForge project page: http://sourceforge.net/projects/pywinauto Download from SourceForge http://sourceforge.net/project/showfiles.php?group_id=157379 Here is the list of changes from 0.3.3: 0.3.4 Fixed issue with latest ctypes, speed gains, other changes ------------------------------------------------------------------ 25-Apr-2006 * The latest version of ctypes (0.9.9.6) removed the code generator I was using some generated code in win32functions.py (stdcall). I was not using those functions so I just commented them out. * Started the process of renaming methods of the ``Application`` and ``WindowSpecification`` classes. I will be converting names to ``UppercaseNames_()``. The trailing ``_`` is to disambiguate the method names from potential Window titles. * Updated how print_control_identifiers works so that it now always prints the disambiguated control name. (even for single controls) * Added __hash__ to HwndWrapper so that controls could be dictionary keys. * Caching various information at various points. For example I cache how well two pieces of text match. For short scripts this has little impact - but for larger script it could well have a major impact. Also caching information for controls that cannot change e.g. TopLeveParent, Parent, etc If you want to follow this project then please sign up to the mailing list: https://lists.sourceforge.net/mailman/listinfo/pywinauto-users Thanks Mark -------------------------------------------- Mark Mc Mahon Manchester, NH 03110, USA

pywinauto 0.3.4 Simple Windows GUI automation with Python. (25-Apr-06) From aahz at pythoncraft.com Wed Apr 26 05:05:01 2006 From: aahz at pythoncraft.com (Aahz) Date: Tue, 25 Apr 2006 20:05:01 -0700 Subject: REMINDER: BayPIGgies: April 26, 7:30pm (Google) Message-ID: <20060426030501.GA6421@panix.com> NOTE: Special date of WEDNESDAY April 26 at Google, usual time of 7:30pm Please show up by 7:15 so we can start the meeting on time! This does not change the usual May meeting on May 11 at Google; stay tuned for an announcement of that. Special meeting! One of the lead developers of Django is in town! Jacob Kaplan-Moss will be talking about Django at Google. He says he'll be fine-tuning the talk until the last minute but plans to cover: * How Django came into being -- a bit about the Journal-World, the problems that Django was designed to solve, some bits about its evolution, and a glance at how *we* use Django today. * What writing Django apps look -- I'll show off some real code and talk about each of the bits of Django's stack. This'll be the bulk of the talk. * What's in store for the future of Django -- there's some awesome community work going on, as well as some under-the-radar stuff we're working on that I'll try to preview or at least talk about. BayPIGgies meetings alternate between IronPort (San Bruno, California) and Google (Mountain View, California). For more information and directions, see http://baypiggies.net/ Before the meeting, we sometimes meet at 6pm for dinner. Discussion of dinner plans is handled on the BayPIGgies mailing list. Advance notice: We have speakers for May. We are currently setting up the schedule for the rest of the year. Please e-mail baypiggies at python.org if you want to suggest an agenda (or volunteer to give a presentation). -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "Argue for your limitations, and sure enough they're yours." --Richard Bach From jdavid at itaapy.com Wed Apr 26 11:41:11 2006 From: jdavid at itaapy.com (=?UTF-8?B?IkouIERhdmlkIEliw6HDsWV6Ig==?=) Date: Wed, 26 Apr 2006 11:41:11 +0200 Subject: itools 0.13.3 released Message-ID: <444F4037.1030008@itaapy.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 itools is a Python library, it groups a number of packages into a single meta-package for easier development and deployment: itools.catalog itools.i18n itools.uri itools.cms itools.ical itools.web itools.csv itools.resources itools.workflow itools.datatypes itools.rss itools.xhtml itools.gettext itools.schemas itools.xliff itools.handlers itools.stl itools.xml itools.html itools.tmx Changes: CSV - Be strict when parsing CSV files (check all lines have the same number of columns), by Piotr Macuk. [#263] Catalog - New format, much more compact. CMS - Speed-up write operations. - Add datatype "Enumerate", by Herv? Cauwelier. [#304] - Update the French translation, by Herv? Cauwelier. [#303] Resources - --------- Download http://download.ikaaro.org/itools/itools-0.13.3.tar.gz Home http://www.ikaaro.org/itools Mailing list http://in-girum.net/mailman/listinfo/ikaaro Bug Tracker http://bugs.ikaaro.org - -- J. David Ib??ez Itaapy Tel +33 (0)1 42 23 67 45 9 rue Darwin, 75018 Paris Fax +33 (0)1 53 28 27 88 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFET0A3qTbdUBYy+tIRAnbXAJ0ckpSdKW5oWgwUI1RBz+E+8J6+9gCggTQb 5oCka7wodMckiAyeqi8LYbI= =kYG0 -----END PGP SIGNATURE----- From richard at commonground.com.au Thu Apr 27 07:59:52 2006 From: richard at commonground.com.au (Richard Jones) Date: Thu, 27 Apr 2006 15:59:52 +1000 Subject: Roundup Issue Tracker release 1.1.2 Message-ID: <3C211735-5DD7-4C9F-9512-9F1D2ECAE701@commonground.com.au> I'm proud to release version 1.1.2 of Roundup. Feature: - server-ctl script uses server configuration file (sf bug 1443805) Fixed: - indexing may be turned off for FileClass "content" now ("content" and "type" properties are now automatically included in the FileClass schema where previously the "content" property was faked and "type" was optional) - reduced frequency of session timestamp update - progress display in roundup-admin reindex - bug in menu() permission filter (sf bug 1444440) - verbose output during import is optional now (sf bug 1475624) - escape *all* uses of "schema" in mysql backend (sf bug 1472120) - responses to user rego email (sf bug 1470254) - dangling connections in session handling (sf bug 1463359) - classhelp popup pagination forgot about "type" (sf bug 1465836) - umask is now configurable (with the same 0002 default) - sorting of entries in classhelp popup (sf bug 1449000) - allow single digit seconds in date spec (sf bug 1447141) - prevent generation of new single-digit seconds dates (sf bug 1429390) - implement close() on all indexers (sf bug 1242477) 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.3 or later for correct operation. To give Roundup a try, just download (see below), unpack and run:: python demo.py Release info and download page: http://cheeseshop.python.org/pypi/roundup Source and documentation is available at the website: http://roundup.sourceforge.net/ Mailing lists - the place to ask questions: http://sourceforge.net/mail/?group_id=31577 About Roundup ============= Roundup is a simple-to-use and -install issue-tracking system with command-line, web and e-mail interfaces. It is based on the winning design from Ka-Ping Yee in the Software Carpentry "Track" design competition. Note: Ping is not responsible for this project. The contact for this project is richard at users.sourceforge.net. Roundup manages a number of issues (with flexible properties such as "description", "priority", and so on) and provides the ability to: (a) submit new issues, (b) find and edit existing issues, and (c) discuss issues with other participants. The system will facilitate communication among the participants by managing discussions and notifying interested parties when issues are edited. One of the major design goals for Roundup that it be simple to get going. Roundup is therefore usable "out of the box" with any python 2.3+ 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 five database back-ends (anydbm, sqlite, metakit, mysql and postgresql). From anthony at python.org Thu Apr 27 14:50:25 2006 From: anthony at python.org (Anthony Baxter) Date: Thu, 27 Apr 2006 22:50:25 +1000 Subject: RELEASED Python 2.5 (alpha 2) Message-ID: <200604272250.37293.anthony@python.org> On behalf of the Python development team and the Python community, I'm happy to announce the second alpha release of Python 2.5. This is an *alpha* release of Python 2.5. As such, it is not suitable for a production environment. It is being released to solicit feedback and hopefully discover bugs, as well as allowing you to determine how changes in 2.5 might impact you. If you find things broken or incorrect, please log a bug on Sourceforge. In particular, note that changes to improve Python's support of 64 bit systems might require authors of C extensions to change their code. More information (as well as source distributions and Windows installers) are available from the 2.5 website: http://www.python.org/2.5/ Since the first alpha, a host of bug fixes and smaller new features have been added. See the release notes (available from the 2.5 webpage) for more. The plan from here is for either one more alpha release, or (more likely) moving to the beta releases, then moving to a 2.5 final release around August. PEP 356 includes the schedule and will be updated as the schedule evolves. The new features in Python 2.5 are described in Andrew Kuchling's What's New In Python 2.5. It's available from the 2.5 web page. Amongst the language features added include conditional expressions, the with statement, the merge of try/except and try/finally into try/except/finally, enhancements to generators to produce a coroutine kind of functionality, and a brand new AST-based compiler implementation. New modules added include hashlib, ElementTree, sqlite3 and ctypes. In addition, a new profiling module cProfile was added. In addition, in the second alpha we have the new 'mailbox' module (a product of last years Google Summer of Code). Enjoy this new release, Anthony Anthony Baxter anthony at python.org Python Release Manager (on behalf of the entire python-dev team) -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.python.org/pipermail/python-announce-list/attachments/20060427/7f603d50/attachment.pgp From phd at phd.pp.ru Thu Apr 27 17:16:41 2006 From: phd at phd.pp.ru (Oleg Broytmann) Date: Thu, 27 Apr 2006 19:16:41 +0400 Subject: mimedecode.py version 2.1 Message-ID: <20060427151640.GA2387@phd.pp.ru> Hello! mimedecode.py WHAT IS IT Mail users, especially in non-English countries, often find that mail messages arrived in different formats, with different content types, in different encodings and charsets. Usually this is good because it allows us to use apropriate format/encoding/whatever. Sometimes, though, some unification is desireable. For example, one may want to put mail messages into an archive, make HTML indicies, run search indexer, etc. In such situations converting messages to text in one character set and skipping some binary atachmetnts is much desireable. Here is the solution - mimedecode.py. This is a program to decode MIME messages. The program expects one input file (either on command line or on stdin) which is treated as an RFC822 mesage, and decoded to stdout. If the file is not an RFC822 message it is just piped to stdout one-to-one. If the file is a simple RFC822 message it is just decoded as one part. If it is a MIME message with multiple parts ("attachments") all parts are decoded. Decoding can be controlled by command-line options. WHAT'S NEW in version 2.1.0 (2006-04-27) A patch by Bogdan Maryniuk : portable way to get the default charset. WHAT'S NEW in version 2.0.0 Major rewrite to use python email package. WHERE TO GET Master site: http://phd.pp.ru/Software/Python/#mimedecode Faster mirrors: http://phd.by.ru/Software/Python/#mimedecode http://phd2.chat.ru/Software/Python/#mimedecode Requires: Python 2.2.2+ Recommends: configured mailcap database. Documentation (also included in the package): http://phd.pp.ru/Software/Python/mimedecode.txt http://phd.by.ru/Software/Python/mimedecode.txt http://phd2.chat.ru/Software/Python/mimedecode.txt AUTHOR Oleg Broytmann COPYRIGHT Copyright (C) 2001-2006 PhiloSoft Design LICENSE GPL Oleg. -- Oleg Broytmann http://phd.pp.ru/ phd at phd.pp.ru Programmers don't die, they just GOSUB without RETURN. From collinw at gmail.com Thu Apr 27 18:26:20 2006 From: collinw at gmail.com (Collin Winter) Date: Thu, 27 Apr 2006 12:26:20 -0400 Subject: [ANNOUNCE]: functional 0.6 released Message-ID: <43aa6ff70604270926q5844af26o4205a73b4ba7ea92@mail.gmail.com> Hello all, I have released version 0.6 of my functional module, a collection of higher-order and functional programming tools for Python. Currently offered are tools for function composition, partial function application, plus flip, foldl, foldr, scanl and scanr functions. Two version of the release are available: one is written in pure Python and aims for maximum readability and portability. The other is coded as a C extension module and is focused on raw performance. Where to get it: ######### functional is available from the project's website at http://oakwinter.com/code/functional/download/ and from the Python Package Index at http://cheeseshop.python.org/pypi/functional. Both source tarballs and Python Eggs are available for both the pure Python and C releases. Eggs are available for Python versions 2.3, 2.4 and 2.5. Release Notes ######## + flip will now reverse all non-keyword arguments, as opposed to simply reversing the first two as it did in version 0.5 (by popular request). + functional.compose now comes with an optional unpack parameter to make up for the fact that Python functions aren't fully curried. The unpack parameter means that you can now do something like this with compose: >>> f(*g(*arg,**kw)) i.e., automatically unpacking g's return value and passing the result to f. To get this functionality, you'd write something like: >>> compose(f, g, unpack=True)(*args, **kwargs) This was impossible with functional 0.5. + Weakref support has been added to flip and compose objects in the C version. + Sundry performance improvements for the C implementation. As always, feedback welcome! Collin Winter From nnorwitz at gmail.com Fri Apr 28 19:37:11 2006 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 28 Apr 2006 10:37:11 -0700 Subject: Summer of Code mailing list Message-ID: There's a new SoC mailing list. soc2006 at python.org You can sign up here: http://mail.python.org/mailman/listinfo/soc2006 This list is for any SoC discussion: mentors, students, idea, etc. Student can submit applications starting May 1, so now is the time to get students interested in your ideas! Please pass this information along. Cheers, n From steven.bethard at gmail.com Sat Apr 29 05:47:06 2006 From: steven.bethard at gmail.com (Steven Bethard) Date: Fri, 28 Apr 2006 21:47:06 -0600 Subject: python-dev Summary for 2006-01-16 through 2006-01-31 Message-ID: Sorry the summaries are so late. We were late already, and it's taken me a bit of time to get set up with the new python.org site. But I should be all good now, and hopefully we'll get caught up with all the summaries by the end of May. Hope you all weren't too depressed without your bi-weekly python-dev updates! ;-) python-dev Summary for 2006-01-16 through 2006-01-31 ++++++++++++++++++++++++++++++++++++++++++++++++++++ .. contents:: [The HTML version of this Summary is available at http://www.python.org/dev/summary/2006-01-16_2006-01-31] ============= Announcements ============= ------------------------- Google summer internships ------------------------- Google is looking to fill an unprecedented number of `student intern positions`_ this (US) summer, at several US locations (Mountain View, Santa Monica, Kirkland (Wash.), and New York). The perks are incredible, and Google is not just looking for software development interns - there are also product management positions, and UI design and usability analyst positions. Contributing thread: - `Know anyone interested in a Google internship? `__ .. _student intern positions: http://www.google.com/jobs/intern.html [TAM] ----------------------- Possible Summer of PyPy ----------------------- Armin Rigo announced the possibility of a "Summer of PyPy", which would follow the style of Google's "Summer of Code" in funding students to work on various aspects of PyPy. The possibility has not been confirmed yet, but we'll let you know when there's more info. Contributing thread: - `Summer of PyPy `__ [SJB] ========= Summaries ========= --------------------------------------- Integers and strings in different bases --------------------------------------- Alex Martelli requested the inverse of ``int(, )`` that would convert an int into a string with digits in the appropriate base. There was a lot of discussion of exactly where such functionality should go. Among the suggested locations were: * The str constructor, e.g. ``str(, )`` * A str classmethod, e.g. ``str.from_int(, )`` * An encoding method, e.g. ``str().encode("base")`` * A method on ints, e.g. ``.to_base()`` * A format code, e.g. ``"%b" % `` * A builtin function, e.g. ``base(, )`` * A function in the math module, e.g. ``math.base(, )`` People seemed generally to like the builtin function or math module function options, though there was some debate as to the best name for the function. Guido suggested letting the proposal sit for a week or two to see if anyone could come up with a better name or suggest a better location for the function. (However, he seemed generally in favor of the proposal, suggesting that hex() and oct() should be deprecated and removed in a future version of Python.) No decisions had been made at the time this summary was written. Contributing threads: - `str with base `__ [SJB] ------------------------------------------------ PEP 355: Path - Object oriented filesystem paths ------------------------------------------------ Bj?rn Lindqvist resuscitated the idea of incorporating a Path class based on Jason Ordenorff's path module to the standard library by creating `PEP 355`_. There was some general discussion (and corresponding PEP changes), with much discussion centred on the use of "/" as a join-with-separator operator, which was eventually dropped from the PEP. More discussion considered whether Path should subclass string or not. Subclassing string provides the advantage that Paths can be used in the majority of places where strings are currently used, without modification. However, there are many methods of strings that do not seem appropriate for Path objects. Jason Orendorff would prefer for Paths to not subclass strings, and a new format specifier (e.g. for PyArg_ParseTuple()) be created for use with Paths. There was general agreement that the utility of the module would be highest when Path objects could be seamlessly used where string paths were previous used. The debate centred on whether subclassing string was the best way to do this or not. Path objects clearly are not string objects (e.g. __iter__ and join() are nonsensical with paths). Changing the C API so that Paths are accepted where necessary was the suggested solution, although the PEP (at the time of writing the summary) still subclasses Path from string. Changing the methods from the names used by the os module and Jason's module to ones that conform to PEP 8 was recommended. Jason explained that the reason that there is so much cruft in his path module is that the design is heavily skewed toward people already familiar with the existing standard library equivalents. He feels that a standard library Path class should have different design goals: less redundancy, fewer methods, and PEP 8 compliant names. .. _PEP 355: http://www.python.org/peps/pep-0355.html Contributing threads: - `The path module PEP `__ - `/ as path join operator (was: Re: The path module PEP) `__ - `/ as path join operator `__ - `Path inherits from string `__ - `The path module (class) PEP `__ [TAM] ------------------------------ Including ctypes in the stdlib ------------------------------ The inclusion of ctypes in the standard library hit a snag: although Guido pronounced that including it (with a strongly worded wording in the documentation) was fine, ctypes includes libffi, which is built with GPL'd tools, which is causes licensing issues. A lot of the typical legal-advice-from-everyone-but-lawyers discussion took place, but essentially what is required is a way to calculate the information necessary to build libffi without the GPL'd tools. Hye-Shik Chang did some work on this, and is working on integrating this into the ctypes repository, so ctypes may still may it into the standard library. Contributing threads: - `Include ctypes into core Python? `__ - `DRAFT: python-dev Summary for 2006-01-01 through 2006-01-15 `__ - `(libffi) Re: Copyright issue `__ [TAM] ----------------------------------- Improving the documentation process ----------------------------------- Georg Brandl pointed out the new `documentation effort`_ by Fredrik Lundh which uses a mix of HTML and PythonDoc-style markup and allows convenient single-method links like http://effbot.org/lib/os.path.join. Georg Brandl played around a bit with the `CSS styling`_, however the main focus of Fredrik's effort was to lower the threshold for user contributions. Along these lines, he was working on an alternate content management system for editing the Python documentation. He currently has a prototype_ available that mirrors some of the content on python.org, though whether or not this backend will be incorporated into python.org is as yet undecided. .. _documentation effort: http://www.effbot.org/lib/ .. _CSS styling: http://home.in.tum.de/~brandlg/zipfile.html .. _prototype: http://pydotorg.dyndns.org:8000/ Contributing threads: - `New Pythondoc by effbot `__ - `[Doc-SIG] that library reference, again `__ [SJB] --------------------- Updating ConfigParser --------------------- The discussion about possible ConfigParser improvements continued, with the typical failure to make any decisions. As always, the options include small modifications to the existing ConfigParser (e.g. allowing preservation of comments, order, and whitespace), re-writing ConfigParser (perhaps based on existing third-party versions), or providing a more sophisticated configuration file module (either leaving ConfigParser as-is, or rewriting it to use the new module). Contributing threads: - `ConfigParser to save with order `__ - `Extension to ConfigParser `__ - `YAML (was Re: Extension to ConfigParser) `__ - `JSON (was: YAML) `__ [TAM] --------------------------------------- Introducing a basenumber abstract class --------------------------------------- Alex Martelli proposed introducing a class, basenumber, along the lines of the basestring class. The intention was to make it easier to check whether or not something is a number. However, if inheriting from basenumber was required for all new number-like objects, then the duck-typing approach of simply implementing the appropriate interface would no longer work. Also, since inheriting from multiple builtin types is disallowed, a str subclass that needs to act like a number (e.g. a symbolic type) would no longer be able to do so since it could not also inherit from basenumber. Guido suggested an __index__ method that would identify a type as convertible into an integer, though without the loss of precision allowed by __int__. More on this suggestion in the next summary. Contributing threads: - `basenumber redux `__ - `index (was str with base) `__ [SJB] ----------------------------------- New Python website: beta.python.org ----------------------------------- Skip Montanaro pointed out that Tim Parkin is heading up a `new effort`_ to redesign the python.org site. The system is based on content formatted primarily in ReST_ for easy editing, though to fully render the pages a number of other tools are required. Tim hopes to get these all wrapped up in setuptools_ and eggs_ so that anyone can also see the fully rendered pages. Also on the topic of webpage redesign, Steve Holden looked into changing the sourceforge "Download Python" link to point to the right place: http://www.python.org/download/. This link, however, cannot be directly modified, so Martin v. L?wis put a small warning above it. .. _new effort: http://beta.python.org/ .. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools .. _eggs: http://peak.telecommunity.com/DevCenter/PythonEggs Contributing threads: - `Python icon `__ - `SourceForge Download Page, Subversion Home Page `__ [SJB] --------------------- Readline on OS X 10.4 --------------------- Thomas Heller has a problem building readline on OS X 10.4. This is a known issue, the result of Apple shipping libedit symlinked to readline rather than readline itself. You need to get a third party copy of readline - Bob Ippolito made a _readline egg`_. Alternatively, if LDFLAGS AND CPPFLAGS are set appropriately for /opt/local/lib and opt/local/include, and the DarwinPorts copy of readline is installed, then it will be found by setup.py. Concerns about linking with readline (which is released under the GPL) were raised, that explicitly requiring or checking for readline could violate the licence. A suggestion was made that Python 3000 could stop using readline and use an alternative instead. .. _readline egg: http://python.org/pypi/readline Contributing thread: - `Building on OS X 10.4 fails `__ [TAM] ----------------------------- Yielding from a sub-generator ----------------------------- Before PEP 342, there wasn't a big need for a shortcut to pass control to a "sub-generator" because the following for-loop works well enough:: def main_generator(): ... for value in sub_generator(): yield value but now that yield can return a value, that value might have to be passed into sub_generator(), not to mention exceptions. Guido felt that a syntactic solution is needed, if the problem is important enough to be solved; a suggestion was "yield from sub_generator()". Contributing thread: - `yield back-and-forth? `__ [TAM] ---------------------------------------- Using the Win32 API for stat/fstat/wstat ---------------------------------------- Martin v. L?wis wanted to switch the code for stat/fstat/wstat from using msvcrt to the Win32 API. However, currently, when WindowsError is raised, the errno attribute must be interpreted as a Win32 error instead of as an errno.h error as in its superclass, OSError. The Win32 API provides different error codes, so using these for the errno attribute could cause some code breakage. The options seemed to be either to break WindowsError and use the new Win32 API error codes, or to introduce a new windows_error attribute to hold the additional information. No decision had been made at the time this summary was written. Contributing thread: - `"DOS" error codes, WindowsError, and errno `__ [SJB] --------------------------- Making timeit easier to use --------------------------- Connelly Barnes was concerned that the default behavior of the timeit module was not very useful. Since timing a function seems like the most common use of timeit, it should be a simple operation, not a method call with a string describing how to import the function and then another string describing how to call it. Also, the default behavior of 1 million iterations is not useful for any code that cannot be repeated that many times. Instead, the number of iterations should be calibrated as it is in the command-line version. Nick Coghlan provided an implementation for these improvements, but it was unclear whether or not those changes would be applied to the module. Contributing thread: - `timeit module `__ [SJB] --------------------------- Removing deprecated modules --------------------------- The regex, regsub and timing modules have been obsolete since Python 2.0, but are still importable in Python 2.4 (regex and regsub both generate a deprecation warning). Skip Montanaro asked when these would be removed, and Guido said that they should be as soon as possible. Contributing thread: - `When will regex really go away? `__ [TAM] ================ Deferred Threads ================ - `Compiler warnings `__ - `Octal literals `__ ================== Previous Summaries ================== - `os.path.getmtime on Windows `__ - `Birkenfeld's gone `__ - `Ph.D. dissertation ideas? `__ - `Names matter. `__ - `New PEP: Using ssize_t as the index type `__ - `[PATCH] Fix dictionary subclass semantics whenused as global dictionaries `__ - `from __future__ syntax changed `__ =============== Skipped Threads =============== - `PEP 247 and hashlib `__ - `[Python-checkins] r42064 - python/trunk/Lib/logging/handlers.py `__ - `pystate.c changes for Python 2.4.2 `__ - `computed goto's in ceval loop `__ - `subwcrev.exe `__ - `[Python-checkins] r42090 - in python/trunk: Modules/getbuildinfo.c PCbuild/make_buildinfo.vcproj PCbuild/pcbuild.sln PCbuild/pythoncore.vcproj `__ - `Additions to the functional module `__ - `PEP 343 and __context__() `__ - `site triggering a bug in urllib2 `__ - `[Python-checkins] r42116 - python/branches/release24-maint/Lib/unittest.py `__ - `stabilizing builds `__ - `building a module catalogue with buildbot `__ - `Weekly Python Patch/Bug Summary `__ - `Weekly Python Patch/Bug Summary (Revised) `__ - `Long-time shy failure in test_socket_ssl `__ - `[Python-checkins] r42185 - python/trunk/Lib/test/test_socket_ssl.py `__ - `(no subject) `__ ======== Epilogue ======== This is a summary of traffic on the `python-dev mailing list`_ from January 16, 2006 through January 31, 2006. It is intended to inform the wider Python community of on-going developments on the list on a semi-monthly basis. An archive_ of previous summaries is available online. An `RSS feed`_ of the titles of the summaries is available. You can also watch comp.lang.python or comp.lang.python.announce for new summaries (or through their email gateways of python-list or python-announce, respectively, as found at http://mail.python.org). This python-dev summary is the 12th written by the python-dev summary python-dev summary duo of Steve Bethard and Tony Meyer . To contact us, please send email: - Steve Bethard (steven.bethard at gmail.com) - Tony Meyer (tony.meyer at gmail.com) Do *not* post to comp.lang.python if you wish to reach us. The `Python Software Foundation`_ is the non-profit organization that holds the intellectual property for Python. It also tries to advance the development and use of Python. If you find the python-dev Summary helpful please consider making a donation. You can make a donation at http://python.org/psf/donations.html . Every cent counts so even a small donation with a credit card, check, or by PayPal helps. -------------------- Commenting on Topics -------------------- To comment on anything mentioned here, just post to `comp.lang.python`_ (or email python-list at 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`_! ------------------------- How to Read the Summaries ------------------------- That this summary is written using reStructuredText_. Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo :); you can safely ignore it. We do suggest learning reST, though; it's simple and is accepted for `PEP markup`_ and can be turned into many different formats like HTML and LaTeX. Unfortunately, even though reST is standardized, the wonders of programs that like to reformat text do not allow us to 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`_. .. _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 .. _c.l.py: .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _PEP Markup: http://www.python.org/peps/pep-0012.html .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. _PSF: .. _Python Software Foundation: http://python.org/psf/ .. _original text file: http://www.python.org/dev/summary/2006-01-16_2006-01-31.rst .. _archive: http://www.python.org/dev/summary/ .. _RSS feed: http://www.python.org/dev/summary/channews.rdf From steven.bethard at gmail.com Sat Apr 29 05:47:28 2006 From: steven.bethard at gmail.com (Steven Bethard) Date: Fri, 28 Apr 2006 21:47:28 -0600 Subject: python-dev Summary for 2006-02-01 through 2006-02-15 Message-ID: python-dev Summary for 2006-02-01 through 2006-02-15 ++++++++++++++++++++++++++++++++++++++++++++++++++++ .. contents:: [The HTML version of this Summary is available at http://www.python.org/dev/summary/2006-02-01_2006-02-15] ============= Announcements ============= ----------------------------- QOTF: Quotes of the Fortnight ----------------------------- We had a plethora (yes, I did just say plethora) of quotable quotes this fortnight. Martin v. L?wis on the `lambda keyword`_: I believe that usage of a keyword with the name of a Greek letter also contributes to people considering something broken. Raymond Hettinger on the `learnability of Python`_: A language suitable for beginners should be easy to learn, but it should not leave them permanently crippled... To misquote Einstein: The language should be as simple as possible, but no simpler. Robert Brewer on `Pythonic syntax`_: Community consensus on syntax is a pipe dream. .. _lambda keyword: http://mail.python.org/pipermail/python-dev/2006-February/060389.html .. _learnability of Python: http://mail.python.org/pipermail/python-dev/2006-February/060420.html .. _Pythonic syntax: http://mail.python.org/pipermail/python-dev/2006-February/060556.html [SJB] -------------------- Release plan for 2.5 -------------------- `PEP 356`_ lists the release plan for Python 2.5. Check it out for the latest feature updates and planned release dates. .. _PEP 356: http://www.python.org/dev/peps/pep-0356/ Contributing threads: - `release plan for 2.5 ? `__ - `2.5 release schedule `__ - `2.5 PEP `__ [SJB] ---------------------------- lsprof available as cProfile ---------------------------- Armin Rigo finished his integration of the lsprof profiler. It's now available as the cProfile module which exposes the same interface as profile. Contributing thread: - `cProfile module `__ [SJB] --------------------- ssize_t branch merged --------------------- Martin v. L?wis merged in the ssize_t branch (`PEP 353`_). All you folks on 64 bit machines should now be able to index sequences using your full address space. Enjoy! .. _PEP 353: http://www.python.org/dev/peps/pep-0353/ Contributing threads: - `ssize_t status (Was: release plan for 2.5 ?) `__ - `ssize_t branch (Was: release plan for 2.5 ?) `__ - `ssize_t branch merged `__ [SJB] ========= Summaries ========= ------------------------------------------------------ Rumors of lambda's death have been greatly exaggerated ------------------------------------------------------ Guido's finally given in -- the lambda expression will stay in Python 3.0. Of course, this didn't stave off another massively long thread discussing the issue, but Guido finally killed that by providing a pretty exhaustive list of why we should keep lambda as it is: * No purely `syntactic change to lambda`_ is clearly a net gain over the current syntax * It's perfectly fine that Python's lambda is different from Lisp's * Lambda current binding behavior is (correctly) exactly the same as a def statement * Allowing a block inside a lambda is never going to work because of the need to indent the block .. _syntactic change to lambda: http://wiki.python.org/moin/AlternateLambdaSyntax Contributing threads: - `any support for a methodcaller HOF? `__ - `Let's just *keep* lambda `__ - `Let's send lambda to the shearing shed (Re: Let's just *keep* lambda) `__ [SJB] -------------- The bytes type -------------- Guido asked for an update to `PEP 332`_, which proposed a ``bytes`` type. This spawned a massive discussion about what the bytes type should look like and how it should interact with strings, especially in Python 3.0 when all strings would be unicode. Pretty much everyone agreed that bytes objects should be mutable sequences of ints in the range(0, 256). Guido and others were also generally against a b'...' literal for bytes, as that would confusingly suggest that bytes objects were text-like, which they wouldn't be. There was a fair bit of haggling over the signature of the bytes constructor, but it seemed towards the end of the discussion that people were coming to an agreement on ``bytes(initializer [,encoding])``, where ``initializer`` could be a sequence of ints or a str or unicode instance, and where ``encoding`` would be an error for a sequence of ints, ignored for a str instance, and the encoding for a unicode instance. Some people argued that the encoding argument was unnecessary as unicode objects could be encoded using their .encode() method, but Guido was concerned that, at least before Python 3.0 when .encode() would return bytes objects, the multiple copying (one for the encode, one for the bytes object creation) would require too much overhead. The default encoding for unicode objects was also a contentious point, with people suggesting ASCII, Latin-1, and the system default encoding. Guido argued that since Python strings don't know the encoding that was used to create them, and since a programmer who typed in Latin-1 would expect Latin-1 as the encoding and a programmer who typed in UTF-8 would expect UTF-8 as the encoding, then the only sensible solution was to encode unicode objects using the system default encoding (which is pretty much always ASCII). It seemed like an official PEP for the bytes type would be forthcoming. .. _PEP 332: http://www.python.org/peps/pep-0332.html Contributing threads: - `PEP 332 revival in coordination with pep 349? [ Was:Re: release plan for 2.5 ?] `__ - `bytes type discussion `__ - `byte literals unnecessary [Was: PEP 332 revival in coordination with pep 349?] `__ - `bytes type needs a new champion `__ [SJB] -------------- Octal literals -------------- Mattheww proposed removing octal literals, making 0640 a SyntaxError, and modifying functions like os.chmod to take string arguments instead, e.g. ``os.chmod(path, "0640")``. This led to a discussion about how necessary octal literals actually are -- the only use case mentioned in the thread was os.chmod() -- and how to improve their syntax. For octal literals people seemed to prefer an ``0o`` or ``0c`` prefix along the lines of the ``0x`` prefix, possibly introducing an analogous ``0b`` as binary literal syntax at the same time. People also suggested a number of syntaxes for expressing numeric literals in any base, but these seemed like overkill for the problem at hand. Contributing threads: - `Octal literals `__ - `Octal literals `__ [SJB] --------------------------------------------------- PEP 357: Allowing Any Object to be Used for Slicing --------------------------------------------------- Travis Oliphant presented `PEP 357`_ to address some issues with the sequence protocol. In Python 2.4 and earlier, if you defined an integer-like type, there was no way of letting Python use instances of your type in sequence indexing. And Python couldn't just call the ``__int__`` slot because then floats could be inappropriately used as indices, e.g. ``range(10)[5.7]`` would be ``5``. To solve this problem, `PEP 357`_ proposed adding an ``__index__`` slot that would be called when a sequence was given a non-integer in a slice. Floats would not define ``__index__`` because they could not be guaranteed to produce an exact integer, but exact integers like those in numpy_ could define this method and then be allowable as sequence indices. .. _PEP 357: http://www.python.org/peps/pep-0357.html .. _numpy: http://www.numpy.org/ Contributing threads: - `PEP for adding an sq_index slot so that any object, a or b, can be used in X[a:b] notation `__ - `Please comment on PEP 357 -- adding nb_index slot to PyNumberMethods `__ [SJB] ----------------------------- const declarations in CPython ----------------------------- To avoid some deprecation warnings generated by C++, Jeremy Hylton had added ``const`` to a few CPython APIs that took ``char*`` but were typically called by passing string literals. This generated compiler errors when ``char**`` variables were passed to PyArg_ParseTupleAndKeywords. Initially, people thought this could be solved by changing ``const char **`` declarations to ``const char * const *`` declarations, but while this was fine for C++, it did not solve the problem for C. The end result was to remove the ``const`` declaration from the ``char **`` variables, but not the ``char *`` variables. Contributing thread: - `Baffled by PyArg_ParseTupleAndKeywords modification `__ [SJB] -------------------- asynchat and threads -------------------- Mark Edgington presented a patch adding "thread safety" to asynchat. Most people seemed to think mixing threads and asynchat was a bad idea, and the thread drifted off to talking about exracting a subset of Twisted to add to the stdlib (as a replacement for asynchat and asyncore). People seemed generally in favor of this (if the subset was reasonably small) but no one stepped forward to extract that subset. Contributing thread: - `threadsafe patch for asynchat `__ [SJB] --------------------------------------------------- Approximate equality between floating point numbers --------------------------------------------------- To make floating-point math easier for newbies, Alex Martelli proposed math.areclose() which would take two floating point numbers with optional tolerances and indicate whether or not they were "equal". With a similar motivation, Smith proposed a math.nice() function which would round floating point numbers in the same way that str() does. Raymond Hettinger and others expressed concern over the stated use case and suggested that hiding floating point details would only make learning their intricacies later more difficult. A few people suggested that math.areclose() might also be useful for experienced floating-point users, but it seemed that the proposal probably didn't have enough strength to get into the stdlib. Contributing threads: - `math.areclose ...? `__ - `nice() `__ - `[Tutor] nice() `__ [SJB] ----------------------------- Eliminating compiler warnings ----------------------------- Thomas Wouters noticed a few gcc 4.0.x warnings on amd64, and asked if Python developers should strive to remove all warnings even if they're harmless. Tim Peters was definitely in favor of eliminating all warnings whenever possible, and so had Thomas Wouters unnecessarily (for other compilers at least) initialize a variable to silence the warning. Contributing threads: - `Compiler warnings `__ - `Compiler warnings `__ [SJB] --------------------------------- Adding syntactic support for sets --------------------------------- Greg Wilson asked about providing syntactic support for sets literals and set comprehensions, e.g. ``{1, 2, 3, 4, 5}`` and ``{z for z in x if (z % 2)}``. The set comprehension suggestion was pretty quickly shot down as it wasn't deemed to be much of an improvement over a generator expression in the set constructor, e.g. ``set(z for z in x if (z % 2))``. The question of syntactic support for set literals sparked a little more of a discussion. Some people initially suggested that syntactic support for set literals was unnecessary as the set constructor could be expanded, e.g ``set(1, 2, 3, 4, 5)``. However this proposal would not be backwards compatible as it would be unclear whether ``set('title')`` should be a set of one element or five. Others questioned whether the syntactically supported set literal should create a set() or a frozenset(). No one had a good answer for this latter question, and the rest of the thread drifted off into a miscellany of syntax suggestions. Contributing thread: - `syntactic support for sets `__ [SJB] ------------------------------- FD_SETSIZE in Windows and POSIX ------------------------------- Revision 42253 introduced a bug in Windows sockets by assuming that FD_SETSIZE was the maximum number of distinct file descriptors a file descriptor set can hold, and checking for this. FD_SETSIZE is actually the numerical magnitude of a file descriptor (which happens to correspond to the maximum number of distinct file descriptors on POSIX systems where fdsets are just big bit vectors). A #define, Py_DONT_CHECK_FD_SETSIZE, was introduced so that the check could be skipped on windows machines. Contributing thread: - `Pervasive socket failures on Windows `__ [SJB] ----------------------------- Iterators and __length_hint__ ----------------------------- In Python 2.4, a number of iterators had grown __len__ methods to allow for some optimizations (like allocating enough space to create a list out of them). Guido had asked for these methods to be removed and hidden instead as an implementation detail. Originally, Raymond had used the name ``_length_cue``, but he was convinced instead to use the name ``__length_hint__``. Contributing thread: - `_length_cue() `__ [SJB] ----------------------------------------------- Linking with mscvrt instead of the compiler CRT ----------------------------------------------- Martin v. L?wis suggested that on Windows, instead of linking Python with the CRT of the compiler used to compile Python, Python should be linked with mscvrt, the CRT that is part of the operating system. Martin hoped that this would get rid of problems where extension modules had to be compiled with the same compiler as the Python with which they were to run. Unfortunately, after further investigation, Martin had to withdraw the proposal as the platform SDK doesn't provide an import library for msvrt.dll and mscvrt is documented as being intended only for "system components". Contributing thread: - `Linking with mscvrt `__ [SJB] ------------------------------------------- Opening text and binary files in Python 3.0 ------------------------------------------- Guido indicated that in Python 3.0 there should be two open() functions, one for opening text files and one for opening binary files. The .read*() methods of text files would return unicode objects, while the .read*() methods of binary files would return bytes objects. People then suggested a variety of names for these functions including: * opentext() and openbytes() * text.open() and bytes.open() * file.text() and file.bytes() Guido didn't like the tight coupling of data types and IO libraries present in the latter two. He also expressed a preference for using open() instead of opentext(), since it was the more common use case. Of course, modifying open() in this way would be backwards incompatible and would thus have to wait until Python 3.0. Contributing thread: - `str object going in Py3K `__ [SJB] -------------------------------------------- Adding additional bdist_* installation types -------------------------------------------- Phillip Eby suggested adding bdist_deb, bdist_msi, and friends to the standard library in Python 2.5. People seemed generally in favor of this, though there was some discussion as to whether or not bdist_egg should also be included. The thread then trailed off into a discussion of the various installation behaviors on different platforms. Contributing thread: - `bdist_* to stdlib? `__ [SJB] ------------------------------------- URL for the development documentation ------------------------------------- Georg Brandl pointed out that while http://docs.python.org/dev/ holds the current development documentation, http://www.python.org/dev/doc/devel was still available. Fred Drake indicated that it was definitely preferable to use the automatically updated docs (http://docs.python.org/dev/) but that having them on docs.python.org seemed wrong -- docs.python.org was established so that queries could be made for the current stable documentation without old docs or development docs showing up. Fred then proposed that the current stable documentation go up at http://www.python.org/doc/current/ and the current development documentation go up at http://www.python.org/dev/doc/. Guido thought that http://docs.python.org/ could possibly disappear in the new `python.org redesign`_. .. _python.org redesign: http://beta.python.org Contributing threads: - `http://www.python.org/dev/doc/devel still available `__ - `moving content around (Re: http://www.python.org/dev/doc/devel still available) `__ [SJB] ------------------------------------------------ PEP 355: Path - Object oriented filesystem paths ------------------------------------------------ BJ?rn Lindqvist updated `PEP 355`_ which proposes adding the path module to replace some of the functions in os, shutil, etc. At Guido's request, the use of ``/`` and ``//`` operators for path concatenation was removed, and a number of redundancies brought up in the last Path PEP discussion were addressed (though some redundancies, e.g. ``.name`` and ``.basename()`` seem to still be present). .. _PEP 355: http://www.python.org/peps/pep-0355.html Contributing threads: - `The path module PEP `__ - `Path PEP and the division operator `__ - `Path PEP: some comments `__ - `Path PEP -- a couple of typos. `__ [SJB] ----------------------------------------- Rejection of PEP 351: The freeze protocol ----------------------------------------- Raymond Hettinger's strong opposition to `PEP 351`_, the freeze protocol, finally won out, and Guido rejected the PEP. .. _PEP 351: http://www.python.org/peps/pep-0351.html Contributing thread: - `PEP 351 `__ [SJB] -------------------------------------- PEP 338 - Executing Modules as Scripts -------------------------------------- Nick Coghlan updated `PEP 338`_ to comply with the import system of `PEP 302`_. The updated PEP includes a ``run_module()`` function which will execute the supplied module as if it were a script (e.g. with __name__ == "__main__"). Since it supports the `PEP 302`_ import system, it properly handles modules in both packages and zip files. .. _PEP 302: http://www.python.org/peps/pep-0302.html .. _PEP 338: http://www.python.org/peps/pep-0338.html Contributing thread: - `PEP 338 - Executing Modules as Scripts `__ [SJB] ----------------------------------------------- Getting sources for a particular Python release ----------------------------------------------- David Abrahams wanted to get the Python-2.4.2 sources from SVN but couldn't figure out which tag to check out. The right answer for him was http://svn.python.org/projects/python/tags/r242/ and in general it seemed that the r tags corresponded to the .. release. Contributing thread: - `How to get the Python-2.4.2 sources from SVN? `__ [SJB] --------------------------------------- PEP for \*args and \*\*kwargs unpacking --------------------------------------- Thomas Wouters asked if people would be interested in a PEP to generalize the use of \*args and \*\*kwargs to unpacking, e.g.: * ``['a', 'b', *iterable, 'c']`` * ``a, b, *rest = range(5)`` * ``{**defaults, **args, 'fixedopt': 1}`` * ``spam(*args, 3, **kwargs, spam='extra', eggs='yes')`` People definitely wanted to see a PEP, as these or similar suggestions have been raised a number of times. The time-table would likely be for Python 2.6 though, so no PEP has yet been made available. Contributing thread: - `Generalizing *args and **kwargs `__ [SJB] ---------------------- Tail call optimization ---------------------- In CPython, a function call requires a new execution frame, which is expensive compared to a loop. Some langauges (notably scheme) automically optimize tail-call recursion, so that in practice, it will be just as fast. This can be done in CPython by using abusing internals. It merged into the decorator module discussion; in the end, Guido did not want it in the standard library, in part because it would change exception tracebacks, and in part because it would likely be very different for other implementations (such as Jython). Contributing thread: - `Any interest in tail call optimization as a decorator? `__ [Summary by Jim Jewett] -------------------------------- Things to check before a release -------------------------------- : Hey, we should have changed the copyright dates to include 2006! Yeah, and lets write ourselves a note, so that we remember next year! Uh, where should put that reminder? PEP 101 was used, since a new release should be at least one trigger for verifying that things like this happened. And putting it there reminded Georg that PEP 101 needs other updates too. (Example: It still refers to the source code in sourceforge CVS, rather than python.org SVN) Contributing thread: - `Where to put "post-it notes"? `__ ================ Deferred Threads ================ - `The decorator(s) module `__ - `C AST to Python discussion `__ - `bytes.from_hex() [Was: PEP 332 revival in coordination with pep 349?] `__ - `how bugfixes are handled? `__ ================== Previous Summaries ================== - `Extension to ConfigParser `__ - `[PATCH] Fix dictionary subclass semantics whenused as global dictionaries `__ =============== Skipped Threads =============== - `YAML (was Re: Extension to ConfigParser) `__ - `webmaster at python.org failing sender verification. `__ - `ctypes patch (was: (libffi) Re: Copyright issue) `__ - `ctypes patch `__ - `Weekly Python Patch/Bug Summary `__ - `Help with Unicode arrays in NumPy `__ - `small floating point number problem `__ - `Old Style Classes Goiung in Py3K `__ - `Make error on solaris 9 x86 - error: parse error before "upad128_t" `__ - `Python modules should link to libpython `__ - `Help on choosing a PEP to volunteer on it : 308, 328 or 343 `__ - `email 3.1 for Python 2.5 using PEP 8 module names `__ - `[BULK] Python-Dev Digest, Vol 31, Issue 37 `__ - `py3k and not equal; re names `__ - `Post-PyCon PyPy Sprint: February 27th - March 2nd 2006 `__ - `compiler.pyassem `__ - `To know how to set "pythonpath" `__ - `file.next() vs. file.readline() `__ - `Fwd: Ruby/Python Continuations: Turning a block callback into a read()-method ? `__ - `PEP 343: Context managers a superset of decorators? `__ - `Missing PyCon 2006 `__ - `how to upload new MacPython web page? `__ - `A codecs nit (was Re: bytes.from_hex()) `__ ======== Epilogue ======== This is a summary of traffic on the `python-dev mailing list`_ from February 01, 2006 through February 15, 2006. It is intended to inform the wider Python community of on-going developments on the list on a semi-monthly basis. An archive_ of previous summaries is available online. An `RSS feed`_ of the titles of the summaries is available. You can also watch comp.lang.python or comp.lang.python.announce for new summaries (or through their email gateways of python-list or python-announce, respectively, as found at http://mail.python.org). This python-dev summary is the 13th written by the swat team of Steve Bethard and Tony Meyer (no, we still can't make a deadline). To contact us, please send email: - Steve Bethard (steven.bethard at gmail.com) - Tony Meyer (tony.meyer at gmail.com) Do *not* post to comp.lang.python if you wish to reach us. The `Python Software Foundation`_ is the non-profit organization that holds the intellectual property for Python. It also tries to advance the development and use of Python. If you find the python-dev Summary helpful please consider making a donation. You can make a donation at http://python.org/psf/donations.html . Every cent counts so even a small donation with a credit card, check, or by PayPal helps. -------------------- Commenting on Topics -------------------- To comment on anything mentioned here, just post to `comp.lang.python`_ (or email python-list at 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`_! ------------------------- How to Read the Summaries ------------------------- That this summary is written using reStructuredText_. Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo :); you can safely ignore it. We do suggest learning reST, though; it's simple and is accepted for `PEP markup`_ and can be turned into many different formats like HTML and LaTeX. Unfortunately, even though reST is standardized, the wonders of programs that like to reformat text do not allow us to 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`_. .. _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 .. _c.l.py: .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _PEP Markup: http://www.python.org/peps/pep-0012.html .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. _PSF: .. _Python Software Foundation: http://python.org/psf/ .. _original text file: http://www.python.org/dev/summary/2006-02-01_2006-02-15.rst .. _archive: http://www.python.org/dev/summary/ .. _RSS feed: http://www.python.org/dev/summary/channews.rdf From steven.bethard at gmail.com Sat Apr 29 05:47:43 2006 From: steven.bethard at gmail.com (Steven Bethard) Date: Fri, 28 Apr 2006 21:47:43 -0600 Subject: python-dev Summary for 2006-02-16 through 2006-02-28 Message-ID: python-dev Summary for 2006-02-16 through 2006-02-28 ++++++++++++++++++++++++++++++++++++++++++++++++++++ .. contents:: [The HTML version of this Summary is available at http://www.python.org/dev/summary/2006-02-16_2006-02-28] ============= Announcements ============= ----------------------- Python release schedule ----------------------- The Python 2.5 release schedule is `PEP 356`_. The first releases are planned for the end of March/beginning of April. Check the PEP for the full plan of features. .. _PEP 356: http://www.python.org/dev/peps/pep-0356/ Contributing threads: - `2.5 PEP `__ - `2.5 release schedule `__ - `2.4.3 for end of March? `__ [SJB] --------------------- Buildbot improvements --------------------- Thanks to Benji York and Walter D?rwald, the `buildbot results page`_ now has a new CSS stylesheet that should make it a little easier to read. (And thanks to Josiah Carlson, we should now have a Windows buildbot slave.) .. _buildbot results page: http://www.python.org/dev/buildbot/ Contributing threads: - `buildbot is all green `__ - `buildbot vs. Windows `__ [SJB] ------------------------------- Deprecation of multifile module ------------------------------- The multifile module, which has been supplanted by the email module since Python 2.2, is finally being deprecated. Though the module will not be removed in Python 2.5, its documentation now clearly indicates the deprecation. Contributing thread: - `Deprecate \`\`multifile\`\`? `__ [SJB] ------------------------------ Win64 AMD64 binaries available ------------------------------ Martin v. L?wis has made `AMD64 binaries`_ available for the current trunk's Python. If you're using an AMD64 machine (a.k.a. EM64T or x64), give 'em a whirl and see how they work. .. _amd64 binaries: http://www.dcl.hpi.uni-potsdam.de/home/loewis/ Contributing thread: - `Win64 AMD64 (aka x64) binaries available64 `__ [SJB] --------------------------------------------------- Javascript to adopt Python iterators and generators --------------------------------------------------- On a slightly off-topic note, Brendan Eich has blogged_ that the next version of Javascript will borrow iterators, generators and list comprehensions from Python. Nice to see that the Python plague is even spreading to other programming languages now. ;) .. _blogged: http://weblogs.mozillazine.org/roadmap/archives/2006/02/ Contributing thread: - `javascript "standing on Python's shoulders" as it moves forward. `__ [SJB] ========= Summaries ========= --------------------------- A dict with a default value --------------------------- Guido suggested a defaultdict type which would act like a dict, but produce a default value when __getitem__ was called and no key existed. The intent was to simplify code examples like:: # a dict of lists for x in y: d.setdefault(key, []).append(value) # a dict of counts for x in y: d[key] = d.get(key, 0) + 1 where the user clearly wants to associate a single default with the dict, but has no simple way to spell this. People quickly agreed that the default should be specified as a function so that using ``list`` as a default could create a dict of lists, and using ``int`` as a default could create a dict of counts. Then the real thread began. Guido proposed adding an ``on_missing`` method to the dict API, which would be called whenever ``__getitem__`` found that the requested key was not present in the dict. The ``on_missing`` method would look for a ``default_factory`` attribute, and try to call it if it was set, or raise a KeyError if it was not. This would allow e.g. ``dd.default_factory = list`` to make a dict object produce empty lists as default values, and ``del dd.default_factory`` to revert the dict object to the standard behavior. However, a number of opponents worried that confusion would arise when basic dict promises (like that ``x in d`` implies that ``x in d.keys()`` and ``d[x]`` doesn't raise a KeyError) could be conditionally overridden by the existence of a ``default_factory`` attribute. Others worried about complicating the dict API with yet another method, especially one that was never meant to be called directly (only overridden in subclasses). Eventually, Guido was convinced that instead of modifying the builtin dict type, a new collections.defaultdict should be introduced. Guido then defended keeping ``on_missing`` as a method of the dict type, noting that without ``on_missing`` any subclasses (e.g. ``collections.defaultdict``) that wanted to override the behavior for missing keys would have to override ``__getitem__`` and pay the penalty on every call instead of just the ones where the key wasn't present. In the patch committed to the Python trunk, ``on_missing`` was renamed to ``__missing__`` and though no ``__missing__`` method is defined for the dict type, if a subclass defines it, it will be called instead of raising the usual KeyError. Contributing threads: - `Proposal: defaultdict `__ - `Counter proposal: multidict (was: Proposal: defaultdict) `__ - `Counter proposal: multidict `__ - `defaultdict proposal round three `__ - `defaultdict and on_missing() `__ - `getdefault(), the real replacement for setdefault() `__ [SJB] ----------------------------------------- Encode and decode interface in Python 3.0 ----------------------------------------- Jason Orendorff suggested that ``bytes.encode()`` and ``text.decode()`` (where text is the name of Python 3.0's str/unicode) should be removed in Python 3.0. Guido agreed, suggesting that Python 3.0 should have one of the following APIs for encoding and decoding: - bytes.decode(enc) -> text text.encode(enc) -> bytes - text(bytes, enc) -> text bytes(text, enc) -> bytes There was a lot of discussion about how hard it was for beginners to figure out the current ``.encode()`` and ``.decode()`` methods, and Martin v. L?wis suggested that the behavior:: py> "Martin v. L?wis".encode("utf-8") Traceback (most recent call last): File "", line 1, in ? UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 11: ordinal not in range(128) would be better if replaced by Guido's suggested behavior:: py> "Martin v. L?wis".encode("utf-8") Traceback (most recent call last): File "", line 1, in ? AttributeError: 'str' object has no attribute 'encode' since the user would immediately know that they had made a mistake by trying to encode a string. However, some people felt that this problem could be solved by simply changing the UnicodeDecodeError to something more informative like ``ValueError: utf8 can only encode unicode objects``. M.-A. Lemburg felt strongly that text and bytes objects should keep both ``.encode()`` and ``.decode()`` methods as simple interfaces to the registered codecs. Since the codecs system handles general encodings (not just text<->bytes encodings) he felt that ``.encode()`` and ``.decode()`` should be available on both bytes and text objects and should be able to return whatever type the encoding deems appropriate. Guido repeated one of his design guidelines: the return *type* of a function should not depend on the *value* of the arguments. Thus he would prefer that ``bytes.decode()`` only return text and ``text.decode()`` only return bytes, regardless of the encodings passed in. (He didn't seem to be commenting on the architecture of the codecs module however, just the architecture of the bytes and text types.) Contributing threads: - `bytes.from_hex() [Was: PEP 332 revival in coordination with pep 349?] `__ - `bytes.from_hex() [Was: PEP 332 revival in coordination with pep 349?] `__ - `str.translate vs unicode.translate (was: Re: str object going in Py3K) `__ - `bytes.from_hex() `__ - `str.translate vs unicode.translate `__ [SJB] ----------------- Writable closures ----------------- Almann T. Goo was considering writing a PEP to allow write access to names in nested scopes. Currently, names in nested scopes can only be read, not written, so the following code fails with an UnboundLocalError:: def getinc(start=0): def incrementer(inc=1): start += inc return start return incrementer Almann suggested introducing a new declaration, along the lines of ``global``, to indicate that assignments to a name should be interpreted as assignments to the name in the nearest enclosing scope. Initially, he proposed the term ``use`` for this declaration, but most of the thread participants seemed to prefer ``outer``, allowing the function above to be written as:: def getinc(start=0): def incrementer(inc=1): outer start start += inc return start return incrementer A variety of syntactic variants achieving similar results were proposed, including a way to name a function's local namespace:: def getinc(start=0): namespace xxx def incrementer(inc=1): xxx.start += inc return xxx.start return incrementer a way to indicate when a single use of a name should refer to the outer scope, based on the syntax for `relative imports`_:: def getinc(start=0): def incrementer(inc=1): .start += inc # note the "." return .start # note the "." (this one could be optional) return incrementer and the previously suggested rebinding statement, from `PEP 227`_:: def getinc(start=0): def incrementer(inc=1): start +:= inc # note the ":=" instead of "=" return start return incrementer Much like the last time this issue was brought up, "the discussion fizzled out after having failed to reach a consensus on an obviously right way to go about it" (Greg Ewing's quite appropriate wording). No PEP was produced, and it didn't seem like one would soon be forthcoming. .. _PEP 227: http://www.python.org/peps/pep-0227.html .. _relative imports: http://www.python.org/peps/pep-0328.html Contributing threads: - `PEP for Better Control of Nested Lexical Scopes `__ - `Papal encyclical on the use of closures (Re: PEP for Better Control of Nested Lexical Scopes) `__ - `Using and binding relative names (was Re: PEP for Better Control of Nested Lexical Scopes) `__ [SJB] --------------------------- PEP 358: The "bytes" Object --------------------------- This week mostly wrapped up the bytes type discussion from the last fortnight, with the introduction of `PEP 358`_: The "bytes" Object. The PEP proposes a ``bytes`` type which: * is a sequence of range(0, 256) int objects * can be constructed out of lists of range(0, 256) ints * can be constructed out of the characters of str objects * can be constructed out of unicode objects using a specified encoding (or the system default encoding if none is specified) * can be constructed out of a hex string using the classmethod ``bytes.fromhex`` The bytes constructor allows an encoding for unicode objects (instead of requiring a call to unicode.encode) so as not to require double copying (one of encoding and one for conversion to bytes). Some people took issue with the fact that constructor allows an encoding for str objects, but ignores it, as this means code like ``bytes(s, 'utf-16be')`` will do a different thing for str and unicode. Ignoring the encoding argument for str objects was apparently intended to ease the transition from str to bytes, though it was not clear exactly how. .. _PEP 358: http://www.python.org/peps/pep-0358.html Contributing threads: - `bytes type needs a new champion `__ - `bytes type discussion `__ - `Pre-PEP: The "bytes" object `__ - `s/bytes/octet/ [Was:Re: bytes.from_hex() [Was: PEP 332 revival in coordination with pep 349?]] `__ - `PEP 358 (bytes type) comments `__ [SJB] ---------------------------------- Compiling Python with MS VC++ 2005 ---------------------------------- M.-A. Lemburg suggested compiling Python with the new `MS VC++ 2005`_, especially since it's "free". There was some concern about the stability of VS2005, and Benji York pointed out that the express editions are only `free until November 6th`_. Fredrik Lundh pointed out that it would be substantially more work for all the developers who provide ready-made Windows binaries for multiple Python releases. In the end, they decided to keep with the current compiler at least for one more release. .. _MS VC++ 2005: http://msdn.microsoft.com/vstudio/express/default.aspx .. _free until November 6th: http://msdn.microsoft.com/vstudio/express/support/faq/default.aspx#pricing Contributing thread: - `Switch to MS VC++ 2005 ?! `__ [SJB] ----------------------- Alternate lambda syntax ----------------------- Even though Guido already declared that Python 3.0 will keep the current lambda syntax, Talin decided to try out the new AST and give lambda a face-lift. With `Talin's patch`_, you can now write lambdas like:: >>> a = (x*x given (x)) >>> a(9) 81 >>> a = (x*y given (x=3,y=4)) >>> a(9, 10) 90 >>> a(9) 36 >>> a() 12 The patch was remarkably simple, and people were suitably impressed by the flexibility of the new AST. Of course, the patch was rejected since Guido is now happy with the current lambda situation. .. _Talin's patch: http://bugs.python.org/1434008 Contributing thread: - `Adventures with ASTs - Inline Lambda `__ [SJB] --------------- Stateful codecs --------------- Walter D?rwald was looking for ways to cleanly support stateful codecs. M.-A. Lemburg suggested extending the codec registry to maintain slots for the stateful encoders and decoders (and allowing six-tuples to be passed in) and adding the functions ``codecs.getencoderobject()`` and ``codecs.getdecoderobject()``. Walter D?rwald suggested that ``codecs.lookup()`` should return objects with the following attributes: (1) Name (2) Encoder function (3) Decoder function (4) Stateful encoder factory (5) Stateful decoder factory (6) Stream writer factory (7) Stream reader factory For the sake of backwards compatibility, these objects would subclass tuple so that they look like the old four-tuples returned by ``codecs.lookup()``. `Walter's patch`_ provides an implementation of some of these suggestions. .. _Walter's patch: http://bugs.python.org/1436130 Contributing thread: - `Stateful codecs [Was: str object going in Py3K] `__ [SJB] --------------------------------------- operator.is*Type and user-defined types --------------------------------------- Michael Foord pointed out that for types written in Python, ``operator.isMappingType`` and ``operator.isSquenceType`` are essentially identical -- they both return True if ``__getitem__`` is defined. Raymond Hettinger and Greg Ewing explained that for types written in C, these functions can give more detailed information because at the C level, CPython differentiates between the ``__getitem__`` of the sequence protocol and the ``__getitem__`` of the mapping protocol. Contributing thread: - `operator.is*Type `__ [SJB] -------------------------- Python-level AST interface -------------------------- Brett Cannon started a brief thread to discuss where to go next with the Python AST branch. Though some of the discussion moved online at PyCon, the major decisions were reported by Martin v. L?wis: * The ast-objects branch (which used reference-counting instead of arena allocation) was dropped because it seemed less maintainable and people had agreed that exposing the C AST objects to Python was a bad idea anyway * Python code would have access to a "shadow tree" of the actual AST tree, accessible by calling ``compile()`` with the flag PyCF_ONLY_AST (0x400). As a result, Python 2.5 now has a Python-level interface to AST objects:: >>> compile('"spam" if x else 42', '', 'eval', 0x400) <_ast.Expression object at 0x00BA0F50> Contributing threads: - `C AST to Python discussion `__ - `C AST to Python discussion `__ - `[Python-projects] AST in Python 2.5 `__ - `Exposing the abstract syntax `__ - `quick status report `__ [SJB] ------------------------------------------- Allowing property to be used as a decorator ------------------------------------------- Georg Brandl suggested in passing that it would be nice if ``property()`` could be used as a decorator. Ian Bicking pointed out that you can already use ``property()`` this way as long as you only want a read-only property. However, the resulting property has no docstring, so Alex Martelli suggested that property use the __doc__ of its fget function if no docstring was provided. Guido approved it, and `Georg Brandl provided a patch`_. Thus in Python 2.5, you'll be able to write read-only properties like:: @property def x(self): """The x property""" return self._x + 42 .. _Georg Brandl provided a patch: http://bugs.python.org/1434038 Contributing threads: - `The decorator(s) module `__ - `The decorator(s) module `__ [SJB] ----------------------------------------------- Turning on unicode string literals for a module ----------------------------------------------- Neil Schemenauer asked if it would be possible to have a ``from __future__ import unicode_strings`` statement which would turn all string literals into unicode literals for that module (without requiring the usual ``u`` prefix). Currently, you can turn on this kind of behavior for all modules using the undocumented -U command-line switch, but there's no way of enabling it on a per-module basis. There didn't seem to be enough momentum in the thread to implement such a thing however. Contributing thread: - `from __future__ import unicode_strings? `__ [SJB] ------------------------------------------- Allowing cProfile to print to other streams ------------------------------------------- Skip Montaro pointed out that the new cProfile module prints stuff to stdout. He suggested rewriting the necessary bits to add a stream= keyword argument where necessary and using stream.write(...) instead of the print statements. No patch was available at the time of this summary. Contributing thread: - `cProfile prints to stdout? `__ [SJB] -------------------------------- PEP 343 with-statement semantics -------------------------------- Mike Bland provided an initial implementation of `PEP 343`_'s with-statment. In writing some unit-tests for it, Guido discovered that the implementation would not allow generators like:: @contextmanager def foo(): try: yield except Exception: pass with foo(): 1/0 to be equivalent to the corresponding in-line code:: try: 1/0 except Exception: pass because the PEP at the time did not allow context objects to suppress exceptions. Guido modified the patch and the PEP to require __exit__ to reraise the exception if it didn't want it suppressed. .. _PEP 343: http://www.python.org/peps/pep-0343.html Contributing threads: - `PEP 343 "with" statement patch `__ - `with-statement heads-up `__ [SJB] ------------------------------------ Dropping Win9x support in Python 2.6 ------------------------------------ Neal Norwitz suggested that Python 2.6 no longer try to support Win9x and WinME and updated `PEP 11`_ accordingly. There was a little rumbling about dropping the support, but no one stepped forward to volunteer to maintain the patches, and Guido suggested that anyone using a 6+ year old OS should be fine using an older Python too. .. _PEP 11: http://www.python.org/dev/peps/pep-0011/ Contributing thread: - `Dropping support for Win9x in 2.6 `__ [SJB] ---------------------------- Removing non-Unicode support ---------------------------- Neal Norwitz suggested that the --disable-unicode switch might be a candidate for removal in Python 2.6. A few people were mildly concerned that the inability to remove Unicode support might make it harder to put Python on small hand-held devices. However, many (though not all) hand-helds already support Unicode, and currently a number of tests already fail if you use the --disable-unicode switch, so those who need this switch have not been actively maintaining it. Stripping out the numerous Py_USING_UNICODE declarations would substantially simplify some of the Python source. No final decision had been made at the time of this summary. Contributing thread: - `Removing Non-Unicode Support? `__ [SJB] ------------------------------------ Translating the Python documentation ------------------------------------ Facundo Batista had proposed translating the Library Reference and asked about how to get notifications when the documentation was updated (so that the translations could also be updated). Georg Brandl suggested a post-commit hook in SVN, though this would only give notifications at the module level. Fredrik Lundh suggested something based on his `more dynamic library reference platform`_ so that the notifications could indicate particular methods and functions instead. .. _more dynamic library reference platform: http://effbot.org/zone/pyref.htm Contributing threads: - `Translating docs `__ - `Fwd: Translating docs `__ [SJB] --------------- PEP 338 updates --------------- At Guido's suggestion, Nick Coghlan pared down `PEP 338`_ to just the bare bones necessary to properly implement the -m switch. That means the runpy module will contain only a single function, run_module, which will import the named module using the standard import mechanism, and then execute the code in that module. .. _PEP 338: http://www.python.org/peps/pep-0338.html Contributing thread: - `PEP 338 issue finalisation (was Re: 2.5 PEP) `__ [SJB] ----------------- Bugfix procedures ----------------- Just a reminder of the procedure for applying bug patches in Python (thanks to a brief thread started by Arkadiusz Miskiewicz). Anyone can submit a patch, but it will not be committed until a committer reviews and commits the patch. Non-committers are encouraged to review and comment on patches, and a number of the committers have promised that anyone who reviews and comments on at least five patches can have any patch they like looked at. Contributing threads: - `how bugfixes are handled? `__ - `how bugfixes are handled? `__ [SJB] -------------------------------- Removing --with-wctype-functions -------------------------------- M.-A. Lemburg suggested removing support for --with-wctype-functions as it makes Unicode support work in non-standard ways. Though he announced the plan in December 2004, ``PEP 11`` wasn't updated, so removal will be delayed until Python 2.6. Contributing thread: - `[Python-checkins] r42396 - peps/trunk/pep-0011.txt `__ [SJB] --------------------------------- Making ASCII the default encoding --------------------------------- Neal Norwitz asked if we should finally make ASCII the default encoding as `PEP 263`_ had promised in Python 2.3. He received only positive responses on this, and so in Python 2.5, any file missing a ``# -*- coding: ... -*-`` declaration and using non-ASCII characters will generate an error. .. _PEP 263: http://www.python.org/peps/pep-0263.html Contributing thread: - `Making ascii the default encoding `__ [SJB] ------------------------------------------- PEP 308: Conditional Expressions checked in ------------------------------------------- Thomas Wouters checked in a patch for `PEP 308`_, so Python 2.5 now has the long-awaited conditional expressions! .. _PEP 308: http://www.python.org/dev/peps/pep-0308/ Contributing thread: - `PEP 308 `__ [SJB] ================== Previous Summaries ================== - `http://www.python.org/dev/doc/devel still available `__ - `str object going in Py3K `__ - `PEP 332 revival in coordination with pep 349? [ Was:Re: release plan for 2.5 ?] `__ - `nice() `__ - `bdist_* to stdlib? `__ - `Please comment on PEP 357 -- adding nb_index slot to PyNumberMethods `__ =============== Skipped Threads =============== - `ssize_t branch merged `__ - `Off-topic: www.python.org `__ - `Weekly Python Patch/Bug Summary `__ - `2.5 - I'm ok to do release management `__ - `Rename str/unicode to text [Was: Re: str object going in Py3K] `__ - `Does eval() leak? `__ - `Rename str/unicode to text [Was: Re: str object goingin Py3K] `__ - `Test failures in test_timeout `__ - `Rename str/unicode to text `__ - `Copying zlib compression objects `__ - `Serial function call composition syntax foo(x, y) -> bar() -> baz(z) `__ - `A codecs nit `__ - `Stackless Python sprint at PyCon 2006 `__ - `[Python-checkins] r42490 - in python/branches/release24-maint: Lib/fileinput.py Lib/test/test_fileinput.py Misc/NEWS `__ - `Enhancements to the fileinput module `__ - `test_fileinput failing on Windows `__ - `New Module: CommandLoop `__ - `(-1)**(1/2)==1? `__ - `documenting things [Was: Re: Proposal: defaultdict] `__ - `Simple CPython stack overflow. `__ - `problem with genexp `__ - `readline compilarion fails on OSX `__ - `Memory Error the right error for coding cookie promise violation? `__ - `Two patches `__ - `Unifying trace and profile `__ - `Fixing copy.py to allow copying functions `__ - `Path PEP: some comments (equality) `__ - `calendar.timegm `__ - `release plan for 2.5 ? `__ - `[ python-Feature Requests-1436243 ] Extend pre-allocated integers to cover [0, 255] `__ - `buildbot, and test failures `__ - `OT: T-Shirts `__ - `PEP 328 `__ - `Current trunk test failures `__ - `PEP 332 revival in coordination with pep 349? [Was:Re: release plan for 2.5 ?] `__ - `str.count is slow `__ - `Long-time shy failure in test_socket_ssl `__ ======== Epilogue ======== This is a summary of traffic on the `python-dev mailing list`_ from February 16, 2006 through February 28, 2006. It is intended to inform the wider Python community of on-going developments on the list on a semi-monthly basis. An archive_ of previous summaries is available online. An `RSS feed`_ of the titles of the summaries is available. You can also watch comp.lang.python or comp.lang.python.announce for new summaries (or through their email gateways of python-list or python-announce, respectively, as found at http://mail.python.org). This python-dev summary is the 14th written by the python-dev summary team of Steve Bethard and Tony Meyer (on-time, schmon-time). To contact us, please send email: - Steve Bethard (steven.bethard at gmail.com) - Tony Meyer (tony.meyer at gmail.com) Do *not* post to comp.lang.python if you wish to reach us. The `Python Software Foundation`_ is the non-profit organization that holds the intellectual property for Python. It also tries to advance the development and use of Python. If you find the python-dev Summary helpful please consider making a donation. You can make a donation at http://python.org/psf/donations.html . Every cent counts so even a small donation with a credit card, check, or by PayPal helps. -------------------- Commenting on Topics -------------------- To comment on anything mentioned here, just post to `comp.lang.python`_ (or email python-list at 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`_! ------------------------- How to Read the Summaries ------------------------- That this summary is written using reStructuredText_. Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo :); you can safely ignore it. We do suggest learning reST, though; it's simple and is accepted for `PEP markup`_ and can be turned into many different formats like HTML and LaTeX. Unfortunately, even though reST is standardized, the wonders of programs that like to reformat text do not allow us to 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`_. .. _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 .. _c.l.py: .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _PEP Markup: http://www.python.org/peps/pep-0012.html .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. _PSF: .. _Python Software Foundation: http://python.org/psf/ .. _original text file: http://www.python.org/dev/summary/2006-02-16_2006-02-28.rst .. _archive: http://www.python.org/dev/summary/ .. _RSS feed: http://www.python.org/dev/summary/channews.rdf From steven.bethard at gmail.com Sat Apr 29 05:47:59 2006 From: steven.bethard at gmail.com (Steven Bethard) Date: Fri, 28 Apr 2006 21:47:59 -0600 Subject: python-dev Summary for 2006-03-01 through 2006-03-15 Message-ID: python-dev Summary for 2006-03-01 through 2006-03-15 ++++++++++++++++++++++++++++++++++++++++++++++++++++ .. contents:: [The HTML version of this Summary is available at http://www.python.org/dev/summary/2006-03-01_2006-03-15] ============= Announcements ============= ----------------------- Webstats for python.org ----------------------- Thomas Wouters set up webalizer on dinsdale.python.org and added webstats for all subsites of python.org: * http://www.python.org/webstats/ * http://beta.python.org/webstats/ * http://bugs.python.org/webstats/ * http://planet.python.org/webstats/ * http://docs.python.org/webstats/ * http://svn.python.org/webstats/ Check 'em out if you're interested! Contributing thread: - `Webstats for www.python.org et al. `__ [SJB] --------------------------- Python 2.5 release schedule --------------------------- The first releases scheduled for Python 2.5 are quickly approaching. Check `PEP 356`_ for details, but the first alpha is due on April 1st. .. _PEP 356: http://www.python.org/doc/peps/pep-0356/ Contributing thread: - `2.5 release schedule? `__ [SJB] ----------- Py3K branch ----------- Guido has begun work on Py3K, starting a new branch to rip out some stuff like string exceptions and classic classes. He's trying to get a "feel" for what Python 3.0 will look like, hopefully before his keynote in OSCON. Contributing thread: - `Py3k branch - please stay out :-) `__ [SJB] ------------------------------------------- Deprecated modules going away in Python 2.5 ------------------------------------------- A number of deprecated modules will be removed in Python 2.5, including: * reconvert.py * regex (regexmodule.c) * regex_syntax.py * regsub.py and a variety of things from lib-old. These modules have been deprecated for a while now, and will be pulled in the next Python release. Contributing thread: - `Deprecated modules going away in 2.5 `__ [SJB] ========= Summaries ========= ------------------------------- Maintaining ctypes in SVN trunk ------------------------------- Thomas Heller put ctypes into the Python SVN repository, and with the help of perky, Neal Norwitz and Thomas Wouters, updated it to take advantage of the new ssize_t feature. The "official" ctypes development will remain in its Sourceforge repository at least for a while since this makes it easy to test ctypes on the SF compile farm. Contributing threads: - `ctypes is in SVN now. `__ - `Developing/patching ctypes (was: Re: integrating ctypes into python) `__ - `Developing/patching ctypes `__ [SJB] ----------------- Windows buildbots ----------------- Josiah Carlson had been working on getting a buildbot slave running on a Windows box, but eventually gave up due to crashes caused by VS.NET. Tim Peters fought his way through the setup with a XP box, posting `his lessons`_ to the wiki, and Trent Mick managed to follow a similar route and setup a Win2K buildbot slave. Thanks to all who suffered through the config -- Windows buildbot coverage looks pretty good now! .. _his lessons: http://wiki.python.org/moin/BuildbotOnWindows Contributing threads: - `Another Windows buildbot slave `__ - `Still looking for volunteer to run Windows buildbot `__ [SJB] ----------------------------------- Python 3.0: itr.next() or next(itr) ----------------------------------- The end of last fortnight's defaultdict thread turned to discussing the fate of the iterator protocol's .next() method in Python 3.0. Greg Ewing argued that renaming .next() to .__next__() and introducing a builtin function next() would be more consistent with the other magic methods and also more future-proof, since the next() function could be modified if the protocol method needed to change. Raymond Hettinger was very strongly against this proposal, suggesting that trading a Python-level attribute lookup for a Python-level global lookup plus a C-level slot lookup was not a good tradeoff. The discussion then spread out to other protocol method/function pairs -- e.g. len() and __len__() -- and Oleg Broytmann suggested that they could all be replaced with methods, thus saving a lookup and clearing out the builtin namespace. Neil Schemenauer and Michael Chermside argued against such a change, saying that the double-underscore pattern allows new special methods to be introduced without worrying about breaking user code, and that using functions for protocols forces developers to use the same names when the protocols are involved, while using methods could allow some developers to choose different names than others. Guido indicated that he'd like to do some usability studies to determine whether methods or functions were more intuitive for the various protocols. Contributing threads: - `defaultdict and on_missing() `__ - `iterator API in Py3.0 `__ - `iterator API in Py3. `__ - `.len() instead of __len__() (was: iterator API in Py3.0) `__ - `x.len() instead of len(x) in Py3.0 `__ - `.len() instead of __len__() (was: iterator API inPy3.0) `__ - `.len() instead of __len__() in Py3.0 `__ [SJB] --------------------------- Python 3.0: base64 encoding --------------------------- This fortnight continued discussion from the last as to whether the base64 encoding should produce unicode or bytes objects. The encoding is specified in `RFC 2045`_ as "designed to represent arbitrary sequences of octets" using "a 65-character subset of US-ASCII". Traditionally, base64 "encoding" goes from bytes to characters, and base64 "decoding" goes from characters to bytes. But this is the inverse of the usual unicode meanings, where "encoding" goes from characters to bytes, and where "decoding" goes from bytes to characters. Thus some people felt that the recent proposal to have only bytes.decode(), which would produce unicode, and unicode.encode(), which would produce bytes, would be a major problem for encodings like base64 which used the opposite terminology. A variety of proposals ensued, including putting .encode() and .decode() on both bytes and strings, having encode() and decode() builtins, and various ways of putting encoding and decoding into the unicode and bytes constructors or classmethods. No clear solution could be agreed upon at the time. .. _RFC 2045: http://www.ietf.org/rfc/rfc2045.txt Contributing thread: - `bytes.from_hex() `__ [SJB] ----------------------------- Coverity scans of Python code ----------------------------- Ben Chelf of Coverity presented scan.coverity.com, which provides the results of some static source code analysis looking for a variety of code defects in a variety of open source projects, including Python. Full access to the reports is limited to core developers, but Neal Norwitz explained a bit what had been made available. The types of problems reported in Python include unintialized variables, resource leak, negative return values, using a NULL pointer, dead code, use after free and some other similar conditions. The reports provide information about what condition is violated and where, and according to Neal have been high quality and accurate, though of course there were some false positives. Generally, developers seemed quite happy with the reports, and a number of bugs have subsequently been fixed. Contributing threads: - `Coverity Open Source Defect Scan of Python `__ - `About "Coverity Study Ranks LAMP Code Quality" `__ - `Coverity report `__ [SJB] ------------------------------- Speeding up lookups of builtins ------------------------------- Steven Elliott was looking into reducing the cost of looking up Python builtins. Two PEPs (`PEP 280`_ and `PEP 329`_) had already been proposed for similar purposes, but Steven felt these were biting off too much at once as they tried to optimize all global attribute lookups instead of just those of builtins. His proposal would replace the global-builtin lookup chain with an array that indexed the builtins. A fast check for builtin shadowing would be performed before using a builtin; if no shadowing existed, the builtin would simply be extracted from the array, and if shadowing was present, the longer lookup sequence would be followed. Guido indicated that he would like to be able to assume that builtins are not shadowed in Python 3.0, but made no comment on the particular implementation strategy suggested. Steven Elliott promised a PEP, though it was not yet available at the time of this summary. .. _PEP 280: http://www.python.org/doc/peps/pep-0280/ .. _PEP 329: http://www.python.org/doc/peps/pep-0329/ Contributing thread: - `Making builtins more efficient `__ [SJB] ------------------------------------------------- Requiring parentheses for conditional expressions ------------------------------------------------- Upon seeing a recent checkin using conditional expressions, Jim Jewett suggested that parentheses should be required around all conditional expressions for the sake of readability. The usual syntax debate ensued, and in the end it looked like the most likely result was that `PEP 8`_ would be updated to suggest parentheses around the "test" part of the conditional expression if it contained any internal whitespace. .. _PEP 8: http://www.python.org/doc/peps/pep-0008/ Contributing threads: - `conditional expressions - add parens? `__ - `(no subject) `__ [SJB] ----------------------------- Exposing a global thread lock ----------------------------- Raymond Hettinger suggested exposing the global interpreter lock to allow code to temporarily suspend all thread switching. Guido was strongly against the idea as it was not portable to Jython or IronPython and it was likely to cause deadlocks. However, there was some support for it, and others indicated that the only way it could cause deadlocks is if locks were acquired within the sections where thread switching was disabled, and that even these could be avoided by having locks raise an exception if acquired in such a section. However, Michael Chermside explained that supporting such a thing in Jython and IronPython would really be impossible, and suggested that the functionality be made available in an extension module instead. Raymond Hettinger then suggested modifying sys.setcheckinterval() to allow thread switching to be stopped, but Martin v. L??wis explained that even disabling this "release the GIL from time to time" setting would not disable thread switching as, for example, the file_write call inside a PRINT_* opcode releases the GIL around fwrite regardless. Contributing thread: - `Threading idea -- exposing a global thread lock `__ [SJB] ----------------------------- Making quit and exit callable ----------------------------- Ian Bicking resuscitated a previous proposal to make ``quit`` and ``exit`` callable objects with informative __repr__ messages like ``license`` and ``help`` already have. Georg Brandl submitted a patch that makes ``quit`` and ``exit`` essentially synonymous with ``sys.exit`` but with better __repr__ messages. The patch was accepted and should appear in Python 2.5. Contributing thread: - `quit() on the prompt `__ [SJB] --------------------- Python 3.0: Using C++ --------------------- Fredrik Lundh suggested that in Python 3.0 it might be useful to switch to C++ instead of C for Python's implementation. This would allow some additional type checking, some more reliable reference counting with local variable destructors and smart pointers, and "native" exception handling. However, it would likely make linking and writing extension modules more difficult as C++ does not interoperate with others as happily as C does. Stephen J. Turnbull suggested that it might also be worth considering following the route of XEmacs -- all code must compile without warnings under both C and C++. No final decision was made, but for the moment it looks like Python will stick with the status quo. Contributing thread: - `C++ for CPython 3? (Re: str.count is slow) `__ [SJB] ---------------------- A @decorator decorator ---------------------- Georg Brandl presented a `patch providing a ``decorator`` decorator`_ that would transfer a function's __name__, __doc__ and __dict__ attributes to the wrapped function. Initially, he had placed it in a new ``decorator`` module, but a number of folks suggested that this module and the ``functional`` module -- which currently only contains partial() -- should be merged into a ``functools`` module. At the time of this summary, the patch had not been applied. .. _patch providing a ``decorator`` decorator: http://bugs.python.org/1448297 Contributing thread: - `decorator module patch `__ [SJB] ----------------------- Expanding the use of as ----------------------- Georg Brandl proposed that since ``as`` is finally becoming a keyword, other statements might allow ``as`` to be used for binding a name like the ``import`` and ``with`` statements do now. Generally people thought that using ``as`` to name the ``while`` or ``if`` conditions was not really that useful, especially since the parallel to ``with`` statements was pretty weak -- ``with`` statements bind the result of the context manager's __enter__() call, not the context manager itself. Contributing thread: - `"as" mania `__ [SJB] ------------------------------ Relative imports in the stdlib ------------------------------ Guido made a checkin using the new `relative import feature`_ in a few places. Because using relative imports can cause custom __import__'s to break (because they don't take the new optional fifth argument), Guido backed out the changes, and updated `PEP 8`_ to indicate that absolute imports were to be preferred over relative imports whenever possible. .. _relative import feature: http://www.python.org/doc/peps/pep-0328/ Contributing threads: - `Using relative imports in std lib packages ([Python-checkins] r43033 - in python/trunk/Lib: distutils/sysconfig.py encodings/__init__.py) `__ - `[Python-checkins] r43033 - in python/trunk/Lib: distutils/sysconfig.py encodings/__init__.py `__ [SJB] ------------------------------------ Making staticmethod objects callable ------------------------------------ Nicolas Fleury suggested that staticmethod objects should be made callable so that code like:: class A(object): @staticmethod def foo(): pass bar = foo() would work instead of compaining that staticmethod objects are not callable. Generally, people seemed to feel that most uses of staticmethods were better expressed as module-level functions anyway, and so catering to odd uses of staticmethods was not something Python needed to do. Contributing thread: - `Making staticmethod objects callable? `__ [SJB] ---------------------------------- Adding a uuid module to the stdlib ---------------------------------- Fredrik Lundh suggested `adding Ka-Ping Yee's uuid module`_ to the standard library. Most people were agreeable to the idea, but with other uuid implementations around, there was some discussion about the details. Phillip J. Eby suggested something more along the lines of `PEAK's uuid module`_, but no final decisions were made. .. _adding Ka-Ping Yee's uuid module: http://bugs.python.org/1368955 .. _PEAK's uuid module: http://svn.eby-sarna.com/PEAK/src/peak/util/uuid.py?view=markup Contributing thread: - `how about adding ping's uuid module to the standard lib ? `__ [SJB] ------------------------------- A dict that takes key= callable ------------------------------- Neil Schemenauer suggested providing dict variants in the collections module that would use the ids of the objects instead of the objects themselves. Guido suggested that it would likely be more useful to design a dict variant that took a key= argument like list.sort() does, and apply that key function to all keys in the dict. That would make implementing Neil's id-dict almost trivial and support a variety of other use-cases, like case-insensitive dicts. People seemed quite supportive of the proposal, but no patch was available at the time of this summary. Contributing thread: - `collections.idset and collections.iddict? `__ [SJB] ---------------------------- Bug in __future__ processing ---------------------------- Martin Maly found `Guido's previously encountered bug`_ that Python 2.2 through 2.4 allows some assignment statements before the ``__future__`` import. Tim Peters correctly channeled Guido that this was a bug and would be fixed in Python 2.5. .. _Guido's previously encountered bug: http://mail.python.org/pipermail/python-dev/2006-January/060247.html Contributing thread: - `Bug in from __future__ processing? `__ [SJB] ----------------------- Cleaning up string code ----------------------- Chris Perkins noted that ``str.count()`` is substantially slower than ``unicode.count()``. Ben Cartwright and others indicated that the source for these functions showed clearly that the unicode version had been better optimized. Fredrik Lundh and Armin Rigo both mentioned cleaning up the string code to avoid some of the duplication and potentially to merge the str and unicode implementations together. At the time of this summary, it didn't seem that any progress towards this goal had yet been made. Contributing thread: - `str.count is slow `__ - `str.count is slow `__ [SJB] --------------------------------------------- Freeing Python-allocated memory to the system --------------------------------------------- Tim Peters spent his PyCon time working on `a patch by Evan Jones`_, originally `discussed in January`_. The patch enables Python to free memory back to the operating system so that code like:: x = [] for i in xrange(1000000): x.append([]) del x[:] does not continue to consume massive memory after the del statement. Tim gave python-devvers some time to review the patch for any speed or other issues, and then committed it. .. _a patch by Evan Jones: http://bugs.python.org/1123430 .. _discussed in January: http://mail.python.org/pipermail/python-dev/2005-January/051255.html Contributing thread: - `Arena-freeing obmalloc ready for testing `__ [SJB] ------------------------------------------ Modifying the context manager __exit__ API ------------------------------------------ After thinking things over, Guido decided that the context manager ``__exit__`` method should be required to return True if it wants to suppress an exception. This addressed the main concerns about the previous API, that if ``__exit__`` methods were required to reraise exceptions, a lot of ``__exit__`` methods might end up with easily-missed bugs. Contributing thread: - `__exit__ API? `__ [SJB] ------------------------------- Python 3.0: default comparisons ------------------------------- In Python 3.0, Guido plans to ditch the default ``< <= > >=`` comparisons currently provided, and only provide ``== !=`` where by default all objects compare as unequal. Contributing thread: - `Keep default comparisons - or add a second set? `__ [SJB] ================ Deferred Threads ================ - `[Python-checkins] r43041 - python/trunk/Modules/_ctypes/cfield.c `__ ================== Previous Summaries ================== - `Proposal: defaultdict `__ =============== Skipped Threads =============== - `New test failure on Windows `__ - `.py and .txt files missing svn:eol-style in trunk `__ - `Using and binding relative names (was Re: PEP forBetter Control of Nested Lexical Scopes) `__ - `Stateful codecs [Was: str object going in Py3K] `__ - `bytes thoughts `__ - `wiki as scratchpad `__ - `test_compiler failure `__ - `DRAFT: python-dev Summary for 2006-01-16 through 2005-01-31 `__ - `Weekly Python Patch/Bug Summary `__ - `When will regex really go away? `__ - `ref leak w/except hooks `__ - `Faster list comprehensions `__ - `PEP 357 `__ - `Lib/test/test_compiler.py fails `__ - `FrOSCon 2006 - Call for {Papers|Projects} `__ - `Outdated Python Info on www.unicode.org (fwd) `__ - `My buildbot host upgraded to OSX 10.4 `__ - `Slightly OT: Replying to posts `__ - `New Future Keywords `__ - `[Python-checkins] Python Regression Test Failures refleak (1) `__ - `[Python-checkins] Python humor `__ - `Two gcmodule patches `__ - `Scientific Survey: Working Conditions in Open Source Projects `__ - `_bsddb.c ownership `__ - `str(Exception) changed, is that intended? `__ - `Long-time shy failure in test_socket_ssl `__ - `mail.python.org disruption `__ - `Bug Day? `__ - `Generated code in test_ast.py `__ - `fixing log messages `__ - `[Python-checkins] r42929 - python/trunk/Tools/scripts/svneol.py `__ - `unicodedata.c no longer compiles on Windows `__ - `multidict API `__ - `Google ads on python.org? `__ - `libbzip2 version? `__ - `PythonCore\CurrentVersion `__ - `Strange behavior in Python 2.5a0 (trunk) --- possible error in AST? `__ - `Why are so many built-in types inheritable? `__ - `checkin r43015 `__ - `Topic suggestions from the PyCon feedback `__ - `Another threading idea `__ - `Octal literals `__ - `[Python-checkins] r43022 - in python/trunk: Modules/xxmodule.c Objects/object.c `__ - `[Python-checkins] Python Regression Test Failuresrefleak (1) `__ - `[Python-checkins] r43028 - python/trunk/Modules/_ctypes/cfield.c `__ - `PEP 338 implemented in SVN `__ ======== Epilogue ======== This is a summary of traffic on the `python-dev mailing list`_ from March 01, 2006 through March 15, 2006. It is intended to inform the wider Python community of on-going developments on the list on a semi-monthly basis. An archive_ of previous summaries is available online. An `RSS feed`_ of the titles of the summaries is available. You can also watch comp.lang.python or comp.lang.python.announce for new summaries (or through their email gateways of python-list or python-announce, respectively, as found at http://mail.python.org). This python-dev summary is the 15th written by the python-dev summary pair of Steve Bethard and Tony Meyer (some day we'll really catch up). To contact us, please send email: - Steve Bethard (steven.bethard at gmail.com) - Tony Meyer (tony.meyer at gmail.com) Do *not* post to comp.lang.python if you wish to reach us. The `Python Software Foundation`_ is the non-profit organization that holds the intellectual property for Python. It also tries to advance the development and use of Python. If you find the python-dev Summary helpful please consider making a donation. You can make a donation at http://python.org/psf/donations.html . Every cent counts so even a small donation with a credit card, check, or by PayPal helps. -------------------- Commenting on Topics -------------------- To comment on anything mentioned here, just post to `comp.lang.python`_ (or email python-list at 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`_! ------------------------- How to Read the Summaries ------------------------- That this summary is written using reStructuredText_. Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo :); you can safely ignore it. We do suggest learning reST, though; it's simple and is accepted for `PEP markup`_ and can be turned into many different formats like HTML and LaTeX. Unfortunately, even though reST is standardized, the wonders of programs that like to reformat text do not allow us to 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`_. .. _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 .. _c.l.py: .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _PEP Markup: http://www.python.org/peps/pep-0012.html .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. _PSF: .. _Python Software Foundation: http://python.org/psf/ .. _original text file: http://www.python.org/dev/summary/2006-03-01_2006-03-15.rst .. _archive: http://www.python.org/dev/summary/ .. _RSS feed: http://www.python.org/dev/summary/channews.rdf From phil at riverbankcomputing.co.uk Sat Apr 29 12:09:33 2006 From: phil at riverbankcomputing.co.uk (Phil Thompson) Date: Sat, 29 Apr 2006 11:09:33 +0100 Subject: PyQt 4.0beta1 Released Message-ID: <200604291109.33883.phil@riverbankcomputing.co.uk> Riverbank Computing is pleased to announce the release of PyQt v4.0beta1 available from http://www.riverbankcomputing.co.uk/pyqt/. PyQt is a comprehensive set of Qt bindings for the Python programming language and supports the same platforms as Qt (Windows, Linux and MacOS/X). Like Qt, PyQt is available under the GPL and a commercial license. PyQt v4 supports Qt v4 (http://www.trolltech.com/products/qt/index.html). PyQt v3 is still available to support earlier versions of Qt. PyQt v4 is implemented as a set of 8 extension modules containing approximately 400 classes and 6,000 functions and methods. QtCore The non-GUI infrastructure including event loops, threads, i8n, Unicode, signals and slots, user and application settings. QtGui A rich collection of GUI widgets. QtNetwork A set of classes to support TCP and UDP socket programming and higher level protocols (eg. HTTP). QtOpenGL A set of classes that allows PyOpenGL to render onto Qt widgets. QtSql A set of classes that implement SQL data models and interfaces to industry standard databases. Includes an implementation of SQLite. QtSvg A set of classes to render SVG files onto Qt widgets. QtXML A set of classes that implement DOM and SAX parsers. QtAssistant A set of classes that enables the Qt Assistant online help browser to be integrated with an application. A Windows installer is provided for the GPL version of PyQt to be used with the GPL version of Qt v4 (http://www.trolltech.com/download/qt/windows.html). It enabes a complete PyQt environment to be installed on Windows without the need for a C++ compiler. PyQt includes the pyuic utility which generates Python code to implement user interfaces created with Qt Designer in the same way that the uic utility generates C++ code. It is also able to load Designer XML files dynamically. From fuzzyman at gmail.com Sat Apr 29 14:33:18 2006 From: fuzzyman at gmail.com (Fuzzyman) Date: 29 Apr 2006 05:33:18 -0700 Subject: [ANN] ConfigObj 4.3.1 & validate 0.2.2 Message-ID: <1146313998.225276.166590@i40g2000cwc.googlegroups.com> `ConfigObj 4.3.1 `_ and `validate 0.2.2 `_ are now available. These are both minor bugfix/feature enhancement releases. What is New in ConfigObj ? Changes since **ConfigObj** 4.3.0 : * Added ``validate.py`` back into ``configobj.zip``. (Thanks to Stewart Midwinter) * Updated to `validate.py`_ 0.2.2. * Preserve tuples when calling the ``dict`` method. (Thanks to Gustavo Niemeyer.) * Changed ``__repr__`` to return a string that contains ``ConfigObj({ ... })``. * Change so that an options dictionary isn't modified by passing it to ConfigObj. (Thanks to Artarious.) * Added ability to handle negative integers in ``unrepr``. (Thanks to Kevin Dangoor.) What is New in validate ? Changes since **validate** 0.2.1 : * Addressed bug where a string would pass the ``is_list`` test. (Thanks to Konrad Wojas.) What is ConfigObj ? **ConfigObj** is a simple but powerful config file reader and writer: an *ini file round tripper*. Its main feature is that it is very easy to use, with a straightforward programmer's interface and a simple syntax for config files. It has lots of other features though : * Nested sections (subsections), to any level * List values * Multiple line values * String interpolation (substitution) * Integrated with a powerful validation system - including automatic type checking/conversion - repeated sections - and allowing default values * All comments in the file are preserved * The order of keys/sections is preserved * No external dependencies * Full Unicode support * A powerful ``unrepr`` mode for storing basic datatypes What is validate ? `validate.py `_ is a module for validating values against a specification. It can be used with **ConfigObj**, or as a standalone module. It is extensible, and as well as doing type conversion from strings, you can easily implement your own functions for transforming values in any way you please. From detlev at die-offenbachs.de Sun Apr 30 16:31:56 2006 From: detlev at die-offenbachs.de (Detlev Offenbach) Date: Sun, 30 Apr 2006 16:31:56 +0200 Subject: ANN: eric3 3.9.0 released Message-ID: Hi, this is to inform you of the release of eric3 3.9.0. This version includes support for Qt4 and PyQt4. It will be the last major release in the eric3 line of development. From now on the development effort will concentrate on eric4, the PyQt4 variant of the IDE. As usual the release is available via http://www.die-offenbachs.de/detlev/eric3.html Eric3 is a Python and Ruby IDE with all batteries included. Regards, Detlev -- Detlev Offenbach detlev at die-offenbachs.de From jpellerin at gmail.com Sun Apr 30 22:29:44 2006 From: jpellerin at gmail.com (jpellerin at gmail.com) Date: 30 Apr 2006 13:29:44 -0700 Subject: ANN: nose 0.9.0a1 released Message-ID: <1146428984.097822.70910@j73g2000cwa.googlegroups.com> I'm pleased to annouce the first alpha release of nose 0.9, 0.9.0a1. nose is a test runner built on unittest that provides similar convienience to py.test, without the magic. nose 0.9 includes a host of new features, as well as numerous backwards-incompatible changes to interfaces and implementation. For this reason, I'm releasing it first as an alpha version. Thanks to the many folks who have contributed patches and ideas and made bug reports for the development version of 0.9, especially Mika Eloranta, Jay Parlar, Kevin Dangoor, Scot Doyle and Philip J.Eby. Here's a quick rundown of what's new in 0.9.0a1. - Plugins The most important new feature is support for plugins using setuptools entrypoints. nose plugins can select and load tests (like the builtin doctest plugin), reject tests (like the builtin attrib plugin, contributed by Mika Eloranta, that allows users to select tests by attribute), watch and report on tests (like the builtin coverage and profiler plugins), completely replace test result output (like the html result plugin in the examples directory) or any combination of the above. Writing plugins is simple: subclass nose.plugins.Plugin and implement any of the methods in nose.plugins.IPluginInterface. - Better compatibility with unittest Test loading has been consolidated into a test loader class that is drop-in compatible with unittest.TestLoader. Likewise test result output, including output capture, assert introspection, and support for skipped and deprecated tests, in nose.result.TextTestResult. If you want those features and not the rest of nose, you can use just those classes. nose.main() has also been rewritten to have the same signature as unittest.main(). - Better command line interface Command line test selection is more intuitive and powerful, enabling easy and correct running of single tests while ensuring that fixtures (setup and teardown) are correctly executed at all levels. No more -f -m or -o options; now simply specify the tests to run: nosetests this/file.py that.module Tests may be specified down to the callable: nosetests this/file.py:TestClass that.module:this_test nosetests that.module:TestClass.test_method There are also new options for dropping into pdb on errors or failures, and stopping the test run on the first error or failure (thanks to Kevin Dangoor for the idea). - More! Helpful test decorators and functions in nose.tools. Support for generators in test classes. Better import path handling -- that you can shut off! Detailed verbose logging using the logging package. And more... For more information, installation instructions, etc, see: http://somethingaboutorange.com/mrl/projects/nose/