From gurubert-dated-1044099582.dodogffm@epigenomics.com Sat Feb 1 11:46:12 2003 From: gurubert-dated-1044099582.dodogffm@epigenomics.com (Robert Sander) Date: Sat, 1 Feb 2003 11:46:12 +0000 (UTC) Subject: ANN: python-fam 1.0.2 Message-ID: Hi! http://python-fam.sourceforge.net/ Python FAM is the interface to the File Alteration Monitor for Python. The new release fixes the "hostname" bug. The hostname component of the FAMEvent struvt is deprecated and usually contains random garbage. Greetings -- Robert Sander Manager Information Systems www.epigenomics.com Kastanienallee 24 +493024345330 10435 Berlin From bbum@codefab.com Sat Feb 1 16:01:25 2003 From: bbum@codefab.com (Bill Bumgarner) Date: Sat, 1 Feb 2003 11:01:25 -0500 Subject: PyObjC Article at O'Reilly Message-ID: > http://www.macdevcenter.com/pub/a/mac/2003/01/31/pyobjc_one.html From lkcl@samba-tng.org Sat Feb 1 14:39:02 2003 From: lkcl@samba-tng.org (Luke Kenneth Casson Leighton) Date: Sat, 1 Feb 2003 14:39:02 +0000 Subject: [ANN] python-pysqldb 0.6 released Message-ID: pysqldb ------- PySQLdb is a SQL middleware layer for programmers. it provides functions and classes that help programmers construct SQL queries, and access SQL databases. presently supported are MySQL (via andy dustman's python-mysqldb) and MS-SQL 2000 (via the MS-SQL 2000 XML interface using the rather stupidly named pyxsqmll package at http://sf.net/projects/pyxsqmll). after writing four SQL database applications in python and looking for the fifth, it gets _real_ boring to mash out 15,000 lines of code each time. pysqlgen -------- alongside pysqldb is two programs, pysqlgen and pysqlhtmlgen, which auto-generate code compatible with pysqldb - DIRECTLY from a mysql dump file. it's a bit clunky but it gives you a massive head-start on developing your python SQL application: if you already have your SQL file designed, pysqlgen cuts your development time down from days to minutes. if you don't like the style of the code so generated, it's a simple enough job to hack the pysqlgen principle so it generates python code that you love. pysqldb and pysqlgen are inspired by Custom, an e-commerce solution written entirely in Python. Downloads --------- http://sf.net/projects/pysqldb http://sf.net/projects/custom http://sf.net/projects/pyxsqmll -- ---------------------------------------------------------- this message is private, confidential, and is intented for the specified recipients only. if you received in error, altered, deleted, modified, destroyed or interfered with the contents of this message, in whole or in part, please inform the sender (that's me), immediately. if you, the recipient, reply to this message, and do not then receive a response, please consider your reply to have been lost or deliberately destroyed: i *always* acknowledge personal email received. please therefore take appropriate action and use appropriate protocols to ensure effective communication. thank you. From wari@home.wari.org Sun Feb 2 15:42:30 2003 From: wari@home.wari.org (Wari Wahab) Date: Sun, 02 Feb 2003 23:42:30 +0800 Subject: [ANN] Pyblosxom 0.6 Message-ID: pyblosxom is a CGI-based Weblog program written in Python. It uses ordinary text files as your entries, and in addition to the features of blosxom, on which it is based, it can be easily extended with preformatters and plugins. This release includes the following changes (listed in no particular order): * In addition to flavour overrides, we now have configuration overrides with flavours. * Better documentation available at the [http://wiki.subtlehints.net/moin/PyBlosxom Wiki Site] * Change XML content-type detection for content-type other than just text/xml * Plugins, from simple `$templateVariables` type to CallbackChains type * Lot's of new features available just by dropping in plugins * Weblogs.com and blo.gs pings available with plugins * Conditional HTTP is now a plugin Fixes: * Fixed directory recursions * Fixed entry display by category to honor num_entries * Example flavours fixes Demo Site: http://roughingit.subtlehints.net/pyblosxom Documentation: http://wiki.subtlehints.net/moin/PyBlosxom SourceForge Site: http://sf.net/projects/pyblosxom Download: https://sourceforge.net/project/showfiles.php?group_id=67445&release_id=137592 From aahz@pythoncraft.com Sun Feb 2 22:23:10 2003 From: aahz@pythoncraft.com (Aahz) Date: Sun, 2 Feb 2003 17:23:10 -0500 Subject: Pre-announce: PyCon registration Message-ID: I'll post again when we have the form set up, but I figure people ought to know now what the costs and dates will be: $150 through Feb 28 $200 through Mar 15 $250 at the door We'll take charge and checks for pre-reg; cash and charge at the door. The pre-con sprint is still not settled, but will cost around $30-50. PyCon PyCon is a community-oriented Python conference emphasizing accessibility and low cost. It is designed to complement the International Python Conference (IPC), which will be a track at the O'Reilly Open Source Convention (OSCON) starting in 2003. PyCon DC 2003 The first PyCon will be held 26-28 March, 2003, at George Washington University's Cafritz Conference Center in Washington DC. There will be a development sprint Mon/Tues before the conference. As always, current info is available at http://www.python.org/pycon/ -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ "Argue for your limitations, and sure enough they're yours." --Richard Bach From peter@ohler.com Mon Feb 3 03:52:16 2003 From: peter@ohler.com (Peter Ohler) Date: Sun, 2 Feb 2003 19:52:16 -0800 Subject: extremely light, all python, XML parser Message-ID: I've written a very small non-validating XML parser. The parser and print routines are written completely in python and require no C compilation. It does not follow the DOM or SAX interfaces but instead produces a simple list or rather list hierarchy of the XML file or string. This module, xmlite, is useful for simple XML files such as those used for configuration. This is my first python code but the code has been tested. Can anyone tell me how to make the module available to others? Pete Ohler peter@ohler.com From jason@tishler.net Mon Feb 3 21:04:20 2003 From: jason@tishler.net (Jason Tishler) Date: Mon, 03 Feb 2003 16:04:20 -0500 Subject: Updated Cygwin Package: python-2.2.2-5 Message-ID: New News: === ==== I have updated the version of Python to 2.2.2-5. The tarballs should be available on a Cygwin mirror near you shortly. The main purpose of this release is to rebuild the _tkinter module against the latest Cygwin tcltk package, tcltk-20030128-3 (i.e., Tcl/Tk 8.4.1). Note that you must define TCL_LIBRARY and TK_LIBRARY using Win32 style paths: $ export TCL_LIBRARY=$(cygpath -w /usr/share/tcl8.4) $ export TK_LIBRARY=$(cygpath -w /usr/share/tk8.4) in order for _tkinter to function properly. Old News: === ==== Python is an interpreted, interactive, object-oriented programming language. If interested, see the Python web site for more details: http://www.python.org/ Please read the README file: /usr/doc/Cygwin/python-2.2.2.README since it covers requirements, installation, known issues, etc. To update your installation, click on the "Install Cygwin now" link on the http://cygwin.com/ web page. This downloads setup.exe to your system. Then, run setup and answer all of the questions. Note that we have recently stopped downloads from sources.redhat.com (aka cygwin.com) due to bandwidth limitations. This means that you will need to find a mirror which has this update. In the US, ftp://mirrors.rcn.net/mirrors/sources.redhat.com/cygwin/ is a reliable high bandwidth connection. In Germany, ftp://ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/mirrors/cygnus/ is usually pretty good. In the UK, http://programming.ccp14.ac.uk/ftp-mirror/programming/cygwin/pub/cygwin/ is usually up-to-date within 48 hours. If one of the above doesn't have the latest version of this package then you can either wait for the site to be updated or find another mirror. The setup.exe program will figure out what needs to be updated on your system and will install newer packages automatically. If you have questions or comments, please send them to the Cygwin mailing list at: cygwin@cygwin.com . I would appreciate if you would use this mailing list rather than emailing me directly. This includes ideas and comments about the setup utility or Cygwin in general. If you want to make a point or ask a question, the Cygwin mailing list is the appropriate place. *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain.com@cygwin.com Jason -- PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6 From drifty@bigfoot.com Tue Feb 4 02:43:51 2003 From: drifty@bigfoot.com (Brett C.) Date: 3 Feb 2003 18:43:51 -0800 Subject: python-dev Summary for 2003-01-16 through 2003-01-31 Message-ID: +++++++++++++++++++++++++++++++++++++++++++++++++++++ python-dev Summary for 2003-01-16 through 2003-01-31 +++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from January 16, 2003 to January 31, 2003. It is intended to inform the wider Python community of on-going developments on the list that might be of interest. To comment on anything mentioned here, just post to python-list@python.org or comp.lang.python with subject line delineating what you discussing. All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on something. And if all of this really interests you then get involved and join python-dev! This is the tenth summary written by Brett Cannon (double digits, baby!). All summaries are archived at http://www.python.org/dev/summary/ . Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sf.net/rst.html . Any unfamiliar punctuation is probably markup for reST_; you can safely ignore it (although I suggest learning reST; its simple and is accepted for PEP markup). Also, because of the wonders of programs that like to reformat text, I cannot guarantee you will be able to run the text version of this summary through Docutils_ as-is unless it is from the original text file. .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. contents:: ====================== Summary Announcements ====================== To make the Summaries more thorough I have decided to make a list of threads that I have decided not to summarize and give my reasoning behind why I decided to skip it which should also explain what the thread is about. I doubt anyone will have complaints about doing this, but if you do let me know. You can find this section entitled "Skipped threads" at the end of the summary. Some PyCon_ announcements to make. Registration is scheduled to start next week. Also, the list of accepted papers is expected to be announced on-time. The conference is shaping up and getting organized. It should be a lot of fun *and* educational, so make sure you come to PyCon_ ! .. _PyCon: http://www.python.org/pycon/ ========================================= `Adding Japanese Codecs to the distro`__ ========================================= __ http://mail.python.org/pipermail/python-dev/2003-January/032197.html MA Lemburg brought up a patch on SourceForge by Hisao SUZUKI (I am assuming the capitalization of the last name is a Japanese thing so I will stick with it in the summary) to add "codecs for the Japanese encodings EUC-JP, Shift_JIS and ISO-2022-JP" and donate the code to the `Python Software Foundation`_. MAL's reason for wanting to use these codecs over the current ones most commonly used with Python (written by Tamito KAJIYAMA whose codecs can be found at http://www.asahi-net.or.jp/~rd6t-kjym/python/ ) was that Hisao's were smaller and written in pure Python. Martin v. Löwis thought it was fine to add the codecs but thought Tamito's should be the defaults if any codecs were added to Python. His reasoning was that they have been in active development for a while and thus have been independently verified, in a way, to be correct. He also didn't like the "absence of the cp932 encoding in Suzuki's codecs" since the "suggestion to equate this to "mbcs" on Windows is not convincing". He also thought it would be best to add the C version only. He also suggested "that it might be more worthwhile to expose platform codecs, which would give us all CJK codecs on a number of major platforms, with a minimum increase in the size of the Python distribution, and with very good performance". In response to Martin's comments, MAL thought that the benefit of the Python versions of the codecs was that they were easier to modify. He suggested that the C version then be made available to download as a separate entity (which apparently has been suggested multiple times). As for the independent verification, Hisao built his based on Java's codecs which MAL thought was pretty good verification that they should work. MAL agreed that exposing more platform codecs would be good. Martin didn't go for the "easier editing" argument. He noted that since the table was autogenerated you would need to know the algorithm that made the table in order to be able to edit it. Hye-Shik Chang responded with the support of the C version since it allows for much easier interprocess communication. It also beat the Python version when it came to memory consumption by a large margin. Guido asked how Tamito would feel about adding these codecs, whether both sets outputted the same, and whether Tamito's codecs would still be preferred by people doing a lot of Japanese work. Martin reponded that he didn't think they produced the same result and that people would continue to use JapaneseCodecs (Tamito's codecs) as long as Python didn't include the cp932 codec. Barry Warsaw commented that Mailman used Tamito's codecs and no one has ever complained. He said he would love to see one of the codecs included in Python. Apparently their tend to be license issues with the various Asian codecs. The KorenCodecs_ (or KoCo) are licensed under LGPL, but Hye-Shik Chang said he would "like to make an essence of KoreanCodecs in PSF License if python needs it". Atsuo Ishimoto voted for Tamito's codecs. He said that the Japanese community would continue to use them regardless of what went into Python. And in regards to the question of maintaining the codecs, Atsuo said the Japanese Python community would be willing to help Tamito with his but did not expect that kind of support for Hisao's codecs (Hisao has volunteered to maintain his codecs, though). MAL pointed out that "Tamito's codecs have an installed size of 1790kB while Hisao's codecs are around 81kB" and that was an issue. Martin said that it was only 690kB if you only counted the C version. The issue of size became a major point. It was pointed out that Tamito's covered more codecs and being in C meant it only needed to be loaded in memory once for interprocess use. Tamito chimed in finally and commented that he was busy and would not be able to maintain the codecs until he graduated from graduate school. MAL suggested that he start maintaining it when he had the time and Tamito agreed. I am not sure where the situation stands as of this moment. .. _PSF: .. _Python Software Foundation: http://www.python.org/psf/ .. _KorenCodecs: http://sf.net/projects/koco ========================================== `make install failing with current cvs`__ ========================================== __ http://mail.python.org/pipermail/python-dev/2003-January/032213.html Jack Jansen was having issues with ``make install`` because he had various packages in site-python that had inconsistent tab usage and thus was raising a TabError during the ``compileall()`` step. Jack asked if site-packages could either be skipped by this step or at least not lead to the abortion of the install. All of this was from a change in ``compileall()`` that caused it to exit with a non-zero value if any errors were raised (although it continued to run). That feature was left in; the Makefile was modified so as to skip site-packages. =============================================== `logging package -- rename warn to warning?`__ =============================================== __ http://mail.python.org/pipermail/python-dev/2003-January/032220.html Guido said that he would "like to change 'warn' to 'warning' (and WARN to WARNING)" in the logging_ package. His argument that nothing else was a verb in the package. Vinay Sajip (who wrote the logging package) said he was fine with the change, but warned it would break existing code that already used the package. He suggested putting both names in with a warning that ``warn`` was deprecated. This was shot down since a new package does not need to start with anything deprecated. Then the discussion of whether to ditch fatal/FATAL since they are synonyms for crictical/CRITICAL came up. Guido said the reverse should happen; keep FATAL and ditch CRITICAL (for the rest of this summary I will only refer to the capitalized version to keep things simple). Some opposition came up, holding the view that CRITICAL was closer to the truth. Vinay suggested SEVERE as a replacement. Guido said it didn't "tickle" his "fancy like fatal/FATAL does"; CRITICAL was okay if no agreed upon replacement could be found. A quick grepping of the package by me shows that CRITICAL is staying as well was WARN (will most likely not be documented, though, so don't use it for new code). .. _logging: http://www.python.org/dev/doc/devel/lib/module-logging.html =============================== `sys.exit and PYTHONINSPECT`__ =============================== __ http://mail.python.org/pipermail/python-dev/2003-January/032217.html Kevin Altis discovered that invoking the interpreter with the ``-i`` argument does not prevent the interpreter from exiting if SystemExit is raised (``sys.exit()`` will raise the exception). He thought it would be good if ``-i`` would override even the SystemExit exception. `Bug #670311`_ was created for this, but no patch has been written yet (anyone care to step up and do this?). .. _bug #670311: http://sourceforge.net/tracker/index.php?func=detail&aid=670311&group_id=5470&atid=105470 ============================ `disable writing .py[co]`__ ============================ __ http://mail.python.org/pipermail/python-dev/2003-January/032270.html Splinter threads: - `Proto-PEP regarding writing bytecode files `__ In the thread `Parallel pyc construction`_ (as covered in the last summary), Paul Dubois brought up how he would like to be able to disable the writing of .py[co] files. Well, this led to a long discussion that culminated into the creation of `PEP 304`_ by Skip Montanaro. If this topic interests you then read the PEP. .. _Parallel pyc construction: http://www.python.org/dev/summary/2003-01-01_2003-01-15.html#parallel-pyc-construction .. _PEP 304: http://www.python.org/peps/pep-0304.html ================================================ `Re: GadflyDA in core? Or as add-on-product?`__ ================================================ __ http://mail.python.org/pipermail/python-dev/2003-January/032295.html The idea was proposed to add Gadfly_ to the stdlib. Two issues came up about doing this. One was that it would require having to deal with another license. Aaron Watters (the original author of Gadfly) was emailed to ask if he would be willing to donate the code to the `Python Software Foundation`_, but he did not respond (at least to the list). The other issue was the use of kjbuckets_. Guido was -1 on letting it into the stdlib because he had "heard it's some of .the hairiest C code ever written". But Richard Jones said that Anthony Baxter is working on removing the dependency on kjbuckets by rewriting the code using the Sets_ module introduced in Python 2.3. As of this writing the decision as to whether to add Gadfly has been put on hold until both of the above issues are resolved. .. _Gadfly: http://gadfly.sourceforge.net/ .. _Sets: http://www.python.org/dev/doc/devel/lib/module-sets.html .. _kjbuckets: http://starship.python.net/crew/aaron_watters/kjbuckets/ ==================================== `Mixed-type datetime comparisons`__ ==================================== __ http://mail.python.org/pipermail/python-dev/2003-January/032414.html Tim Peters sent an email to the list saying that he had made changes to the datetime_ type so that it returned NotImplemented if the thing being compared to had a ``timetuple()`` method so as to allow other implementations to provide the functionality. He also mentioned how you still can't compare datetimes and timedeltas. This caused MA Lemburg to ask why not. Tim said it just wouldn't make any sense since they don't even measure time in the same units. Tim ended on saying that if MAL and Fredrik Lundh could come up with a good proposal Tim would get it in, otherwise his time on datetime for Python 2.3 is spent. .. _datetime: http://www.python.org/dev/doc/devel/lib/module-datetime.html ============== `Itertools`__ ============== __ http://mail.python.org/pipermail/python-dev/2003-January/032508.html Raymond Hettinger checked in his itertools_ module into the sandbox for testing and asked for feedback. He got it and has subsequently checked the module into the stdlib. .. _itertools: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Modules/itertoolsmodule.c ======================================== `Idea for avoiding exception masking`__ ======================================== __ http://mail.python.org/pipermail/python-dev/2003-January/032492.html Raymond Hettinger discovered that "trapping an exception (a TypeError for a mutable argument passed to a dictionary) resulted in masking other errors that should have been passed through (potential TypeErrors in the called iterator for example)". Raymond proposed a new function named PyErr_FormatAppend that would append the extra info. Ka-Ping Yee suggested adding the original exception to the new exception as an attribute. This was generally viewed as a good solution. Questions of how to store traceback information and how to handle this in the C code has yet to be resolved. ============================= `Extended Function syntax`__ ============================= __ http://mail.python.org/pipermail/python-dev/2003-January/032498.html Splinter threads: - `Property syntax `__ - `thunks (for all the fish) `__ - `question??? `__ - `Syntax-wise `__ - `How about a meta-reserved word? `__ This threads wins the award for longest thread summarized here (and possibly ever for a summary written by me). Fair warning if you decide to read the actual thread. Also, none of this applies to Python 2.3; Guido promised syntactic stability for this next release and you will get it. Guido remembered that a proposal for extending the syntax of Python to make using things such as ``property()``, ``staticmethod()``, etc. much easier and wanted a reminder on where more info was. The suggeted syntax was:: def name(arg, ...) [expr1, expr2, expr3, ...]: ...body... where ``expr, ...`` would be evaluated like ``name = expr3(expr2(expr1(name)))``. Michael Hudson wrote up a patch which can be found at http://starship.python.net/crew/mwh/hacks/meth-syntax-sugar-3.diff with the original python-dev thread on this at http://mail.python.org/pipermail/python-dev/2002-February/020005.html . All of this led to an explosion of other syntax suggestions. One that garnered some support was to make something like:: class Foo: def Foo.bar(self, a, b, c): ...body... work by basically making a def statement work like ``Foo.bar=new.function(CODE, GLOBS, 'Foo.bar')``. If properties were made assignable then you could just use this syntax to assign to a property you instantiated. People also came up with metaclass implementations of some things (which Guido didn't like because they "all abuse the class keyword for something that's definitely not a class"). An idea that Walter Dörwald suggested was:: class Foo(object): property myprop: """Doc string for myprop.""" def __get__(self): ...body... def __set__(self, arg): ...body... def __delete__(self): ...body... Guido's objection was that it turned property into a keyword. But he admitted that a new keyword would be okay if an elegant solution came about. Guido then made the suggestion of:: foo = property: ... This also garnered some support. The problem with this is that it would require the parser to be able to go from '"expression parsing mode" to "block parsing mode"' in a new way. But Guido seemed to solve it. It would also allow the generalization of this to something along the lines of:: v = e: # Possibility for adding args -- v = e:(x, y): S # Creates a thunk which would be equivalent to:: v = e(T) # T is a thunk created from S None of this is meant to replace the suggested [expr, ...] syntax that started this whole thread. Another syntactic suggestion was:: def foo as property: def __get__(self): ... def __set__(self, x): ... Which seemed to grab a lot of people's fancies. This would allow for "... as class", "... as generator", etc. But the problem with all of these proposals is how to deal with namespaces. Should, for instance, the thunks Guido suggested have their own namespace or use the one of their parent? Should their be only one type of thunk or multiple types with different scoping rules based on the situation? The namespace issue (especially for thunks) is still playing out. =========================== `Capabilities in Python`__ =========================== __ http://mail.python.org/pipermail/python-dev/2003-January/032672.html This thread actually came out of the whole property/thunk thing summarized directly above but was so tangential that I thought it deserved its own summary. Ben Laurie had apparently suggested that capabilities be added to Python. Jeremy Hylton gave a pretty good description of a capability as "a ticket. The ticket is good for some event and possession of the ticket is sufficient to attend the event"; limit abilities of objects based on what capabilities you possess. The problem is that Python's introspection lets you see everything and thus you can get around restrictions; you can get into the event by sneaking out back and crawling under the fence all without having a ticket. Jeremy mentioned Zope's proxy which fully wraps an object and forces all interaction through the proxy. Then Ka-Ping Yee stepped up to discuss the topic. He made the point that "creating a capability is equivalent to creating an object -- which you can only do if you hold the constructor". Ping said that "To build a capability system, all you need to do is to constrain the transfer of object references such that they can only be transmitted along other object references. That's all." In order to pull this off you would need to restrict access to only the declared interface of an object and have "no global namespace of modules". In other words have something like a private declaration for things and get rid of ``sys.modules``. Ping suggested coming up with a "secure-mode" Python where these restrictions would be turned on. Neil Schemenauer liked this idea. ================ Skipped Threads ================ `test_logging failing on Windows 2000 `__ Since it dealt with a bug that received a patch I didn't worry about it. `PyConDC sprints `__ Meant for the people on python-dev directly, so no point in telling the general community about it. `String method: longest common prefix of two strings `__ Didn't go anywhere; Guido said he doesn't want to add every useful thing as a string method since there are already so many. `very slow compare of recursive objects `__ Discussed a patch about recursive compares. Basically led to no change and dealt with how to make a tuple recursive. `test_email always supposed to be skipped? `__ Glitch in Makefile.pre.in which got fixed. `extending readline functionality (patch) `__ Someone sending a patch directly to python-dev; big no-no! Use SourceForge_ for any all patches. `Re: [Python-checkins] python/dist/src Makefile.pre.in,1.111,1.112 `__ No one ever responded to the email; problem was probably solved. `Cookie.py too strict `__ Barry Warsaw wanted to make the Cookie_ module less strict in acceptance. Michael Chermside suggested adding an argument to be able to specify whether the acceptance of data should be strict or not. `HTMLParser patches `__ Mentions two patches for HTMLParser_ to fix some parsing problems. `Name space pollution (fwd) `__ Someone on `c.l.py`_ didn't like the naming of a function ``destructor`` in the core because it is such a common name and thus can clash with other code. Guido said submit a patch or use some ``#define`` tricks. `logging package -- spurious package contents `__ Guido didn't like the config file for the logging_ package nor the extra handlers. It was agreed to ditch the config file but keep the handlers. `logging package -- documentation `__ Better docs for the logging_ package were uploaded and are ready to be applied. `Re: [Zope3-dev] PosixTimeZone tzinfo implementation `__ Single email mentioning the tm_gmtoff attribute of the datetime type. `test_ossaudiodev hangs `__ The ossaudiodev_ module was hanging in tests. It has been disabled in `setup.py`_. `Looking for a Windows bsddb fan `__ Tim Peters upgraded the Windows distribution to berkeleydb 4.1.25; doing so caused a huge amount of test failures. Turned out they were race conditions in the tests inherit in such complicated tests. `Extension modules, Threading, and the GIL `__ Mention of how the GIL puts a cramp into writing PyGTK_. This thread started last month ( http://www.python.org/dev/summary/2003-01-01_2003-01-15.html#extension-modules-threading-and-the-gil ). `the new 2.3a1 settimeout() with httplib and SSL `__ There was a problem with the new timeout mechanism in socket_ and SSL. There is a a patch at http://www.python.org/sf/676472 to fix the problem. `non-blocking sockets and sendall `__ Brian Ellin noticed that ``socket.sendall()`` and non-blocking sockets don't work together. `Re: [Python-checkins] python/dist/src/Lib/bsddb dbshelve.py,1.4,1.4.4.1 `__ Skip Montanaro asking whether bsddb185 should become "a fallback to the fallback". `xmlparse.c no longer compiles on Windows `__ Tim Peters discovered `xmlparse.c`_ had some #define lines for the non-existent case of no ``memmove()`` function. `fixing traceback.extract_stack() line numbers `__ Greg Klanderman noticed that ``traceback.extract_stack()`` only gives the first line of the method and not of the actual line that caused an issue. `python2.3 on m68k-nommu uClinux, really slow `__ Brad Clements got Python working on an m68k processor and performance was horrible. He asked if anyone had any ideas on how to speed it up. `native code compiler? (or, OCaml vs. Python) `__ Someone asked if Python was ever going to have a native code compiler. The answer is "if you want to write one" and to ask the question nicely. It also became a debate over how difficult a native code compiler would be. `Re: RHSA-2002:202-25 `__ Skip Montanaro sent an email about a security hole found in ``os.exec*p()`` method that was patched back in August. It has subsequently been back-patched to 2.1. `map, filter, reduce, lambda `__ Andrew Koenig commenting on the discussion from the `last summary`_. `Global interpreter lock/import mechanism `__ Joerg Budischewski asked some questions about the proper way of doing some things in a C extension. `Should Cygwin Python use --enable-runtime-pseudo-reloc? `__ Title of this thread makes what it is about obvious. `New PEP 306 needs proof reading. `__ Another thread whose content is obvious by the title. `StringIO not an iterator? `__ Misunderstanding initially. Guido then suggested that (c?)StringIO become its own iterator which became a bug report. `SF patch #677429 (PEP293 callbacks) `__ Walter Dörwald asking for someone to look over a patch since Martin v. Löwis in on vacation (and this explains why I have not been bringing up the character palette so much in this summary for inserting umlauts =). `rexec/bastion `__ Someone asking an improper question on the list (Mailman lists this in February, but I am on Pacific time so I say it is in January =). `PEP 42: sizeof(obj) builtin `__ Raymond Hettinger asked if people still wanted ``sizeof()`` in Python. One person said yes. The difficulty of doing this correctly was also pointed out along with the suggestion that if this function is written it be a part of the ``sys`` module. `PEP 305 - CSV File API `__ "A new PEP (305), "CSV File API", is available for reader feedback". `New version of PEP 304 `__ A new version of PEP 304 is up. `import.c:load_source_module() confusion `__ Skip Montanaro had a question about returning when a possible error was signalled on an import. .. _SourceForge: http://www.sf.net/projects/python .. _Cookie: http://www.python.org/dev/doc/devel/lib/module-Cookie.html .. _c.l.py: http://groups.google.com/groups?q=comp.lang.python&ie=ISO-8859-1&hl=en&btnG=Google+Search .. _ossaudiodev: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Modules/ossaudiodev.c .. _setup.py: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/setup.py .. _PyGTK: http://www.daa.com.au/~james/pygtk/ .. _HTMLParser: http://www.python.org/dev/doc/devel/lib/module-HTMLParser.html .. _xmlparse.c: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Modules/expat/xmlparse.c .. _last summary: http://www.python.org/dev/summary/2003-01-01_2003-01-15.html .. _socket: http://www.python.org/dev/doc/devel/lib/module-socket.html From ferdinando@ametrano.net Tue Feb 4 10:43:35 2003 From: ferdinando@ametrano.net (Ferdinando Ametrano) Date: Tue, 04 Feb 2003 11:43:35 +0100 Subject: [ANN] QuantLib-Python 0.3.1 Message-ID: QuantLib-Python 0.3.1 --------------------- http://quantlib.org QuantLib-Python is a SWIG wrap of QuantLib. QuantLib is a free/open-source quantitative finance C++ library for modeling, pricing, trading, and risk management in real-life. A tool for derivatives and financial engineering. Version 0.3.1 of the C++ library and the Python extension have been released. What's new ------------ - in sync with QuantLib 0.3.1 - migrated to SWIG 1.3.17 - merged under a global QuantLib-SWIG project - bug fixing URL: http://quantlib.org License: BSD style Categories: Miscellany Ferdinando Ametrano (ferdinando@ametrano.net) http://www.ametrano.net --

QuantLib-Python 0.3.1 - A module for quantititative finance. (4-Feb-03)

-- From lutz@rmi.net Tue Feb 4 16:52:08 2003 From: lutz@rmi.net (Mark Lutz) Date: Tue, 4 Feb 2003 09:52:08 -0700 Subject: public Python training session, Feb 18-20 Message-ID: Greetings, I will be holding another public Python training session in Colorado, on February 18-20, 2003. This 3-day class is open to individual enrollments. For more details about this session, please visit this page: http://www.rmi.net/~lutz/feb03-longmont-class.html General course details are maintained here: http://www.rmi.net/~lutz/mytrain.html --Mark Lutz (http://www.rmi.net/~lutz) From jjl@pobox.com Thu Feb 6 15:14:28 2003 From: jjl@pobox.com (jjl@pobox.com) Date: Thu, 6 Feb 2003 15:14:28 +0000 Subject: RELEASE: ClientCookie 0.3.0b Message-ID: http://wwwsearch.sourceforge.net/ClientCookie/ Changes since 0.2.0b: * Fixed several important bugs. * Response objects now have lazy read, readline, readlines and seek methods. Seekable responses are now optional (but on by default, as before). Non-seekable objects are just the standard urllib2 response objects (and hence are lazy, too). * Added backwards-compatible (ie. off by default) support for META HTTP-EQUIV and zero-time Refresh header redirection. * Added blocked_domains accessor methods. * Improved documentation. * Removed Apple Mac-specific code, since it has never been tested. If anybody wants it back, let me know. * Refactored Cookies.add_cookie_header and .extract_cookies methods. * Removed Python 1.5.2-compatible urllib2 / urllib. Now separately downloadable. * Added UNTESTED (ie. non-working) Microsoft Internet Explorer (MSIE) cookie support (reading only). I don't have a networked MS machine ATM, so testers are very welcome. Requires Python >= 1.5.2. urllib2 is recommended. 1.5.2-compatible urllib2 / urllib is at http://wwwsearch.sourceforge.net/ ClientCookie is a Python module for handling HTTP cookies on the client side, useful for accessing web sites that require cookies to be set, and returned later. It also provides some other (optional) useful stuff: HTTP-EQUIV handling, zero-time Refresh handling, and lazily-seekable responses. It is a port of Gisle Aas' Perl module HTTP::Cookies, from the libwww-perl library. import ClientCookie response = ClientCookie.urlopen("http://foo.bar.com/") This function behaves identically to urllib2.urlopen, except that it deals with cookies automatically. That's probably all you need to know. John From jjl@pobox.com Thu Feb 6 15:27:50 2003 From: jjl@pobox.com (jjl@pobox.com) Date: Thu, 6 Feb 2003 15:27:50 +0000 Subject: RELEASE: ClientForm 0.0.5 Message-ID: http://wwwsearch.sourceforge.net/ClientForm/ Changes since 0.0.4b: * First stable release. * Parser now no longer reads entire file before starting to work on data. * Implemented ISINDEX submission, and updated documentation (see IsindexControl.__doc__). * Changed type attributes of BUTTON TYPE=SUBMIT and BUTTON TYPE=RESET to "submitbutton" and "resetbutton" respectively. Previously, they were "submit" and "reset" respectively, which made it impossible to tell whether they came from a BUTTON or an INPUT control. * Minor documentation improvements. Requires Python >= 1.5.2. ClientForm is a Python module for handling HTML forms on the client side, useful for parsing HTML forms, filling them in and returning the completed forms to the server. It has developed from a port of Gisle Aas' Perl module HTML::Form, from the libwww-perl library, but the interface is not the same. import ClientForm import urllib2 request = urllib2.Request("http://www.acme.com/form.html") response = urllib2.urlopen(request) forms = ClientForm.ParseResponse(response) form = forms[0] form["cheeses"] = ["parmesan", "leicester", "cheddar"] form.toggle("cheeses", "gorgonzola") form["author"] = "Gisle Aas" request2 = form.click("Thanks") response2 = urllib2.urlopen(request2) print response2.geturl() print response2.info() # headers for line in response2.readlines(): # body print line John From jjl@pobox.com Thu Feb 6 15:28:28 2003 From: jjl@pobox.com (jjl@pobox.com) Date: Thu, 6 Feb 2003 15:28:28 +0000 Subject: ANNOUNCE: ClientTable: HTML table parsing Message-ID: http://wwwsearch.sourceforge.net/ClientTable/ WARNING: This is an alpha release: interfaces will change, and don't expect everything to work! I'm looking for feedback on the API ATM, so comments are particularly welcome. ClientTable is a Python module for generic HTML table parsing. It is most useful when used in conjunction with other parsers (htmllib or HTMLParser, regular expressions, etc.), to divide up the parsing work between your own code and ClientTable. import ClientTable import urllib2 response = urllib2.urlopen("http://www.acme.com/tables.html") tables = ClientTable.ParseFile(response, collapse_whitespace=1) table = tables[0] # Indexing a table with a string-like object gets the column under that # header. ClientTable uses the first row of headers in the table by # default. assert str(table.headers_row[0]) == "Widget production" row = table[1] col = table["Widget production"] cell = col[1] cell2 = row["Widget production"] cell3 = row.get_cell_by_nr(0) assert cell is cell2 is cell3 Python 2.2 or above is required. I will probably backport it to at least Python 2.0 later. For full documentation, see the docstrings in ClientTable.py. John From nas@mems-exchange.org Fri Feb 7 18:44:54 2003 From: nas@mems-exchange.org (Neil Schemenauer) Date: Fri, 7 Feb 2003 13:44:54 -0500 Subject: ANNOUNCE: scgi 1.0b1 released Message-ID: Version 1.0b1 of the scgi package is now available from: http://www.mems-exchange.org/software/scgi/ The SCGI protocol is a replacement for the Common Gateway Interface (CGI) protocol. It is a standard for applications to interface with HTTP servers. It is similar to FastCGI but is designed to be easier to implement. Included in this package is mod_scgi, an Apache module that implements the client side of the protocol. There is also a a Python package called "scgi" which implements the server side of the protocol. Changes in version 1.0b1 ------------------------ mod_scgi.c * Reset the timeout while reading the request body. This allows large file uploads without the connection being reset. * Slight simplification of cmd_server and cmd_handler. quixote_handler.py * By default, bind to local IP address 127.0.0.1 instead of 0. Allow the local address to be specified. scgi_server.py * After receiving a passed socket, explicitly set it to non-blocking. This works around what seems to be a bug in FreeBSD. Thanks to Mike Watkins for helping track it down. -- Neil Schemenauer | MEMS Exchange Software Engineer | http://www.mems-exchange.org/ From theller@python.net Fri Feb 7 21:17:04 2003 From: theller@python.net (Thomas Heller) Date: 07 Feb 2003 22:17:04 +0100 Subject: [Ann] ctypes 0.4.0 released Message-ID: I've just released ctypes 0.4.0. Homepage http://starship.python.net/crew/theller/ctypes.html ----- ctypes is a module allowing to create and manipulate C data types in Python. These can then be passed to C-functions loaded from dynamic link libraries. This module is supposed to be a greatly enhanced and much more complete replacement of Sam Rushing's calldll/npstruct/windll modules. ctypes is not based on Sam's work, it has different roots. It requires Python 2.2 or higher, since it makes intensive use of the new type system. ctypes runs on Windows, Linux, and MacOS X (and maybe on other systems as well). For all platforms except Windows you'll need a recent version of libffi which supports your processor. Ronald Oussoren has kindly assembled a snapshot of libffi taken from the GCC CVS repository which works with this release, it is available for download from the ctypes download page http://sourceforge.net/project/showfiles.php?group_id=71702. ---- Version 0.4.0, 2003-02-07: This an intermediate release, there is still a lot to be done. Changes: ctypes works with Python 2.2 and Python 2.3 now. Structure and Union fields have now readonly .size and .offset properties, see the docs. POINTER instances can now be indexed as if they point to arrays of objects instead of only a single object. CFunction instances now have a .from_param class method. (This is the protocol which allows to validate and convert function call arguments from Python to C - in other words, you can now use a CFunction subclass in the argtype attribute for a function from a DLL to specify the type of the callback function. Does anyone understand this?) Argument conversion from Python to C is somewhat faster now. I added a lot of unittests, which not only check for bugs, but also 'describe the current behaviour'. Unittest rocks! Lots and lots of bugs and potential crashes have been fixed: Alignment and sizes of structures and unions is now correct as far as I can see. Assigning Python numbers to mutable integer types (c_short, c_int, c_long and so on) now correctly checks for valid range, you can no longer assign a negative Python number to an unsigned C data type for example. General News: I moved the sources from local CVS to SourceForge CVS repository. -- Thomas From jdahlin@async.com.br Sun Feb 9 00:19:13 2003 From: jdahlin@async.com.br (Johan Dahlin) Date: 08 Feb 2003 22:19:13 -0200 Subject: ANNOUNCE: pygtk-1.99.15, pyorbit-1.99.3, gnome-python-1.99.15 Message-ID: General ======= We expect this to be last unstable release before 2.0. For next release, we are going to concentrate on documentation and bug fixes. Highlights of news in PyGTK 1.99.15 =================================== Distutils It's now possible to build PyGtk and gnome-python using python distutils. It has not been tested extensively yet (as the autoconf version) but it should work on most systems. If it does not work for you, please report a bug and try the autoconf configure script. To build and install, simply type: ./setup.py install Alternatively you can specify a prefix (/usr is usually default): ./setup.py install --prefix /usr/local If you want to build with threading support, add the --enable-threading option to the command line. This eliminates the need of autoconf,automake,libtool and make for developers and people who want to build from CVS. libgnomeprint and libgnomeprintui Thanks to Gustavo Carneiro there is now more or less complete(!) libgnomeprint and libgnomeprintui bindings. libgnomeprint(ui) 2.1.6 or higher is required (from gnome 2.2) GMainLoop/GMainContext It's now possible to run the GMainLoop without importing gtk. This is very useful for projects that only uses input_add, timeout_add or idle_add. Threading A lot of work has been gone into improving and testing threading support in PyGTK. It should now be possible to use threads in most situations. There are a few limitations however, For instance, the mainloop will always be run in the main thread. Where to get it? ================ PyGTK, PyORBit and gnome-python can be downloaded from: http://ftp.gnome.org/pub/GNOME/sources/pygtk/1.99/ http://ftp.gnome.org/pub/GNOME/sources/gnome-python/1.99/ Overview of Changes in PyGTK 1.99.15 ==================================== distutils support (me) Code generator improvements (Jeremy Katz) Threading fixes (Jon Trowbridge, David I Lehn, Joe Shaw and John Finlay) API additions: GtkTextBuffer (James Henstridge, me and John) GtkTextView (me and John) pygtk.py bug fixes (me) GtkFileSelection (Joe) libglade (me) GMainLoop/GMainContext support (me) Overview of Changes in gnome-python 1.99.15 =========================================== distutils support (me) libgnomeprint and libgnomeprintui bindings (Gustavo Carneiro) Completed NautilusView (me) BonoboArg/BonoboArgType support in codegenerator (me) BonoboEventSource (me) BonoboUIComponent improvements (Arjan J Molenaar) Added monitor bindings (me) More mime type bindings (me) Bugs fixed: [72333] pygtk should handle unix signals [99102] Crash in pyg_object_set_property() with a custom in-python c [101566] Missing funcs(?) [102083] TextBuffer.insert_at_cursor can have default len of -1 [102084] gtk.Invisible() crashes when leaving scope [102087] Don't need to override TextBuffer.set_text() [102091] No listeners can be added to a BonoboUIComponent [102098] gnome.ui.PAD | PAD_SMALL | PAD_BIG missing [102180] should tolerate multiple pygtk.require/import gtk calls [102186] Make TextBuffer insert methods handle text consistently [102190] add monitor functions to vfs bindings [102226] libgnomeprint / libgnomeprintui bindings [102362] GObject should wrap GMainLoop [102551] CORBA_any types not wrapped correctly in callbacks [102557] Need bindings for gnome.IconList.set_icon_data/get_icon_data [102607] Provide a default value for include_hidden_chars in TextBuffer [102627] Provide default value for left_gravity parameter in TextBuffer [102628] Provide way to set TextTag properties in TextBuffer.create_tag [102650] Glade.autoconnect should accept an instance [102731] PANGO_SCALE_* constants tp pangomodule.c [102735] Allow a TextTag to be created without specifying a name by default [102756] Deadlock with pygtk and threads [102978] Wrapping gtk_file_selection_get_selections() [103443] Default values for TextIter tag methods begins_tag, ends_tag [103559] GtkImage methods can take NULL parameters [103615] distutils should be split up [103616] "data" argument to bitmap_create_from_data should have type [103851] gtk.mainiteration_do() needs to handle threads [103876] pygtk.require() considers empty directories [103979] dir() on gtk.gdk.Event instance does not show all fields [104008] wrong return value for empty list in get_list function Thanks to all contributors which this release would be impossible without: You rock guys! Tom Cato Amundsen, Ross Burton, Gustavo Carneiro, John Finlay, Florin Iucha, Jeremy Katz, Eddie Kohler, David I Lehn, Andreas Marienborg, Arjan J. Molenaar, Joe Shaw, Jon Trowbridge, Brian Warner and James Willcox -- Johan Dahlin Async Open Source From barry@python.org Sun Feb 9 01:44:39 2003 From: barry@python.org (Barry A. Warsaw) Date: Sat, 8 Feb 2003 20:44:39 -0500 Subject: RELEASED Mailman 2.1.1 Message-ID: I've released version 2.1.1 of Mailman, the GNU Mailing List Manager. Mailman is released under the GNU General Public License (GPL). Version 2.1.1 fixes many bugs found in Mailman 2.1 final, and updates language support. It also fixes a cross-site scripting vulnerability. It is recommend that all Mailman 2.1 sites upgrade to version 2.1.1. Mailman is free software that enables users to manage email mailing lists and e-newsletters. Its integrated web interface provides easy-to-use access for list members and list administrators. Mailman supports built-in archiving, automatic bounce processing, content filtering, digest delivery, spam filters, and more. Mailman is compatible with most web servers, web browsers, and mail servers. It runs on any Unix-like operating system. Mailman 2.1.1 requires Python 2.1.3 or newer. To install Mailman from source, you will need a C compiler. For more information on Mailman, including links to file downloads, please see any of the Mailman mirror web pages: http://www.gnu.org/software/mailman http://mailman.sourceforge.net http://www.list.org Patches and source tarballs are available at http://sourceforge.net/project/showfiles.php?group_id=103 There are email lists (managed by Mailman, of course!) for both Mailman users and developers. See the web sites above for details. Cheers, -Barry -------------------- snip snip -------------------- 2.1.1 (08-Feb-2003) Lots of bug fixes and language updates. Also: - Closed a cross-site scripting vulnerability in the user options page. - Restore the ability to control which headers show up in messages included in plaintext and MIME digests. See the variables PLAIN_DIGEST_KEEP_HEADERS and MIME_DIGEST_KEEP_HEADERS in Defaults.py. - Messages included in the plaintext digests are now sent through the scrubber to remove (and archive) attachments. Otherwise, attachments would screw up plaintext digests. MIME digests include the attachments inline. From pycon-registration@python.org Sun Feb 9 20:02:25 2003 From: pycon-registration@python.org (Aahz) Date: Sun, 9 Feb 2003 15:02:25 -0500 Subject: ANNOUNCE: PyCon registration now open Message-ID: [The first version doesn't seem to have gone out. Apologies if this appears twice.] Registration for PyCon is now open, thanks to the efforts of Kurt DeMaagd of the Perl Foundation. Early bird registration costs $150 and ends February 28, 2003. After that, it will cost $200 to pre-register until March 21 or $250 at the door. http://www.python.org/pycon/reg.html Register early! Register often! PyCon PyCon is a community-oriented conference targeting developers (both those using Python and those working on the Python project). It gives you opportunities to learn about significant advances in the Python development community, to participate in a programming sprint with some of the leading minds in the Open Source community, and to meet fellow developers from around the world. The organizers have worked hard to ensure that the conference be affordable and accessible to all. We look forward to seeing you there. PyCon DC 2003 The first PyCon will be held 26-28 March, 2003, at George Washington University's Cafritz Conference Center in Washington DC. There will be a development sprint Mon/Tues before the conference. -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ Register for PyCon now! http://www.python.org/pycon/reg.html From amk@amk.ca Mon Feb 10 20:15:11 2003 From: amk@amk.ca (A.M. Kuchling) Date: Mon, 10 Feb 2003 14:15:11 -0600 Subject: ng-arch: New list for discussing a better mail archiver Message-ID: I've started a mailing list, ng-arch, for design and development of a better mail archiving system. To subscribe go to: http://www.amk.ca/mailman/listinfo/ng-arch It would be nice if this new archiver's implementation can be suitable for inclusion with Mailman 2.2 (and can be implemented in time), but if that's not possible it might be a standalone project. --amk (www.amk.ca) BASSANIO: The world is still deceived with ornament. -- _The Merchant of Venice_, III, ii From guido@python.org Mon Feb 10 20:00:41 2003 From: guido@python.org (Guido van Rossum) Date: Mon, 10 Feb 2003 15:00:41 -0500 Subject: Python 11 proposals deadline is February 15th! Message-ID: The Python 11 Conference is being held July 7-11 in Portland, Oregon as part of OSCON 2003. http://conferences.oreillynet.com/os2003/ The deadline for proposals is February 15th! You only need to have your proposal in this week, you don't need to worry about trying to put together the complete presentation or tutorial materials at this time. Proposal submissions page: http://conferences.oreillynet.com/cs/os2003/create/e_sess Few proposals have been submitted so far, we need many more to have a successful Python 11 conference. If you have submitted a proposal for one of the other Python conferences this year such as PyCon, I encourage you to go ahead and submit the proposal to Python 11 as well. If you are presenting at the Python UK Conference or EuroPython, but are unable to attend Python 11, you should consider having another team member do the presentation. The theme of OSCON 2003 is "Embracing and Extending Proprietary Software". Papers and presentations on how to successfully transition away from proprietary software would also be good, but it is not necessary for your proposal to cover the theme, proposals just need to be related to Python. COMPENSATION: Free registration for speakers (except lightning talks). Tutorial speakers also get a honorarium, and some of their hotel and travel costs are covered. O'REILLY ANNOUNCEMENT: 2003 O'Reilly Open Source Convention Call For Participation Embracing and Extending Proprietary Software http://conferences.oreilly.com/oscon/ O'Reilly & Associates invites programmers, developers, strategists, and technical staff to submit proposals to lead tutorial and conference sessions at the 2003 Open Source Software Convention, slated for July 7-11 in Portland, OR. Proposals are due February 15, 2003. For more information please visit our OSCON website http://conferences.oreilly.com/oscon/ The theme this year is "Embracing and Extending Proprietary Software." Few companies use only one vendor's software on desktops, back office, and servers. Variety in operating systems and applications is becoming the norm, for sound financial and technical reasons. With variety comes the need for open unencumbered standards for data exchange and service interoperability. You can address the theme from any angle you like--for example, you might talk about migrating away from commercial software such as Microsoft Windows, or instead place your emphasis on coexistence. Convention Conferences Perl Conference 7 The Python 11 Conference PHP Conference 3 Convention Tracks Apache XML Applications MySQL and PostgreSQL Ruby --Guido van Rossum (home page: http://www.python.org/~guido/) From python@rcn.com Tue Feb 11 05:54:45 2003 From: python@rcn.com (Raymond Hettinger) Date: Tue, 11 Feb 2003 00:54:45 -0500 Subject: Update to PEP308: if-then-else expression References: <002201c2d17c$3c084500$530f8490@eden> Message-ID: I updated the PEP for Guido van Rossum. If the cron job is doing its thing, the results will be visible in a few hours. The update reflects updated thinking based on the discussion to-date. It also summarizes a few posts from comp.lang.python. Hopefully, it will serve to focus the discussion on the best of the ideas and arguments presented so far. * Out of order evaluation is out of favor. * So are ideas that do not provide for short-circuiting. * (if : else: ) is in vogue. * ?? || is a new contender. * cond(, , ) is viable if implemented as a keyword and has short-circuit behavior. Note, the actual word is still an open question. iif() got shot down quickly. * Added a summary of a few ideas from the last couple hundred posts from comp.lang.python. Raymond Hettinger From sholden@holdenweb.com Tue Feb 11 12:23:11 2003 From: sholden@holdenweb.com (Steve Holden) Date: Tue, 11 Feb 2003 07:23:11 -0500 Subject: PyCon Registration: Early Bird Available Message-ID: PyCon, the Python community conference described at http://www.python.org/pycon/ opened for registration a while ago. Those wishing to attend can secure the fabulous "early bird" rate of just $150 by visiting http://www.python.org/pycon/reg.html now. It's been a while since I bothered these lists about it, so this is just a reminder: registration can be secured by credit card online, or by check (in US funds, drawn on a US bank). Thanks to the generosity of New Riders, some of those attending will return home with a free copy of "Python Web Programming". I look forward to seeing you all there. regards -- Steve Holden http://www.holdenweb.com/ Python Web Programming http://pydish.holdenweb.com/pwp/ Register for PyCon now! http://www.python.org/pycon/reg.html From stu@asyn.com Tue Feb 11 02:52:18 2003 From: stu@asyn.com (Stuart Donaldson) Date: Mon, 10 Feb 2003 18:52:18 -0800 Subject: Webware for Python 0.8 released. Message-ID: Webware 0.8 has been released. It includes includes numerous enhancements and bug fixes. Webware provides a suite of Python components for developing Web applications. It includes an App Server, Servlets, Python Server Pages, Object-Relational mapping, Task Scheduling, Session management, and many other features. Webware is very modular, and easily extended. Check out the Webware for Python home page for documentation, and download instructions at http://webware.sourceforge.net/ From EricI.Arnoth Sun Feb 9 17:41:41 2003 From: EricI.Arnoth (EricI.Arnoth) Date: Sun, 9 Feb 2003 12:41:41 -0500 (EST) Subject: [Module] Dia2SQLpy Message-ID: Dia2SQLpy --------- Converts database diagrams in Dia to SQL statements Dia2SQLpy is a Python script that convert UML diagrams representing databases as drawn in Dia into SQL create statements. Currently, tables, columns, auto-incrementing primary keys and foriegn key relationships are supported. The script can produce output for both MySQL and Postgresql. Support for more database concepts is planned, including sophisticated datatype conversions for each database product. Please feel free to give comments, criticisms, bugfixes (bugs? what bugs?!? ;) feature recommendations, etc. All feeback is welcome. URL: http://software.freshmeat.net/redir/dia2sqlpy/37094/url_homepage/modules.php?name=Content&pa=showpage&pid=16 Download: http://mywebpages.comcst.net/earnoth/dia2sql.py License: GPL Platform: Posix Requires: Options-1.01 Categories: Database Eric I. Arnoth (earnoth@comcast.net) http://honeypotdiary.org/earnoth/html/index.php -- Dia2SQLpy -- Converts database diagrams in Dia to SQL statements From itcram@yahoo.com Wed Feb 5 17:58:23 2003 From: itcram@yahoo.com (Blake Wedel) Date: Wed, 5 Feb 2003 12:58:23 -0500 (EST) Subject: [Module] Sten.py 0.10 Message-ID: Sten.py 0.10 ------------ Allows you to hide text messages inside an image file. Stenography is the process of taking a text file and "hiding" it inside an image file without currupting the image file (of course). Right now with Sten.py you can "hide" anything that is in a text format. Either a regular text file or even pickled python objects, as long as they are saved in a file. URL: http://www.geocities.com/itcram/python/python.html Requires: Python Imaging Library Categories: Graphics Blake Wedel (itcram@yahoo.com) www.geocities.com/itcram -- Sten.py 0.10 -- Allows you to hide text messages inside an image file. From knight@baldmt.com Tue Feb 11 13:38:49 2003 From: knight@baldmt.com (Steven Knight) Date: Tue, 11 Feb 2003 07:38:49 -0600 (CST) Subject: ANNOUNCE: SCons 0.11 (build tool in Python) is now available Message-ID: SCons is a software construction tool (build tool, or make tool) written in Python. It is based on the design which won the Software Carpentry build tool competition in August 2000. Version 0.11 of SCons has been released and is available for download from the SCons web site: http://www.scons.org/ Or through the download link at the SCons project page at SourceForge: http://sourceforge.net/projects/scons/ RPM and Debian packages and a Win32 installer are all available, in addition to the traditional .tar.gz and .zip files. WHAT'S NEW IN THIS RELEASE? IMPORTANT: Release 0.11 contains the following interface changes: - The default suffix for static object files when using gcc has been changed to ".os" to allow shared and static object files to exist side-by-side in the same directory. - When no command-line targets are specified, the default behavior is now to build all derived files in or below the current directory (like Make). This can be disabled by explicitly specifying "Default(None)" in an SConscript file. - Setting the BUILDERS construction variable now clears previous Builder attributes from the construction Environment. - An "env" argument has been added to the strfunction() method of Python function Actions. See the release notes for more information about these changes. This release adds the following features: - A new CacheDir() function and related command-line options --cache-disable, --cache-force and --cache-show support the ability to share derived files between builds. - Support for the IRIX platform and SGI MIPSPro tool chain. - Support for the PharLap ETS tool chain. - Support for compiling with Microsoft VC++ when running Cygwin Python. - New AddPreAction() and AddPostAction() functions. - Python function Actions can now include the contents of construction variables in their signatures. - A new strfunction() method has been added for external command Actions. - The SConscript() function now takes optional "build_dir" and "duplicate" keyword arguments that make it easier to set up a build directory. - The same Win32 object files can now be linked into either shared or static libraries. The following fixes have been added: - Fixed many (not all) situations when interrupts (CTRL-C) wouldn't actually stop a build. - Libraries in the LIBS construction variable can now explicitly include a library prefix and suffix. - The Win32 scons.bat script now has DOS-standard CR-LF line endings. - Fixed how the Environment.Append() method works BUILDERS (and other dictionaries). - Fixed how a file prefix is added when the target isn't specified. - Better error messages whene a BuildDir is read-only. - A platform or tool module can now be directly imported even after it's been included in a construction Environment. - The output of -c -n is now correct when a target is a directory. Performance has been improved as follows: - Added support for caching values when use --implicit-cache. The following changes have been made to the SCons packaging: - Added new --standard-lib, --standalone-lib and --version-lib options to the "setup.py install" command to make it easier to install the SCons build engine (library) into different locations. If no explicit library installation location is specified, the SCons "setup.py" script now looks for an existing SCons build engine in these three locations and prefers where the build engine was installed previously. The documentation has been improved: - Eliminated description of some deprecated keywords. - Updated description of BuildDir() to try to explain more clearly how to set up a build directory. ABOUT SCONS Distinctive features of SCons include: - a global view of all dependencies; no multiple passes to get everything built properly - configuration files are Python scripts, allowing the full use of a real scripting language to solve difficult build problems - a modular architecture allows the SCons Build Engine to be embedded in other Python software - the ability to scan files for implicit dependencies (#include files); - improved parallel build (-j) support that provides consistent build speedup regardless of source tree layout - use of MD5 signatures to decide if a file has really changed; no need to "touch" files to fool make that something is up-to-date - easily extensible through user-defined Builder and Scanner objects - build actions can be Python code, as well as external commands An scons-users mailing list is available for those interested in getting started using SCons. You can subscribe at: http://lists.sourceforge.net/lists/listinfo/scons-users Alternatively, we invite you to subscribe to the low-volume scons-announce mailing list to receive notification when new versions of SCons become available: http://lists.sourceforge.net/lists/listinfo/scons-announce ACKNOWLEDGEMENTS Special thanks to Chad Austin, Michael Cook, Charles Crain, Steve Leblanc and Anthony Roach for their contributions to this release. On behalf of the SCons team, --SK From gerhard.haering@gmx.de Tue Feb 11 14:16:23 2003 From: gerhard.haering@gmx.de (Gerhard =?iso-8859-1?Q?H=E4ring?=) Date: Tue, 11 Feb 2003 15:16:23 +0100 Subject: PySQLite 0.4.0 released Message-ID: NAME: PySQLite - Extension module for SQLite databases. DESCRIPTION: A Python-DB API 2.0 compliant extension module that uses the SQLite embedded SQL database. No external SQL server required. Think of Gadfly, only faster. SQLite is a powerful, embedded relational database in a compact C library. It supports a large subset of SQL92, multiple tables and indices, transactions, and triggers. Sources are uncopyrighted and can be used for any purpose. More information can be found at . HOMEPAGE: DOWNLOAD: Source and Windows binary downloads are available at AUTHORS: Gerhard Häring Michael Owens LICENSE: Python NOTES: The following are changes and enhancements since the last release: IMPORTANT BACKWARDS INCOMPATIBLE CHANGE: ======================================== SQLite is typeless, that's why we had the special command "pysqlite_pragma expected types = type1, type2, ..., typen" which was parsed in the Python layer. Of course, this isn't standard SQL so such code isn't portable to other DB-API modules. That's why I changed this mechanism. The new syntax is -- types = type1, type2, ..., typen Which is just a special SQL comment that other database backends will cheerfully ignore. On the Python side of things, Connection has now an attribute 'rowclass' that is set to PgResultSet by default. This attribute is written in every new cursor instance. rowclass == tuple is handled differently - nothing needs to be done because the C layer already returns tuples. So with con.rowclass = tuple you'll get a noticeable speed boost :-) The tuple thing doesn't handle Python 2.1 yet, but I wonder if we should just discontinue support for anything older than 2.2 in the first place. NOT SO IMPORTANT CHANGES (FOR THE END USER) =========================================== Lots of little changes, like Python 2.3 compatibility, fixes for the Debian control files. The type conversions and converters were moved from the Python layer into the C layer. This was done so this is happening at *one* place. - Moved exceptions from pysqlite_exceptions.py to _sqlite.c. - Moved type codes from sqlite/constants/FIELD_TYPE.py to _sqlite.c - Trimmed available type codes. - Require SQLite version 2.5.6 or later. - Always use "pragma show_datatypes=on" - Made the type conversion actually work and fixed a potential strcpy-related buffer overrun. - In cursor.description, set all fields to None where we don't know anything about (as the DB-API specification tells). - Fixed sqlite_is_at_least_version. - Renamed '_sqlite.enable_userfunction_debugging' to '_sqlite.enable_callback_debugging', because it is now also usable for busy callbacks. - Make process_record cope with empty data. This occurs when PRAGMA EMPTY_RESULT_CALLBACKS=ON was set by the user. - Wrap sqlite_busy_handler and sqlite_busy_timeout. From barry@zope.com Tue Feb 11 20:20:00 2003 From: barry@zope.com (Barry A. Warsaw) Date: Tue, 11 Feb 2003 15:20:00 -0500 Subject: ZODB3 3.1.1 final Message-ID: We've made the final release of ZODB 3.1.1 available, including ZEO 2.0.2. This release corresponds to the version of ZODB in Zope 2.6.1 which was also recently released. There's not much different from ZODB 3.1.1beta2, except for an updated tool. ZODB is the Zope Object Database, a system for providing transparent persistence for Python objects in a transactional framework. For more information, including links to download, please see: http://www.zope.org/Products/ZODB3.1 See also the ZODB wiki page for all things ZODB: http://www.zope.org/Wikis/ZODB Thanks go to Tim for building and testing the Windows installer for Python 2.1 and 2.2. There is also a distutils source tarball for building on *nix systems. Enjoy, -Barry, Jeremy, and Tim From wesc@fuzzyorange.com Wed Feb 12 00:26:14 2003 From: wesc@fuzzyorange.com (Wesley Chun) Date: Tue, 11 Feb 2003 16:26:14 -0800 (PST) Subject: ANN: BayPIGgies mtg Wed Feb 12 7:30pm In-Reply-To: Message-ID: BayPIGgies: Silicon Valley-San Francisco Bay Area Python Users Group When: February 12, 2002 @ 7:30pm Where: Stanford University, Palo Alto, CA Agenda: Python, threads, e-mail, HTTP, spam :-) Speaker: Dennis Reinhardt "Python technology in a threaded internet application" The Python technology underpinning a new spam management program is described. The program uses Python threading with independent threads of control for acquiring POP3 email, delivering that email to client, and for user control via integrated http server. Threads are spawned dynamically. Most of the code is written at the socket level. The approach taken to allow an embedded single executable install and live update will be described. # Call For Talks: We are actively seeking speakers for BayPIGgies! If you would like to give a talk at one of our 2003 meetings (any Python related topic), contact us to coordinate! more info including directions: http://www.baypiggies.net hope 2 c u tomorrow nite! -wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall PTR, =A9 2001 http://starship.python.net/crew/wesc/cpp/ Silicon Valley-San Francisco Bay Area Python Users Group (BayPIGgies) http://baypiggies.net wesley.j.chun :: wesc at deirdre.org or wesc at fuzzyorange.com cyberweb.consulting : henderson, nv : cyberweb at rocketmail.com http://www.roadkill.com/~wesc/cyberweb/ From brad@bbnet.ca Wed Feb 12 23:41:57 2003 From: brad@bbnet.ca (Brad Bollenbach) Date: Wed, 12 Feb 2003 17:41:57 -0600 Subject: ANNOUNCE: The Winnipeg Python User Group (reborn!) Message-ID: Good news for Python Geeks in Central Canada; the Winnipeg Python User Group (WPUG) is officially born (again!). Anyone with an interest in Python in Winnipeg or anywhere around Central Canada is encouraged to join! More info can be found at: http://www.bbnet.ca/wpug The first meeting is scheduled to take place February 27 (location to be agreed upon by the participants). Hosting for the official WPUG homepage will be provided by BBnet.ca. ** Please note that I don't currently read c.l.p very often so please reply directly to me via email. -- Brad Bollenbach Software Engineer BBnet.ca From mary-python@puzzling.org Wed Feb 12 23:50:38 2003 From: mary-python@puzzling.org (Mary Gardiner) Date: Thu, 13 Feb 2003 10:50:38 +1100 Subject: Sydney Australia: Python Interest Group - Monday 17th February 2002 Message-ID: Hi everyone, The Sydney Python Interest Group is on this Monday. Andrew Bennetts: Twisted Programming Date: Monday February 17th Time: 7:00pm Location: University of Technology, Sydney (UTS) Broadway campus, building 10, room 2.440 (computer lab, on the entrance level). -Mary ---- Sydney Python Interest Group meetins are announced on: * comp.lang.python.announce and python-announce-list@python.org[0] * the Australasian Python users list[1] * The Sydney Linux User's Group announce list[2] [0] http://mail.python.org/mailman/listinfo/python-announce-list [1] http://starship.python.net/mailman/listinfo/python-au [2] http://lists.slug.org.au/listinfo/announce/ ---- The Sydney Python Interest Group is, while not restricted to Python on Linux, a Special Interest Group of the Sydney Linux Users Group (SLUG), and would like to thank SLUG for its support. See the PIG webpage: http://pig.slug.org.au/ for previous talks. From abpillai@lycos.com Thu Feb 13 10:50:06 2003 From: abpillai@lycos.com (Anand B Pillai) Date: 13 Feb 2003 02:50:06 -0800 Subject: pyText2Pdf V 1.0 released Message-ID: pyText2Pdf version 1.0, a free python port of the text2pdf utility by Phil Smith released. Goto URL : http://members.fortunecity.com/anandpillai/ Thanks Anand Pillai From abpillai@lycos.com Thu Feb 13 10:56:42 2003 From: abpillai@lycos.com (Anand B Pillai) Date: 13 Feb 2003 02:56:42 -0800 Subject: PyWiew 1.0 Message-ID: PyWiew, imageviewer using python/wxPython and incorporating PIL, version 1.0 released. URL---> http://members.fortunecity.com/anandpillai Thanks, Anand Pillai From uche.ogbuji@fourthought.com Thu Feb 13 16:02:50 2003 From: uche.ogbuji@fourthought.com (Uche Ogbuji) Date: Thu, 13 Feb 2003 09:02:50 -0700 Subject: Article: Simple XML Processing With elementtree Message-ID: http://www.xml.com/pub/a/2003/02/12/py-xml.html "Uche Ogbuji introduces elementtree, a pythonic way of processing XML." -- Uche Ogbuji Fourthought, Inc. http://uche.ogbuji.net http://4Suite.org http://fourthought.com The open office file format - http://www-106.ibm.com/developerworks/xml/library/x-think15/ 4Suite Repository Features - https://www6.software.ibm.com/reg/devworks/dw-x4suite5-i/ XML class warfare - http://www.adtmag.com/article.asp?id=6965 See you at XML Web Services One - http://www.xmlconference.com/santaclara/ From peter@engcorp.com Fri Feb 14 14:26:42 2003 From: peter@engcorp.com (Peter Hansen) Date: Fri, 14 Feb 2003 09:26:42 -0500 Subject: Toronto-area Python/Zope user group will meet Tues. Feb. 18 Message-ID: We're pleased to announce that the next meeting of PyGTA, the Toronto-area Python and Zope user group, will be on Tuesday February 18. It will be held at the 519 Church St. Community Centre, near Wellesley, from 8 to 10 p.m. This is the same building as last time but this time we'll be in the auditorium. Please visit http://web.engcorp.com/pygta/wiki/NextMeeting for other details of the meeting. As usual we're extending an invitation to you to come and present for 5-10 minutes on your own Python activity if you believe it will be of interest to others... just let us know ahead of time so we can leave time for it. If you don't get this message through email, you must not be on our announcement mailing list. Please visit the wiki to learn how to subscribe to it or to the general discussion list. -Ian Garmaise and Peter Hansen, PyGTA organizers From wichert@wiggy.net Fri Feb 14 17:54:10 2003 From: wichert@wiggy.net (Wichert Akkerman) Date: Fri, 14 Feb 2003 18:54:10 +0100 Subject: pyrad 0.5 - native python RADIUS implementation Message-ID: pyrad is an implementation of a RADIUS client and server as described in RFC2865, 2866, and others. It takes care of all the details like building RADIUS packets, sending and receiving them, and en-/decoding responses. (RADIUS is a common protocol used for authentication, authorisation and accounting for remote access (and similar) services). This release features more work related to handling of accounting packets and introduces a new modules which allows one to use pyrad within twisted. Changes since previous release ------------------------------ * Fix typo in server class which broke handling of accounting packets * Create seperate AuthPacket and AcctPacket classes; this resulted in a fair number of API changes * Packets now know how to create and verify replies * Client now directs authentication and accounting packets to the correct port on the server * Add twisted support via the new curved module * Fix incorrect exception handling in client code * Update example server to handle accounting packets * Add example for sending account packets Example ------- Here is an example of a client doing authentication request: import pyrad.packet from pyrad.client import Client from pyrad.dictionary import Dictionary srv=Client(server="radius.my.domain", secret="s3cr3t", dict=Dictionary("dicts/dictionary", "dictionary.acc")) req=srv.CreateAuthPacket(code=pyrad.packet.AccessRequest, User_Name="wichert", NAS_Identifier="localhost") req["User-Password"]=req.PwCrypt("password") reply=srv.SendPacket(req) if reply.code==pyrad.packet.AccessAccept: print "access accepted" else: print "access denied" print "Attributes returned by server:" for i in reply.keys(): print "%s: %s" % (i, reply[i]) And an example for a trivial RADIUS server: from pyrad import dictionary, packet, server class FakeServer(server.Server): def _HandleAuthPacket(self, fd, pkt): server.Server._HandleAuthPacket(self, fd, pkt) reply=self.CreateReplyPacket(pkt) reply.code=packet.AccessAccept self.SendReplyPacket(fd, reply) srv=FakeServer(dict=dictionary.Dictionary("dictionary")) srv.hosts["127.0.0.1"]=server.RemoteHost("127.0.0.1", "s3cr3t", "localhost") srv.BindToAddress("") srv.Run() Requirements ------------ pyrad requires Python 2.0 or later. Author, copyright, availability ------------------------------- pyrad was written by Wichert Akkerman The current version and documentation can be found at its homepage: http://www.wiggy.net/code/pyrad.xhtml Copyright 2002,2003 Wichert Akkerman. All rights reserved. pyrad is distributed under the BSD license. Please see the source archive for the full license text. -- Wichert Akkerman http://www.wiggy.net/ A random hacker From jeremy@alum.mit.edu Fri Feb 14 20:47:05 2003 From: jeremy@alum.mit.edu (Jeremy Hylton) Date: 14 Feb 2003 15:47:05 -0500 Subject: PyCon DC 2003 Sprints Message-ID: PyCon DC 2003 Sprints: Call for Participation http://www.python.org/cgi-bin/moinmoin/SprintPlan We are seeking coaches and participants for the sprint sessions preceding PyCon DC. A sprint is a two or three day focused development session, in which developers pair in a room and focus on building a particular subsystem. A sprint is organized with a coach leading the session. The coach sets the agenda, tracks activities, and keeps the development moving. The developers work in pairs using extreme programming's pair programming approach. The sprint approach works best when the first few hours are spent getting oriented -- presenting a tutorial for the development material, laying out the stories to tackle for the day, getting everyone a CVS checkout to work with. We need coaches to develop a sprint topic, lead the development effort, and help with the logistics of matching participants with sessions. In a successful sprint, the coach usually spends a lot of time helping others and little or no time doing development. What makes a good sprint topic? It must be possible to make real progress with just a day's effort. It would be good to make small enhancements to existing projects, finish off ongoing development on some project, or work on a new library that you'd like to contribute to the standard library. It probably doesn't make sense to sprint on a project that is brand new; you'd be better off sitting in a coffee shop talking. We're looking for topics that would hold the interest of 6-12 developers for a day or two. If you would like to coach a sprint, please send mail to jeremy@alum.mit.edu. We would like to finalize the sprint topics next week, so get in touch as soon as possible. We already have two sprint sessions planned. Chris Armstrong will be coaching a Twisted sprint, and Jim Fulton will be coaching a Zope sprint. People who want to participate in the sprints, but not coach, should make arrangements with a specific coach. The coaches will help me allocate the space fairly among the different topics. Space may be limited, so we would prefer to have people make plans to attend a specific sprint in advance. If you want to come, but don't know what session to attend at your name to the Wiki so that we can match you up with a sprint. The cost for attending the sprint sessions will be $25/day. That amount will cover the cost of the sprint rooms and electrical and network infrastructure. We don't expect to provide meals, but there is a cafeteria in the building. Jeremy Hylton PyConDC sprint chair From gerald@vamphq.com Sun Feb 16 14:59:29 2003 From: gerald@vamphq.com (Gerald Bauer) Date: 16 Feb 2003 06:59:29 -0800 Subject: Python: Scripting Power for Java: Talks Slides Online Message-ID: My slides (40+) for last week's JUG Austria Python talk entitled "Python: Scripting Power for Java: Do More With Less (Lines of Code)" are now online in an all-in-one HTML page (aka papyrus edition) at http://luxor-xul.sourceforge.net/talk/jug-feb-2003/slides.html Here's the talk's agenda: * Why Python? One Language Can't Do It All * Python Panorama - Servus Austria * Python History - Guido Who? * Python Goodies Missing in Java * Python In A Rice Corn * Alternative Scripting Languages in 100 % Java * Jelly: Something Completly Different * Python Books and Links Enjoy. - Gerald From itamar@itamarst.org Sun Feb 16 20:21:35 2003 From: itamar@itamarst.org (Itamar Shtull-Trauring) Date: Sun, 16 Feb 2003 15:21:35 -0500 Subject: ANN: Twisted 1.0.3, the framework of your internet Message-ID: Twisted is an event-driven networking framework for server and client applications. More detailed information can be found after the "What's New" section. For more information, visit http://www.twistedmatrix.com, join the list http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python or visit us on #twisted at irc.freenode.net. What's New in 1.0.3 =================== - Refactored Lore documentation generator - Improvements to the instant messaging package - Generic listener and connector support in the reactor - PyUI event loop integration - Many bug fixes, documentation improvements, and small feature enhancements What is Twisted? ================ Twisted is an event-driven framework for building networked clients and servers. It contains a powerful and simple networking core, a full-featured suite of interoperable protocols, among them a powerful web server and applications framework. Twisted supports many event loops for both server apps and GUI integration on the client side, including: - Win32 events, including GUI support - GTK+ - GTK+ 2 - Qt - wxPython - Tkinter - Java Twisted can run protocols over TCP, SSL, UDP, multicast, Unix sockets and subprocesses. It also includes scheduling support, threading integration, RDBMS event loop integration and other basic requirements for networked applications. Also included are implementations of many protocols. In some cases this includes complete frameworks providing facilities on top of the base protocol: - SSH - FTP - HTTP, including a complete web framework - XML-RPC - SOAP server framework - NNTP and complete NNTP server framework - SOCKSv4 (server only) - SMTP - IRC - telnet - POP3 - AOL's instant messaging TOC - OSCAR, used by AOL-IM as well as ICQ (client only) - DNS - MouseMan serial mice, and GPS devices - Twisted Perspective Broker, a remote object protocol From jjl@pobox.com Mon Feb 17 14:06:40 2003 From: jjl@pobox.com (John J Lee) Date: Mon, 17 Feb 2003 14:06:40 +0000 Subject: RELEASE: ClientCookie 0.3.1b Message-ID: http://wwwsearch.sourceforge.net/ClientCookie/ Changes since 0.3.0b: * Fixed many bugs, some important. Requires Python >= 1.5.2. urllib2 is recommended. 1.5.2-compatible urllib2 / urllib is at http://wwwsearch.sourceforge.net/ ClientCookie is a Python module for handling HTTP cookies on the client side, useful for accessing web sites that require cookies to be set and then returned later. It also provides some other (optional) useful stuff: HTTP-EQUIV handling, zero-time Refresh handling, and lazily-seekable responses. It has developed from a port of Gisle Aas' Perl module HTTP::Cookies, from the libwww-perl library. import ClientCookie response = ClientCookie.urlopen("http://foo.bar.com/") This function behaves identically to urllib2.urlopen, except that it deals with cookies automatically. That's probably all you need to know. John From tundra@tundraware.com Mon Feb 17 21:40:10 2003 From: tundra@tundraware.com (Tim Daneliuk) Date: 17 Feb 2003 21:40:10 GMT Subject: [ANN]: twander 3.0 Released And Available Message-ID: 'twander' Version 3.0 is now released and available for download at: http://www.tundraware.com/Software/twander The last public release was 2.34. Existing users should upgrade immediately as this release contains substantial bug fixes and many new features. What Is 'twander'? ------------------ 'twander' is a macro-programmable Filesystem Browser which runs on both Unix-like systems as well as Win32 systems. It embraces the best ideas of both similar GUI-driven programs (Konqueror, Windows Explorer) as well as text-based interfaces (Midnight Commander, List, Sweep). Or, If You Prefer The "Elevator Pitch" -------------------------------------- 'twander' is: - A better file browser for Unix and Win32. (Developed on FreeBSD.) - A way to make browsing the same on all the OSs you use. - A macro-programmable tool that lets *you* define the features. - A GUI navigation front-end for your shell. - A way to "can" workflows for your technically-challenged colleagues. - A way to free yourself from the shackles of the mouse. - A way to significantly speed up your day-to-day workflow. - A Python/Tkinter application - about 2500 lines of code + 1000 comment lines. - A RCT (Really Cool Tool) that will have you addicted in a day or two See the web page for more information and a screen shot. Better still, download the tarball and read the documentation. ------------------------------------------------------------------------------ Tim Daneliuk tundra@tundraware.com From jason@jorendorff.com Tue Feb 18 01:00:43 2003 From: jason@jorendorff.com (Jason Orendorff) Date: 17 Feb 2003 17:00:43 -0800 Subject: ANN: path module 1.1.3 Message-ID: path.py provides an object for working with files and directories. Less typing than os.path, more fun, a few new tricks. Download path.py version 1.1.3: http://www.jorendorff.com/articles/python/path New features since version 1.0: - Wraps more functions from os.path. - Now wraps functionality from the os module: rename(), mkdir(), stat(), and so on. - Also wraps glob and shutil modules. Methods include glob(), copy(), copytree(), rmtree(), etc. - New convenience methods: p.files() and p.dirs() for listing directory contents. p.bytes(), p.text(), p.lines() for reading in whole files with a single method call. p.touch() imitates the Unix 'touch' command. - Bug fixes; test suite. Quick example: import os from path import path home = path(os.environ['HOME']) for f in home.walkfiles(): if f.endswith('~'): f.remove() Please send feedback to jason at jorendorff dot com.

path 1.1.3 - Python path module, a convenient object for working with files and directories. From edream@tds.net Tue Feb 18 01:29:06 2003 From: edream@tds.net (Edward K. Ream) Date: Tue, 18 Feb 2003 01:29:06 GMT Subject: ANN: Leo 3.11b1 outlining editor Message-ID: leo.py 3.11 beta 1 is now available at: http://sourceforge.net/projects/leo/ leo.py requires Python 2.1 or above and tcl/tk 8.3 or above. The highlights of 3.11: ----------------------- ** Leo finally supports unicode properly. This solves a lot of problems. - New @encoding directives specifies encoding for derived files. - New settings specify default encodings for .leo and derived files. - Derived files specify encodings used to create them. ** A new plugin architecture for customizing Leo. (A major improvement.) - New commands: - Toggle Angle Brackets. - Insert Time/Date (in headline or body text). - Go To First/Last Node, Parent, Next/Previous Sibling. - Write Missing @file Nodes. - Expand/Contract Node. - Improved commands: - Expand/Contract commands now operate on the selected tree. ( A major improvement) - Sort Siblings command can now sort top-level nodes. - Leo now allows multiple writes of cloned nodes. (Useful when different @path directives are in effect.) - Other improvements: - Improved syntax coloring for html and xml. - Leo scrolls partially visible headlines into full view. - Added "Replace tabs with spaces" checkbox in Prefs panel. - Added install script for Linux. - New settings in leoConfig.leo/.txt. - Colors for Show Invisibles command and body_insertion_cursor - Settings affecting when control-drags start. - Defaults for unicode (see above). - Many other bug fixes and improvements. Quote of the month ------------------ I only have one week of Leo experience but I already know it will be my default IDE/project manager. I have seen several old threads on c.l.python where people complain about the lack of a project manager for the free/standard Python IDE's like Idle. Leo clearly solves that problem and in a way that commercial tools can't touch -- Marshall Parsons What is Leo? ------------ - A programmer's editor, an outlining editor and a flexible browser. - A literate programming tool, compatible with noweb and CWEB. - A data organizer and project manager. Leo provides multiple views of projects within a single outline. - Fully scriptable using Python. Leo saves its files in XML format. - Portable. leo.py is 100% pure Python. - Open Software, distributed under the Python License. Links: ------ Leo: http://personalpages.tds.net/~edream/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://sourceforge.net/cvs/?group_id=3458 Edward -------------------------------------------------------------------- Edward K. Ream email: edream@tds.net Leo: Literate Editor with Outlines Leo: http://personalpages.tds.net/~edream/front.html -------------------------------------------------------------------- From djc@object-craft.com.au Tue Feb 18 04:47:17 2003 From: djc@object-craft.com.au (Dave Cole) Date: 18 Feb 2003 15:47:17 +1100 Subject: Sybase module 0.36pre4 released Message-ID: WHAT IS IT: The Sybase module provides a Python interface to the Sybase relational database system. It supports all of the Python Database API, version 2.0 with extensions. NOTES: This is another incremental improvement to FreeTDS support. You can build for FreeTDS like this: python setup.py build_ext -D HAVE_FREETDS -U WANT_BULKCOPY python setup.py install The module is available here: http://www.object-craft.com.au/projects/sybase/download/sybase-0.36pre4.tar.gz The module home page is here: http://www.object-craft.com.au/projects/sybase/ CHANGES SINCE 0.36pre3: * Fixed cursor locking bug with .nextset() method. * Added .debug_msg() method to context type which writes to the debug log when debugging is enabled for the context object. * Merged AIX build changes from Dietmar Rothkamp. * Now compiles with FreeTDS 0.61. * Limit size of TEXT fields to 65536. CHANGES SINCE 0.35 * Removed references to CS_PENDING and CS_BUSY in Sybase.py. * Bind CS_VARBINARY_TYPE as CS_BINARY_TYPE. * Do not attempt to ct_cancel() when handling an exception if have not connected to the server. Bug fix in Sybase.py. * Seems like FreeTDS reports the wrong maxlength in ct_describe() for CS_NUMERIC_TYPE and CS_DECIMAL_TYPE. Ignore FreeTDS and assume a maxlength of sizeof(CS_NUMERIC). Bugfix in databuf.c. * Use correct T_STRING_INPLACE type in structure member descriptions. The code does not use Python API for these members. * Debug output for DataFmt now includes scale and precision. * More definitions added to freetds.h; CS_SRC_VALUE, CS_CLEAR. -- http://www.object-craft.com.au From brian@zope.com Wed Feb 19 03:44:16 2003 From: brian@zope.com (Brian Lloyd) Date: Tue, 18 Feb 2003 22:44:16 -0500 Subject: Python Scripting for .NET Message-ID: For those interested in .NET integration - I've finally been able to post an initial (experimental) version of Python Scripting for .NET: http://www.zope.org/Members/Brian/PythonNet/index_html Python Scripting for .NET is an integration of the CPython runtime with the .NET CLR. For more info, see the FAQ: http://www.zope.org/Members/Brian/PythonNet/FAQ.html Brian Lloyd brian@zope.com V.P. Engineering 540.361.1716 Zope Corporation http://www.zope.com From guido@python.org Thu Feb 20 01:19:01 2003 From: guido@python.org (Guido van Rossum) Date: Wed, 19 Feb 2003 20:19:01 -0500 Subject: RELEASED: Python 2.3a2 Message-ID: Python 2.3a2 is the second (and likely last) alpha release of Python 2.3. Much improved since the first alpha, chockfull of things you'd like to check out: http://www.python.org/2.3/ Some highlights of what's new since 2.3a1: - fixed mishandling of negated hex/oct literals (PEP 237) - a new, more efficient pickling protocol (PEP 307) - functions have a __module__ attribute - new module itertools: efficient looping constructs - many improvements to the new datetime module New since Python 2.2: - Many new and improved library modules, e.g. sets, heapq, datetime, textwrap, optparse, logging, bsddb, bz2, tarfile, ossaudiodev, and a new random number generator based on the highly acclaimed Mersenne Twister algorithm (with a period of 2**19937-1!). - New builtin enumerate(): an iterator yielding (index, item) pairs. - Extended slices, e.g. "hello"[::-1] returns "olleh". - Universal newlines mode for reading files (converts \r, \n and \r\n all into \n). - Source code encoding declarations. (PEP 263) - Import from zip files. (PEP 273 and PEP 302) - FutureWarning issued for "unsigned" operations on ints. (PEP 237) - Faster list.sort() is now stable. - Unicode filenames on Windows. - Karatsuba long multiplication (running time O(N**1.58) instead of O(N**2)). We request widespread testing of this release but don't recommend using it for production situations. Alpha releases contain bugs; in addition, new APIs are not yet considered stable and may change until the first beta release. If you have an important Python application, we strongly recommend that you try it out with an alpha release and report any incompatibilities or other problems you may encounter, so that they can be fixed before the final release. To report problems, use the SourceForge bug tracker: http://sourceforge.net/tracker/?group_id=5470&atid=105470 Enjoy! --Guido van Rossum (home page: http://www.python.org/~guido/) From stuff@nonpoint.mailzilla.net Wed Feb 19 19:52:09 2003 From: stuff@nonpoint.mailzilla.net (Phil) Date: 19 Feb 2003 11:52:09 -0800 Subject: Kodos 0.8 - a Regular Expression GUI tool Message-ID: Kodos 0.8 has been released. Kodos is a Python GUI for creating, testing and debugging regular expressions for the Python programming language. More information, documentation and screenshots are available here: http://kodos.sourceforge.net/ Kodos can be downloaded from it's Sourceforge project page: https://sourceforge.net/projects/kodos/ From nieder@mail.ru Wed Feb 19 22:50:57 2003 From: nieder@mail.ru (Ricardo Niederberger Cabral) Date: Wed, 19 Feb 2003 19:50:57 -0300 Subject: [ANN] imgSeek 0.6.4 Message-ID: imgSeek ------- imgSeek is a photo collection manager and viewer with content-based search and many other features. The query is expressed either as a rough sketch painted by the user or as another image you supply (or an image in your collection). You may also do slideshows, generate web photo albums, edit image metadata including EXIF and IPTC data, organize images into a keyword hierarchy, and more. Changes ------- This release comes with a lots of bug fixes, new Image Transform dialog, more than 80 image formats supported, speed improvements, a new command line utility, IPTC metadata extraction, better drag&drop support, improved slideshow and much more. Please check the complete ChangeLog. Requires -------- - Python 2.2.x, QT 3.x and PyQT 3.5. (3.4 should work) - ImageMagick development files or QT development files. Recommended: - Python Imaging Library. Links ----- Download: http://prdownloads.sourceforge.net/imgseek/imgSeek-0.6.4.tar.gz?download Homepage: http://imgseek.sourceforge.net/ Screenshots: http://imgseek.sourceforge.net/sshot/ Complete ChangeLog: http://imgseek.sourceforge.net/changelog.html Best regards, --- rnc From max@alcyone.com Thu Feb 20 13:13:50 2003 From: max@alcyone.com (Erik Max Francis) Date: Thu, 20 Feb 2003 05:13:50 -0800 Subject: ANN: EmPy version 2.3 -- A templating system in Python Message-ID: Summary A templating system for Python. Overview EmPy is a system for embedding Python expressions and statements in template text; it takes an EmPy source file, processes it, and produces output. This is accomplished via expansions, which are special signals to the EmPy system and are set off by a special prefix (by default the at sign, '@'). EmPy can expand arbitrary Python expressions and statements in this way, as well as a variety of special forms. Textual data not explicitly delimited in this way is sent unaffected to the output, allowing Python to be used in effect as a markup language. Also supported are "hook" callbacks, recording and playback via diversions, and dynamic, chainable filters. The system is highly configurable via command line options and embedded commands. Expressions are embedded in text with the '@(...)' notation; variations include conditional expressions with '@(...?...:...)' and the ability to handle thrown exceptions with '@(...$...)'. As a shortcut, simple variables and expressions can be abbreviated as '@variable', '@object.attribute', '@function(arguments)', '@sequence[index]', and combinations. Full-fledged statements are embedded with '@{...}'. Forms of conditional, repeated, and recallable expansion are available via '@[...]'. A '@' followed by a whitespace character (including a newline) expands to nothing, allowing string concatenations and line continuations. Comments are indicated with '@#' and consume the rest of the line, up to and including the trailing newline. '@%' indicate "significators," which are special forms of variable assignment intended to specify per-file identification information in a format which is easy to parse externally. Escape sequences analogous to those in C can be specified with '@\...', and finally a '@@' sequence expands to a single literal at sign. Getting the software The current version of empy is 2.3. The latest version of the software is available in a tarball here: http://www.alcyone.com/pyos/empy/empy-latest.tar.gz. The official URL for this Web site is http://www.alcyone.com/pyos/empy/. Requirements EmPy should work with any version of Python from 1.5.x onward. It has been tested with all major versions of CPython from 1.5 up, and Jython from 2.0 up. The included test script is intended to run on UNIX-like systems with a Bourne shell. License This code is released under the GPL. Mailing lists There are two EmPy related mailing lists available. The first is a receive-only, very low volume list for important announcements (including releases). To subscribe, send an email to mailto:empy-announce-list-subscribe@alcyone.com. The second is a general discussion list for topics related to EmPy, and is open for everyone to contribute; announcements related to EmPy will also be made on this list. The author of EmPy (and any future developers) will also be on the list, so it can be used not only to discuss EmPy features with other users, but also to ask questions of the author(s). To subscribe, send an email to mailto:empy-list-subscribe@alcyone.com. ... Release history [since 2.2] - 2.3; 2003 Feb 20. Proper and full support for concurrent and recursive interpreters; protection from closing the true stdout file object; detect edge cases of interpreter globals or 'sys.stdout' proxy collisions; add globals manipulation functions 'empy.getGlobals', 'empy.setGlobals', and 'empy.updateGlobals' which properly preserve the 'empy' pseudomodule; separate usage info out into easily accessible lists for easier presentation; have -h option show simple usage and -H show extened usage; add 'NullFile' utility class. - 2.2.6; 2003 Jan 30. Fix a bug in the 'Filter.detach' method (which would not normally be called anyway). - 2.2.5; 2003 Jan 9. Strip carriage returns out of executed code blocks for DOS/Windows compatibility. - 2.2.4; 2002 Dec 23. Abstract Filter interface to use methods only; add @[noop: ...] substitution for completeness and block commenting. - 2.2.3; 2002 Dec 16. Support compatibility with Jython by working around a minor difference between CPython and Jython in string splitting. - 2.2.2; 2002 Dec 14. Include better docstrings for pseudomodule functions; segue to a dictionary-based options system for interpreters; add 'empy.clearAllHooks' and 'empy.clearGlobals'; include a short documentation section on embedding interpreters; fix a bug in significator regular expression. - 2.2.1; 2002 Nov 30. Tweak test script to avoid writing unnecessary temporary file; add 'Interpreter.single' method; expose 'evaluate', 'execute', 'substitute', and 'single' methods to the pseudomodule; add (rather obvious) 'EMPY_OPTIONS' environment variable support; add 'empy.enableHooks' and 'empy.disableHooks'; include optimization to transparently disable hooks until they are actually used. -- Erik Max Francis / max@alcyone.com / http://www.alcyone.com/max/ __ San Jose, CA, USA / 37 20 N 121 53 W / &tSftDotIotE / \ It's better to be quotable than to be honest. \__/ Tom Stoppard Crank Dot Net / http://www.crank.net/ Cranks, crackpots, kooks, & loons on the Net. From drifty@bigfoot.com Thu Feb 20 23:57:37 2003 From: drifty@bigfoot.com (Brett C.) Date: 20 Feb 2003 15:57:37 -0800 Subject: python-dev Summary for 2003-02-01 through 2003-02-15 Message-ID: ++++++++++++++++++++++++++++++++++++++++++++++++++++++ python-dev Summary from 2003-02-01 through 2003-02-15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from February 1, 2003 through February 15, 2003. It is intended to inform the wider Python community of on-going developments on the list that might be of interest to them. To comment on anything mentioned here, just post to python-list@python.org or `comp.lang.python`_ with a subject line delineating what you are discussing. All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on something. And if all of this really interests you then get involved and join python-dev! This is the eleventh summary written by Brett Cannon (and still sane even after over 800 emails for this summary). All summaries are archived at http://www.python.org/dev/summary/ . Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sf.net/rst.html . Any unfamiliar punctuation is probably markup for reST_ (else it is probably regular expression syntax); you can safely ignore it (although I suggest learning reST; its simple and is accepted for PEP markup). Also, because of the wonders of programs that like to reformat text, I cannot guarantee you will be able to run the text version of this summary through Docutils_ as-is unless it is from the original text file. .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. contents:: ====================== Summary Announcements ====================== I just realized how much regex syntax I use in the summaries. You might help you read the summaries if you know it. =) I renamed the 'Skipped Threads' section that I introduced in the last section to 'Quickies' since they are not really skipped but are just "quickie" summaries that I don't feel warrant a full-blown summary (or I was just feeling lazy =). ================================== `Acquire/release functionality`__ ================================== __ http://mail.python.org/pipermail/python-dev/2003-February/032752.html Splinter threads: - `Extended Function syntax `__ - `exec/with thunk-handling proposal `__ - `Extended Function syntax (PEP time) `__ - `With statement `__ - `Pre-PEP: with syntax `__ As part of the massive thread that caused some hoopla on the list about how to try to keep info manageable on the list, a suggested syntax for an acquire/release setup came up. It basically defines a way to have a method called before the beginning of the execution of a block of code and then a method to be called when the block is finished. It uses a suggested keyword 'with'. Read `PEP 310`_ for all the details (thanks to Paul Moore and Michael Hudson for writing the PEP; I would have gone insane summarizing this!). .. _PEP 310: http://www.python.org/peps/pep-0310.html ============================= `Extended Function syntax`__ ============================= __ http://mail.python.org/pipermail/python-dev/2003-February/032694.html Splinter threads: - `Property syntax `__ - `question??? `__ Thanks goes to Samuele Pedroni for writing up a technical summary of all of this and sending me a copy. This whole thread started up over a suggested extended synatax for functions:: def fxn(args) [fun1, fun2, ..., funX]: ...code... This was to be equivalent to:: fxn = funX(...(fun2(fun1(fxn)))...) This came up as a way to make it easier for using things such as property(), classmethod(), and staticmethod() since you could define things as:: def fxn(args) [staticmethod]: ...code... A variant on all of this that was proposed was:: def fxn(args) as fun1, fun2, ..., funX: ...code... or:: def fxn(args) is fun1, fun2, ..., funX: ...code... The two proposed syntaxes above were suggested to be made very general so that you could do something like:: def fxn(args) as function: ...code... It would be difficult and kludgy, though, to make the above syntax work for both function and staticmethod. And since this was all about how make using property() easier, property-specific suggestions included: class klass(object): property prup: ...code... or:: class klass(object): def prup as property: ...code... The problem with the former is that it requires turning "property" into a keyword. None of these are PEPs yet nor have had BDFL pronouncement. =========== `thunks`__ =========== __ http://mail.python.org/pipermail/python-dev/2003-February/032828.html Splinter threads: - `Extended Function syntax `__ - `exec/with thunk-handling proposal `__ Thanks to Samuele Pedroni for providing me a technical summary that I was able to use to help write this summary. The concept of adding thunks to Python came up through the extended function syntax thread (in case you don't know what a thunk is, you can think of it as a chunk of code that is compiled and ready to use but is not executed until a later time). Some suggested syntaxes were:: lvalue = thunk(args): ...code... or:: do lvalue = thunk(args): ...code... The lvalues would be optional. Samuele Pedroni suggested of thinking of thunk(args) more like thunk_consumer_maker(args) since the thunk would "be a reification of the ...code... suite, i.e. an object for ...code...". As with the extended function syntax, no PEPs have been done nor any BDFL pronouncements. =========================== `Capabilities in Python`__ =========================== __ http://mail.python.org/pipermail/python-dev/2003-February/032690.html Splinter threads: - `Property Syntax `__ Continuation of `Capabilities in Python`_ from the `last summary`_. After comments were made that the way capabilities were described earlier in the thread were strange, Ben Laurie got to the point and said that if he gets "secure bound methods" he will have what he wants. Going with the ticket analogy that was used earlier, Ben said that he didn't like having an intermediate ticket checker like the proxies used by Zope; the "ticket is the method". Jeremy commented on some of Ben and Ka-Ping Yee's comments. It seems that security code is sprinkled throughout the interpreter; centralizing it would help secure Python. The thread stopped on python-dev (the emails suggested the discussion was taken off-list) with no specific plans on changes. .. _Capabilities in Python: http://www.python.org/dev/summary/2003-01-16_2003-01-31.html#capabilities-in-python .. _last summary: http://www.python.org/dev/summary/2003-01-16_2003-01-31.html ========================== `native code compiler?`__ ========================== __ http://mail.python.org/pipermail/python-dev/2003-February/032780.html Ignoring all the emails that were in direct relation in dealing with the whole mini-flame war that this thread started on, it did lead to a bet between Guido and Dan Sugalski over whether Parrot_ or CPython would run a standard Python benchmark suite the fastest. The stakes are $10, a round of beer for the winning development team, and a pie in the face of the loser. Since python-dev's honor is partially at stake, various ideas came up about how to speed up the core. One idea was to inline built-in functions by giving them their own bytecode. So, for instance, len() might be inlined in bytecode as BUILTIN_LEN instead of having to bother with a function call to the actual len() code in the core. Another suggestion was to continue work on namespace access. These are covered in `PEP 266`_, `PEP 267`_, and `PEP 280`_. Guido also suggested "not to allow binding *new* globals *if* they shadow certain builtins" so as to save on the name lookup. Skip Montanaro mentioned his `peephole optimizer`_. There was also a mention of rattlesnake_; a register-based VM that Skip started and Neil Schemenauer picked up. Taking a fresh look at PyEval_EvalCodeEx_ was also mentioned since a great expense is setting up a function call. .. _Parrot: http://www.parrotcode.org .. _PEP 266: http://www.python.org/peps/pep-0266.html .. _PEP 267: http://www.python.org/peps/pep-0267.html .. _PEP 280: http://www.python.org/peps/pep-0280.html .. _peephole optimizer: http://www.musi-cal.com/~skip/python/spam7/optimizer.html .. _rattlesnake: http://www.musi-cal.com/~skip/python/rattlesnake20010813.tar.gz .. _PyEval_EvalCodeEx: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Python/ceval.c ================= `trying times`__ ================= __ http://mail.python.org/pipermail/python-dev/2003-February/032938.html Splinter threads: - `Why did Fredrik leave the party? `__ - `who uses new language features? `__ - `trying times thunks `__ - `Shame on us all! `__ - `How to troll python-dev `__ - `How to lose potential users/developers `__ During the whole with/do/thunk thread and another thread from a disgruntled person who didn't like how the list responded to his email, Samuele Pedroni let the list know that Fredrik Lundh (a.k.a. effbot) had unsubscribed from python-dev, disillusioned with how things had ended up. There was a suggestion to spin a list off of python-dev that handled "blue-sky" discussions. This was basically killed because most people who would subscribe to the new list would be subscribed to python-dev and thus would basically a moot point. There are two things to be learned from this thread. One is to make sure you change the subject line of an email when you are replying to an email but changing the focus. The other is to make sure not to say anything in an email that comes off as accusatory. One of the reasons this whole email thread turned negative was that a statement made in the initial email was received as condescending and questioning the abilities of python-dev when trying to guess as to why something had not been implemented. It is best to ask why something has not been done then ask and then immediately wager an answer to your own question. ============================= `Fixed-point numeric type`__ ============================= __ http://mail.python.org/pipermail/python-dev/2003-February/032965.html Splinter threads: - `Why did Fredrik leave the party? `__ - `FixedPoint and % specifiers. `__ Michael McLay brought up the point that although FixedPoint had received BDFL pronouncement for inclusion into the stdlib, it still had not happened. It was then pointed out that no one had put the effort into doing the work necessary to make sure that the package was ready to be added. A discussion then started amongst some people about some details of the package. There was a discussion of naming of certain methods and such. One conclusion that was reached before the discussion was taken off-list was that the package's interface should be minimized and kept as simple as possible while still being useful. .. _FixedPoint: http://fixedpoint.sf.net/ ======================================== `Passing floats to "i" parser marker`__ ======================================== __ http://mail.python.org/pipermail/python-dev/2003-February/032969.html MA Lemburg brought up the question of what the ramifications will be with `PyArg_Parse()`_ issuing a DeprecationWarning instead of TypeError when a float is passed as an argument where "i" is used as the argument type. What causes this to not be cut and dry is that floats have an __int__ method that actually loses information so you can't just use int() to do conversions and still have the same value. Guido said that, in hindsight, there should have been a function that converts an int-like objects to real ints and another to convert floats to ints; this separates conversions that might lose information. He also said that eventually "i" will raise a TypeError when less code will be broken by this behavior. The history of how the "i" argument marker was given. Apparently, way back when, someone said that "i" should not only accept true ints as it did in its first incarnation. So having it use __int__ was added. Unfortunately no one realized that float implemented __int__ and obviously floats for things such as indexing are not reasonable. Raising a warning is a step towards eliminating this wart. The acronym YAWTM (You Are Worrying Too Much) and its snarky younger brother YADWTM (You are DEFINITELY Worrying Too Much) were also brought into this world in this thread. .. _PyArg_Parse(): http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Python/getargs.c =================================================================================== `Python 2.3a1's mandatory use of cyclic GC causes existing applications to fail`__ =================================================================================== __ http://mail.python.org/pipermail/python-dev/2003-February/033020.html Splinter threads: - `__slots__ `__ Robert Ledwith wished that Python 2.3 would support the --without-cycle-gc compile option that is scheduled to be eliminated; objects would have a smaller footprint and was faster. The reason the option was removed in the first place was that the code for the trashcan (handles the deallocation of objects) "is nearly obvious when we can rely on gc being there". With GC turned off extension modules cannot use the trashcan without editing the source of Python itself. Christian Tismer (who wrote the trashcan code) said that it could actually choose whether or not to take in an object based on its type. So what could happen is there could be a non-GC type that would cause the object to not even interact the trashcan and thus not complicate the code. The leading idea was to have a nogcobject that acted as the "true" root object which 'object' inheriting from nogcobject while causing GC to be used. It was also pointed out that __slots__ saves a lot of space on objects when used. It was then suggested that you be able to specify the type of each thing in __slots__ since that would save even more space when the type is a simple one. Guido said that it seemed a new name would be needed for this attribute. He also said that the idea allowing you to specify the order of the objects was good. ========================================== `Pre-PEP: Mutable keys in dictionaries`__ ========================================== __ http://mail.python.org/pipermail/python-dev/2003-February/033043.html Just van Rossum posted a rough PEP proposing a new protocol to allow mutable objects as keys in dictionaries. His suggestion was that if an object was mutable the dictionary's __setitem__() would call the key's __immutable_copy__() and use that as the key. The dict's __contains__() would use __temporary_immutable__() from the object (this is needed so as to return something that defines __eq__() and __hash__() in order to be able to do the comparison against other keys). Just claimed that putting this in 'would add no overhead for the "normal" case (when keys _are_ directly hashable)'. The question of whether this would be thread-safe was raised. Just said it would be for Python code thanks "to the wonders of the Global Interpreter Lock". Guido responded that he didn't think implementing this would have no performance hit. If anything, he thought that it "may reduce code locality and hence cause the code to miss the cache more often than before". He suggested just coming up with a subclass of dict that implemented this. That was not an option, though, because the entire reason for this was to make dicts work more easily with PyObjC_ and thus would need to be built in. So Guido ended up asking Just to implement it and benchmark it to see what kind of hit was taken. .. _PyObjC: http://pyobjc.sf.net/ ====================== `Trinary Operators`__ ====================== __ http://mail.python.org/pipermail/python-dev/2003-February/033061.html Splinter threads: - `Quantifiers `__ - `vox populii illiterati `__ - `Vote-Pop `__ - `For review: PEP 308 - If-then-else expression `__ - `PEP 308 `__ - `Update to PEP308: if-then-else expression `__ - `some data on the debate `__ A thread on `comp.lang.python`_ sprung up about adding a ternary operator to Python (yes, the title says "Trinary Operators", but that is apparently not technically correct). In case you are not a C programmer, the ternary operator can be thought of an if/else statement that acts like an expression (it's the ``?:`` syntax from C). Another way of thinking of it is as an if/else statement that is inlined. Guido was sick of this debate coming up, so he wrote `PEP 308`_ on the subject and has left it up to comp.lang.python to argue this one out (he actually explicitly said not to discuss it on python-dev) and decide on the final fate of this idea. If you have an opinion voice it on comp.lang.python since this will also be used as a test to see if more things should be put on c.l.py for discussion instead of python-dev. As of this writing, Samuele Pedroni updated the list on posting stats for those of us who don't follow c.l.py. Two syntactic choices are currently in the running (this is ignoring objections to the whole idea). One is ``if : else: `` and the other is `` ?? || ``. .. _PEP 308: http://www.python.org/peps/pep-0308.html .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python ============================================================ `For review: PEP 307 - Extensions to the pickle protocol`__ ============================================================ __ http://mail.python.org/pipermail/python-dev/2003-February/033182.html Splinter threads: - `pickle me, Elmo? `__ `PEP 307`_ has been unleashed upon the world. Guido and Tim Peters came up with a new pickling protocol (aptly named protocol 2; I am sure it took a lot of Guido's magical pickles to come up with that name). The reason for doing this was to have the pickle for new-style classes not be so immense (this was brought to the forefront by datetime_ and the hell that Tim and Guido went through to get it to pickle reasonably). Everything is backwards compatible since it is a new protocol, so there is no need to panic. Still interesting in terms of what they are doing, though, so you might want to read it. Paul DuBois asked if it would be possible at some point to be able to pickle a class or function definition. Paul was informed that pickling is meant for data only. Jeremy Hylton, though, has managed to pull something like what Paul wants off in Zope 3 by subclassing Pickler and UnPickler from the pickle_ module (so doesn't work with cPickle_). Arne Koewing asked if pickling weak references could be done. Short answer, no. Long answer, not unless you want great pain trying to do implement it. .. _PEP 307: .. _datetime: http://www.python.org/dev/doc/devel/lib/module-datetime.html .. _pickle: http://www.python.org/dev/doc/devel/lib/module-pickle.html .. _cPickle: http://www.python.org/dev/doc/devel/lib/module-cPickle.html ====================== `Unicode filenames`__ ====================== __ http://mail.python.org/pipermail/python-dev/2003-February/033215.html Jack van Rossum was "tempted to set Py_FileSystemDefaultEncoding_ to "utf8" for OSX". He tried it and it works well, but he noticed that os.listdir() returns strings and not Unicode objects. So obviously the question came up as to whether to change this so that it returned Unicode when Py_FileSystemDefaultEncoding_ is set to something that is non-NULL. The issue is round-trip passing of strings. If you get something from os.listdir() you would like to be able to pass to file() with no issues. The question is how to handle this need without breaking backwards-compatibility. .. _Py_FileSystemDefaultEncoding: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Python/bltinmodule.c ============================================ `GadflyDA in core? Or as add-on-product?`__ ============================================ __ http://mail.python.org/pipermail/python-dev/2003-February/033312.html Splinter threads: - `Gadfly in Python core `__ Continuation of `GadflyDA in core?...`_ from the `last summary`_. As was summarized before, there was talk of adding Gadfly_ to the stdlib. Two issues with adding it was its license and having kjbuckets_ as a dependency. The first one was solved when Aaron Watters said he would be happy to transfer the license to the PSF_. The second is currently being worked on. Another issue came up, though. Gadfly is approximately 11,000 lines of Python code (Richard Jones thinks 1,200 lines could be removed by taking out the parser builder). That is an immense chunk of code with no one stepping forward to be the active maintainer of it. Without someone willing to make sure the code does not suffer from bit rot there is a chance Gadfly won't be allowed into the stdlib. If you happen to think you can take on maintenance responsibilities, please step forward and let it be known. .. _GadflyDA in core?...: http://mail.python.org/pipermail/python-dev/2003-January/032295.html .. _Gadfly: http://gadfly.sf.net/ .. _PSF: http://www.python.org/psf/ .. _kjbuckets: http://starship.python.net/crew/aaron_watters/kjbuckets/ ============================================================================= `PEP Draft: Simplified Global Interpreter Lock acquisition for extensions`__ ============================================================================= __ http://mail.python.org/pipermail/python-dev/2003-February/032958.html Splinter threads: - `Change definition of Py_END_ALLOW_THREADS? `__ - `Updated AutoThreadState pre-PEP `__ In an attempt to make it easier for C code to access the GIL in complicated, threaded situations where knowledge about the state of the Python interpreter is limited, Mark Hammond has come up with a new API that is covered in `PEP 311`_. In essence, Mark has come up with a way to allow external C code to get the GIL to do work with Python code in a threaded environment without having to know too much about the status of the interpreter in regards to threading. .. _PEP 311: http://www.python.org/peps/pep-0311.html ================================= `CALL_ATTR, A Method Proposal`__ ================================= __ http://mail.python.org/pipermail/python-dev/2003-February/033410.html Glyph Lefkowitz suggested creating a new bytecode instruction for doing method calls since the current setup takes 3 separate bytecode calls and is about 20% slower than a function call according to Glyph. Guido said he was all for a special bytecode as long as the semantic meaning, in the end, is the same. Skip Montanaro suggested caching the results of getattr(). Guido said it could only work if the getattr() for each object did the caching. Glyph clarified, though, that he was not going after caching but just cutting the bytecode instruction count for a method count down 'to mean "call this method" rather than "get this attribute, call the result"'. ========= Quickies ========= `Python roadmap `__ Roman Suzi asked about the direction of Python. Led to discussion of shadowing built-ins and Neal Norwitz adding a check to PyChecker_ to warn against this. `New version of PEP 304 `__ Single email about `PEP 304`_ and how it might deal with Windows. `disable writing .py[co] `__ Clarifies the misunderstanding of how Python handles writing .py[co] files on read-only filesystems and how PEP 304 will allow you to specify not writing the files. `Anyone willing to look over a zlib fix? `__ Email about a fix for zlib_ when dealing with huge compressed files. `database APIs `__ A question about possible `DB 2.0 API`_ helper functions was brought up and moved to the DB-SIG_. `PEP 42: sizeof(obj) builtin `__ Continuation of a thread from the `last summary`_ that basically said 1) writing sizeof() for Python would be *extremely* difficult, and 2) Java has no API for finding out how much space something takes up. I was going to put in a snide comment here about Java, but I restrained myself; at least Jython makes Java okay. =) `Weekly Python Bug/Patch Summary `__ Lots of bugs, lots of patches, and MvL is on vacation. =) `bsddb3 upgrade woes - more gentle transition? `__ Skip Montanaro pointed out some people have had issues using bsddb3_ because it requires using the newest Sleepycat DB format. Skip scratched his own itch by writing `Tools/scripts/{db2pickle,pickle2db}.py`_. `Atomic operations `__ An idea of having a keyword to shut down threads so as to guarantee code being executed synchronously. Led to a link of an article suggesting having a keyword that delayed the raising of exceptions from signals so as to make sure code finished executing without interruption. `Idea for avoiding exception masking `__ Continuation of a thread summarized in the `last summary`_ about how to handle exceptions that would get masked by other exceptions. `BUILDEXE erroneously empty on 2.2.2 for Mac OS X? `__ Skip Montanaro had problems building on OS X out of the tree on the 2.2 maintenance branch. Appropriate patches were backported and thus the problem was fixed. `Unicode-like objects `__ Just van Rossum asked if there was a way to make an object act like a Unicode object. This turned into the thread `Bridging strings from Python to other languages `__ and how to go possibly make strings from OS X's Cocoa API play nicely with Python strings. `I have something I'd like to use the farm for. `__ Michael Hudson cross-posted to python-dev about how he wanted to use the `Snake Farm`_ to test a patch for `signal.sigprocmask()`_ to find out what OSs it worked on. `Negated hex/oct constants (SF #660455) `__ Guido discovered that negating a negative number represented as a hex constant (such as -0xffffffff) is different from a negative hex number with the negation applied to parantheses (such as -(0xffffffff)). It was decided to leave it since it will be correct in 2.4 and is already this way in 2.2. `Deprecating modules after 2.3a1? `__ Jack Jansen wanted to know if it was okay to deprecate module even though an alpha for Python 2.3 had gone out. Guido said it was fine. Jack also mentioned that Python 2.4 will have no Mac OS9 support. `Why is the GIL not in PyInterpreterState? `__ Tobias Oberstein asked hwo to go about making sure multiple interpreters in a single process didn't step all over each other because of threading issues. Was told that Python doesn't have support for something like that but if he could come up with a patch that was good it would probably be accepted. `contributing documentation (fwd) `__ A paper on the MRO and how it works was posted at http://www.python.org/2.3/mro.html ; it's a good paper and easy to read. `Unicode source code `__ Thanks to Just van Rossum, compile(), eval(), and exec accept Unicode objects. `Grzegorz Adam Hankiewicz found a parsing bug in HTMLParser. `__ Read the name of the thread to figure this extremely complex discussion was about. =) `UNREF invalid object `__ Today, children, we learned that one should call "PyObject_Del only on the "self" argument to the type's tp_dealloc function", "which is called *by* the expansion of Py_DECREF(self)"anyway, so everything should go through Py_DECREF()_. Now everyone thank Mr. Peters for teaching us this valuable lesson! <"Thank you, Mr. Peters!"> `bitwise operators and lambdas `__ Someone suggested moving bitwise operators to a module and a shorthand for lambda. The chances of the moving of the bitwise operators happening are about as good as George W. Bush winning the Nobel Peace Prize for his work in Iraq. The lambda shorthand, though, became `PEP 312`_. `[Python-checkins] python/dist/src/Python bltinmodule.c,2.276,2.277 `__ Tim Peters wanted to get rid of all the code for the MPW compiler used for Mac OS9. Jack Jansen said to wait until after Python 2.3. `Adding Japanese Codecs to the distro `__ Hye-Shik Chang opened http://python.org/sf/684142 to incorporate Korean Codecs into the stdlib. `dict "setdefault". Feaure request or bugfix? `__: `lazy evaluation redux `__ Someone wanted the second argument to {}.setdefault() to be lazily evaluated which would require special-casing since it would go against how Python works. The idea of lazy functions as a built-in syntax and special syntax for no-argument lambdas was brought up. `[meta] EIBTI: can we acronimize? `__ Lalo Martin wants to start shortening "Explicit is better than implicit" as the acronym EIBTI. I think that it doesn't exist as an acronym until it ends up on acronymfinder.com. =) `Codecs Data `__ Gustavo Niemeyer asked about making the codecs data currently in codecsmodule.c available to all interpreters when multiple ones are launched (currently the codecs are only available to the first interpreter started). The discussion led to the conclusion that PyInterpreterState_ should be augmented to store the codecs. `str.join, string.join `__ Christian Tismer asked if anyone else thought it would be a good idea to turn the join() method on strings into a class method so that the common idiom ``','.join(lines)`` would turn into ``str.join(lines, ',')``. Some people agreed before Guido said that the thread should be moved off of python-dev and over to comp.lang.python_. `when is binary mode required for pickle? `__ Skip Montanaro wanted to know when he needed to open or save a pickle file in binary mode (the 'b' option for file()). The answer is that protocol 0 allows you to open a pickle in text mode, but protocols 1 and 2 require it. So the safe answer is to always use binary mode for pickles. `SF CVS down? `__ I wondered if the SourceForge_ CVS was down or if my connection problems were just me. `Overly creative config in socketmodule.c `__ Tim Peters discovered a bad configuration in socketmodule.c_ using ``#if 1``. Neal Norwitz fixed even though he was not the guilty party in writing the bad code. `Chancing SF tracker email preferences `__ Guido wanted to stop having all follow-up comments posted to SourceForge_ mailed to python-bugs-list@ or patches@ . He asked if anyone had any objection to this. So far several people have spoken up and said they liked receiving the emails. `import curdir, pardir, sep, pathsep, defpath, from relevant *path modules `__ Skip Montanaro that all of the mentioned functions in the subject of this thread were contained in os.py_ when in fact they should be in the various os.path modules (such as posixpath_). Skip moved them and has os_ still import them so there is not visible change in the API. `PEP-242 Numeric kinds -- disposition `__ Paul DuBois asked that `PEP 242`_ be rejected since it is included with Numeric_ currently and be removed in the next release. `Re: [Python-checkins] python/nondist/peps pep-0311.txt,NONE,1.1 `__ Just van Rossum saying that he does not like the use of "auto" as a prefix as stated as a possibility for `PEP 311`_. `PEP 308: "then" "else" for deprecating "and" "or" side effects `__ Christian Tismer suggested replacing "and" and "or" with "then" and "else" for doing binary short circuit testing (such as ``arg = arg else "Default"`` instead of ``arg = arg or "Default"``). Also suggested ``arg when cond1 else cond2`` as a possible ternary operator. Still being tossed around on python-dev. `PEP308 alternative syntax: bool method `__ Someone suggested adding a method to booleans to act like a ternary operator. Before the discussion was moved to comp.lang.python as all ternary discussions should be, the point was made that it could not support short circuiting. `non-binary operators `__ Thread that popped into existence on python-dev part-way through its discussion on comp.lang.python (which is why it died on python-dev quickly) about how ternary operators are different compared to two chained binary operators (like ``a < b < c``). `Import lock knowledge required! `__ Mark Hammond asked for help with dealing with a deadlock with import locking. `Changes to logging `__ Vinay Sajip said he had patches for the logging_ package ready to go and asked for comments, which he received. `execve vulnerability `__ : `Python execvpe symlink race condition `__ Someone reported a vulnerability that was fixed since Python 2.2.2. .. _PyChecker: http://pychecker.sf.net/ .. _PEP 304: http://www.python.org/peps/pep-0304.html .. _zlib: http://www.python.org/dev/doc/devel/lib/module-zlib.html .. _DB 2.0 API: http://www.python.org/topics/database/DatabaseAPI-2.0.html .. _DB-SIG: http://www.python.org/sigs/db-sig/ .. _bsddb3: http://pybsddb.sourceforge.net/bsddb3.html .. _Tools/scripts/{db2pickle,pickle2db}.py: .. _Snake Farm: http://www.lysator.liu.se/~sfarmer/ .. _signal.sigprocmask(): http://www.python.org/dev/doc/devel/lib/module-signal.html#l2h-2249 .. _PyObject_Del(): http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Objects/object.c .. _Py_DECREF(): http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Include/object.h .. _PyInterpreterState: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/pystate.h .. _socketmodule.c: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Modules/socketmodule.c .. _os.py: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Lib/os.py .. _posixpath: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Lib/posixpath.py .. _os: http://www.python.org/dev/doc/devel/lib/module-os.html .. _PEP 242: http://www.python.org/peps/pep-0242.html .. _Numeric: http://www.pfdubois.com/numpy/ .. _PEP 312: http://www.python.org/peps/pep-0312.html .. _logging: http://www.python.org/dev/doc/devel/lib/module-logging.html .. _SourceForge: http://www.sf.net/ From jim@zope.com Fri Feb 21 16:33:28 2003 From: jim@zope.com (Jim Fulton) Date: Fri, 21 Feb 2003 11:33:28 -0500 Subject: PyCon DC 2003 Sprints In-Reply-To: References: Message-ID: Jeremy Hylton wrote: > ... > We already have two sprint sessions planned. Chris Armstrong will be > coaching a Twisted sprint, and Jim Fulton will be coaching a Zope > sprint. I'd like to refocus the sprint I'm coaching on Python support for internationalization and localization. My goal is to get better i18n and l10n in Zope, but, of course, i18n and l10n tools can benefit many Python applications. > People who want to participate in the sprints, but not coach, should > make arrangements with a specific coach. The coaches will help me > allocate the space fairly among the different topics. Space may be > limited, so we would prefer to have people make plans to attend a > specific sprint in advance. If you want to work on I18n/l10n, Zope, or both, please let me know as soon as you can so I can let jeremy know how many people there will be. Jim -- Jim Fulton mailto:jim@zope.com Python Powered! CTO (888) 344-4332 http://www.python.org Zope Corporation http://www.zope.com http://www.zope.org From guido@python.org Fri Feb 21 17:55:55 2003 From: guido@python.org (Guido van Rossum) Date: Fri, 21 Feb 2003 12:55:55 -0500 Subject: PyCon DC: Early Bird Registration Goes Into Last Week Message-ID: It looks like PyCon DC will be a tremendous success. The schedule is all set now, we have Paul Graham (of Lisp and Antispam fame) as a keynote speaker, and many other excellent talks. Plus, Open Space for talks that can be scheduled at the conference itself. The conference is still more than a month away, but don't wait until the last moment to register! The early bird rate ($150 for the whole conference) is only valid until next Friday (February 28); after that you'll have to pay $200 pre-registered or $250 for walk-ins. Don't wait! Register now: http://www.python.org/pycon/ --Guido van Rossum (home page: http://www.python.org/~guido/) From robla@real.com Fri Feb 21 19:35:37 2003 From: robla@real.com (Rob Lanphier) Date: 21 Feb 2003 11:35:37 -0800 Subject: Ribosome - a Python-based build system Message-ID: Hi everyone, Over the years, RealNetworks has developed a pretty sophisticated build Python-based build system. With the Helix Community initiative (where RealNetworks released the code for the client, server, and producer engines of its commercial products), we've released this build system under an OSI-approved open source license (the RealNetworks Public Source License or RPSL) The Helix Ribosome build system is a set of programs written in the Python programming language which provide a common interface to retrieving and building programs from source code stored in a CVS repository. The build system is made up of two basic subsystems. The first ("build") calculates the dependencies of a target, retrieves the source code, and runs commands to build that source code in the correct order. The second component ("Umake") is a cross-platform Makefile generator, which generates makefiles that work with MSVC, CodeWarrior, and typical UNIX toolchains. Umake can be used independently from the build program. The website for this project is here (source code available after registering and agreeing to either the RPSL or RCSL): https://ribosome.helixcommunity.org Rob Lanphier, Helix Community Coordinator - RealNetworks http://helixcommunity.org http://rtsp.org http://realnetworks.com From djc@object-craft.com.au Sun Feb 23 06:14:44 2003 From: djc@object-craft.com.au (Dave Cole) Date: 23 Feb 2003 17:14:44 +1100 Subject: Sybase module 0.36pre5 released Message-ID: WHAT IS IT: The Sybase module provides a Python interface to the Sybase relational database system. It supports all of the Python Database API, version 2.0 with extensions. NOTES: This is another incremental improvement to FreeTDS support. You can build for FreeTDS 0.61 like this: python setup.py build_ext -D HAVE_FREETDS -U WANT_BULKCOPY python setup.py install For FreeTDS 0.60 you should do this: python setup.py build_ext -D HAVE_FREETDS=60 -U WANT_BULKCOPY The module is available here: http://www.object-craft.com.au/projects/sybase/download/sybase-0.36pre5.tar.gz The module home page is here: http://www.object-craft.com.au/projects/sybase/ CHANGES SINCE 0.36pre4: * Fixed bug in ctx.c:ct_con_drop() which caused SEGFAULT with FreeTDS. * Export version of FreeTDS used in sybasect.__have_freetds__ * Set Sybase._ctx as the global context soon as in Sybase.py to avoid problems with undefined global ctx. * Look for SYBASE_OCS on all platforms. * Fixed spelling error in ctx.c:global_ctx(). CHANGES SINCE 0.35: * Fixed cursor locking bug with .nextset() method. * Added .debug_msg() method to context type which writes to the debug log when debugging is enabled for the context object. * Merged AIX build changes from Dietmar Rothkamp. * Now compiles with FreeTDS 0.61. * Limit size of TEXT fields to 65536. * Removed references to CS_PENDING and CS_BUSY in Sybase.py. * Bind CS_VARBINARY_TYPE as CS_BINARY_TYPE. * Do not attempt to ct_cancel() when handling an exception if have not connected to the server. Bug fix in Sybase.py. * Seems like FreeTDS reports the wrong maxlength in ct_describe() for CS_NUMERIC_TYPE and CS_DECIMAL_TYPE. Ignore FreeTDS and assume a maxlength of sizeof(CS_NUMERIC). Bugfix in databuf.c. * Use correct T_STRING_INPLACE type in structure member descriptions. The code does not use Python API for these members. * Debug output for DataFmt now includes scale and precision. * More definitions added to freetds.h; CS_SRC_VALUE, CS_CLEAR. -- http://www.object-craft.com.au From sholden@holdenweb.com Mon Feb 24 01:34:00 2003 From: sholden@holdenweb.com (Steve Holden) Date: Sun, 23 Feb 2003 20:34:00 -0500 Subject: PyCon registration: last days at Early Bird rate Message-ID: Fellow Pythonistas: I would like to remind those fo you who have long been looking for a low-cost Python conference that the early bird registration rate of $150 is still available until February 28, when the rate goes up by 33%. Make sure you get your place at the best possible rate, joining conferees from PythonLabs, Red Hat, the Open Software Applications Foundation and many others at this first event run by and for the Python community. More information at http://www.python.org/pycon Register at http://www.python.org/pycon/reg.html Contribute at http://www.python.org/cgi-bin/moinmoin/PyCon regards -- Steve Holden http://www.holdenweb.com/ Python Web Programming http://pydish.holdenweb.com/pwp/ Register for PyCon now! http://www.python.org/pycon/reg.html From djc@object-craft.com.au Mon Feb 24 04:37:08 2003 From: djc@object-craft.com.au (Dave Cole) Date: 24 Feb 2003 15:37:08 +1100 Subject: Sybase module 0.36pre6 released Message-ID: WHAT IS IT: The Sybase module provides a Python interface to the Sybase relational database system. It supports all of the Python Database API, version 2.0 with extensions. NOTES: This is another incremental improvement to FreeTDS support. You can build for FreeTDS like this: python setup.py build_ext -D HAVE_FREETDS -U WANT_BULKCOPY python setup.py install If you are using FreeTDS 0.60 change the compile command to: python setup.py build_ext -D HAVE_FREETDS=60 -U WANT_BULKCOPY The module is available here: http://www.object-craft.com.au/projects/sybase/download/sybase-0.36pre6.tar.gz The module home page is here: http://www.object-craft.com.au/projects/sybase/ CHANGES SINCE 0.36pre5: * Fixed compilation for non-FreeTDS users. CHANGES SINCE 0.35: * Fixed bug in ctx.c:ct_con_drop() which caused SEGFAULT with FreeTDS. * Export version of FreeTDS used in sybasect.__have_freetds__ * Set Sybase._ctx as the global context soon as in Sybase.py to avoid problems with undefined global ctx. * Look for SYBASE_OCS on all platforms. * Fixed spelling error in ctx.c:global_ctx(). * Fixed cursor locking bug with .nextset() method. * Added .debug_msg() method to context type which writes to the debug log when debugging is enabled for the context object. * Merged AIX build changes from Dietmar Rothkamp. * Now compiles with FreeTDS 0.61. * Limit size of TEXT fields to 65536. * Removed references to CS_PENDING and CS_BUSY in Sybase.py. * Bind CS_VARBINARY_TYPE as CS_BINARY_TYPE. * Do not attempt to ct_cancel() when handling an exception if have not connected to the server. Bug fix in Sybase.py. * Seems like FreeTDS reports the wrong maxlength in ct_describe() for CS_NUMERIC_TYPE and CS_DECIMAL_TYPE. Ignore FreeTDS and assume a maxlength of sizeof(CS_NUMERIC). Bugfix in databuf.c. * Use correct T_STRING_INPLACE type in structure member descriptions. The code does not use Python API for these members. * Debug output for DataFmt now includes scale and precision. * More definitions added to freetds.h; CS_SRC_VALUE, CS_CLEAR. -- http://www.object-craft.com.au From max@alcyone.com Mon Feb 24 10:06:37 2003 From: max@alcyone.com (Erik Max Francis) Date: Mon, 24 Feb 2003 02:06:37 -0800 Subject: ANN: PyQStat 1.0 -- A Python wrapper around QStat Message-ID: Summary A Python wrapper around QStat, the realtime game server status tool. Overview PyQStat is a fairly basic Python wrapper around "QStat", http://www.qstat.org/, an application designed to report server status for a wide variety of realtime game servers. PyQStat invokes QStat via 'os.popen' and parses its XML output mode. Although primarily intended as an importable module for integrating QStat functionality into other applications, PyQStat can also be used from the command line. Getting the software The current version of qstat is 1.0. The latest version of the software is available in a tarball here: http://www.alcyone.com/pyos/qstat/qstat-latest.tar.gz. The official URL for this Web site is http://www.alcyone.com/pyos/qstat/. Requirements - Python 2.0 or greater. - A functioning XML parser integrated with Python's 'xml.dom.minidom'. - An installed verison of QStat -- or a workalike application -- which supports the -xml argument. License This code is released under the GPL. -- Erik Max Francis / max@alcyone.com / http://www.alcyone.com/max/ __ San Jose, CA, USA / 37 20 N 121 53 W / &tSftDotIotE / \ You make me feel like / I can be a better woman \__/ India Arie Max Pandaemonium / http://www.maxpandaemonium.com/ A sampling of Max Pandameonium's music. From alan_salmoni@yahoo.com Mon Feb 24 13:21:51 2003 From: alan_salmoni@yahoo.com (Alan James Salmoni) Date: 24 Feb 2003 05:21:51 -0800 Subject: ANNOUNCE: release of SalStat 20030224 Message-ID: I am pleased to annouce a new release of the SalStat statistics package for scientific statistical analysis, written entirely in Python and wxPython! This version works better on Windows (read: the Linux/other version's dialog box layouts are a bit borked - feedback welcome!), and includes a chi-square test, improved dialog design, and better plotting. This version is code only (no binaries yet, though these are planned), and requires the installation of Python, wxPython, Numeric and SciPy. The main site is at http://salstat.sunsite.dk, and the download is available from http://salstat.sunsite.dk/salstat.20030224.zip. Feedback on the accuracy of the tests is wanted: if you can, please check them out and let me know. I am also interested in feedback about the interface design - do you find it easy to use, or are there any points of improvement that you might suggest - I might not do what you want, but I will listen! Have fun, and best of luck! Alan James Salmoni SalStat Statistics http://salstat.sunsite.dk From "z3p attwistedmatrixdotcom"@vex.net Sun Feb 16 20:04:07 2003 From: "z3p attwistedmatrixdotcom"@vex.net (Paul Swartz) Date: Sun, 16 Feb 2003 15:04:07 -0500 (EST) Subject: [Module] initgroups/0.1 Message-ID: initgroups/0.1 -------------- A module to allow access to the initgroups function, This is a module to allow access to the initgroups function, which sets up the groups for a user. This help Python software implement programs like shells. Download: http://www.twistedmatrix.com/users/z3p/initgroups-0.1.tar.gz License: LGPL Platform: *nix Categories: O/S Support Paul Swartz (z3p at twistedmatrix dot com) http://www.twistedmatrix.com/users/z3p.twistd/ -- initgroups/0.1 -- A module to allow access to the initgroups function, From "z3p attwistedmatrixdotcom"@vex.net Sun Feb 16 19:35:12 2003 From: "z3p attwistedmatrixdotcom"@vex.net (Paul Swartz) Date: Sun, 16 Feb 2003 14:35:12 -0500 (EST) Subject: [Module] PyShadow/0.1 Message-ID: PyShadow/0.1 ------------ Module to access the shadow password f ile This is a module to allow access to the shadow password file. It also includes md5_crypt, which implemtns the md5_crypt function used to encrypt passwords in the shadow password file. Download: http://www.twistedmatrix.com/users/z3p/pyshadow-0.1.tar.gz License: LGPL Platform: *nix Categories: O/S Support Paul Swartz (z3p at twistedmatrix dot com) http://www.twistedmatrix.com/users/z3p.twistd/ -- PyShadow/0.1 -- Module to access the shadow password f ile From lsmithso@hare.demon.co.uk Fri Feb 14 20:57:06 2003 From: lsmithso@hare.demon.co.uk (Les Smithson) Date: Fri, 14 Feb 2003 15:57:06 -0500 (EST) Subject: [Module] Pyxasw 0.1 Message-ID: Pyxasw 0.1 ---------- A Python extension that interfaces to the XA distributed transaction processing standard. Pyxasw interfaces between a Transaction Manager and a Resource Manager, using the XA standard interface. It allows an embedded Python script to participate in Distributed Transactions and two phase commit of databases and other resources. URL: http://www.hare.demon.co.uk/pyxasw Download: http://www.hare.demon.co.uk/pyxasw License: Open Source Platform: linux Binaries: redhat 7.3 Categories: Remote and Distributed Les Smithson (lsmithso@hare.demon.co.uk) http://www.hare.demon.co.uk -- Pyxasw 0.1 -- A Python extension that interfaces to the XA distributed transaction processing standard. From OliverM.Haynold Fri Feb 21 03:00:14 2003 From: OliverM.Haynold (OliverM.Haynold) Date: Thu, 20 Feb 2003 22:00:14 -0500 (EST) Subject: [Module] e2fs Message-ID: e2fs ---- Support for second extended file system extended attributes This little package allows us to set and get extended e2fs file attributes from python. URL: http://pubweb.northwestern.edu/~omh221/software_projects/python-e2fs/ License: Open Source Platform: Any system using e2fs, which usually means Linux. Binaries: Linux Categories: O/S Support, O/S Support // Linux Oliver M. Haynold (oliverh@northwestern.edu) -- e2fs -- Support for second extended file system extended attributes From emarch@poetworld.net Sun Feb 23 05:38:32 2003 From: emarch@poetworld.net (Ed March) Date: Sun, 23 Feb 2003 00:38:32 -0500 (EST) Subject: [Application] Crossword Puzzle generator to postscript Message-ID: Crossword Puzzle generator to postscript ---------------------------------------- Ascii driven by input file to nice PS ouput Control squares across/down and size and show option world list for kids. URL: march.freeshell.org License: Open Source Platform: any Requires: python 1.5 + Binaries: no Gui: none Categories: Games, puzzle Ed March (emarch@poetworld.net) www.poetworld.org/~emarch/ -- Crossword Puzzle generator to postscript -- Ascii driven by input file to nice PS ouput From ahaas@airmail.net Tue Feb 25 16:19:35 2003 From: ahaas@airmail.net (Art Haas) Date: Tue, 25 Feb 2003 10:19:35 -0600 Subject: Fourth release of PythonCAD now available Message-ID: I'd like to announce the fourth release of PythonCAD, a CAD package for open-source software users. As the name implies, PythonCAD is written entirely in Python. The goal of this project is to create a fully scriptable drafting program that will match and eventually exceed features found in commercial CAD software. PythonCAD is released under the GNU Public License (GPL). PythonCAD requires Python 2.2. The interface is GTK 2.0 based, and uses the PyGTK module for interfacing to GTK. The design of PythonCAD is built around the idea of separating the interface from the back end as much as possible. By doing this, it is hoped that both GNOME and KDE interfaces can be added to PythonCAD through usage of the appropriate Python module. Addition of other interfaces will depend on the availability of a Python module for that particular interface and developer interest and action. The fourth release has major improvements in dimensioning. Angular dimensions are now available, and linear dimensions will be displayed. There is also more visual feedback when creating any dimension, and the display of the dimension text has been improved. Check out the new screenshots on the PythonCAD screenshot page showing these changes. There is more visual feedback when creating arcs now, and various other user interface elements have been improved. The usual assortment of bug fixes and code improvements are added, and although not seen directly when using the program, these changes have increased the stability and robustness of PythonCAD. More routines have had been documented, and many routines have been updated to current code standards. This release coincides with providing read-only access to the PythonCAD Subversion repository. Subversion is similar to CVS, but is aiming to be the successor to that program. By making the repository available to everyone, it is hoped that downloading and developing PythonCAD will be simpler for more developers and users, and will increase the speed of PythonCAD development. Details about downloading PythonCAD with Subversion are found on the PythonCAD web site. For more details about Subversion, go to the program's home page: http://subversion.tigris.org Visit the PythonCAD web site for more information about what PythonCAD does and aims to be: http://www.pythoncad.org Come and join me in developing PythonCAD into a world class drafting program! Art Haas -- They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. -- Benjamin Franklin, Historical Review of Pennsylvania, 1759 From barry@python.org Tue Feb 25 20:12:30 2003 From: barry@python.org (Barry A. Warsaw) Date: Tue, 25 Feb 2003 15:12:30 -0500 Subject: Scheduled downtime for mail.python.org Message-ID: Baymountain, our host for mail.python.org (and mail.zope.org), will be performing some short duration maintenance on the machine on Wednesday 26-Feb-2003 at 10pm EST. Expected downtime is about 10 minutes. -Barry From Sylvain =?iso-8859-1?Q?Th=E9nault?= Wed Feb 26 14:51:37 2003 From: Sylvain =?iso-8859-1?Q?Th=E9nault?= (Sylvain =?iso-8859-1?Q?Th=E9nault?=) Date: Wed, 26 Feb 2003 15:51:37 +0100 Subject: [ANN] PyReverse 0.4.2 Message-ID: A new release of PyReverse is now available. This is mainly a bug fix release What's new ? ------------ * add the missing pyvcg script which was breaking installation to the package distribution * fix two bugs which were making PyReverse choking on some modules * add the --init-only option on pyargo, pyvcg and py2xmi * new way to find non standard module in pystats What's pyreverse ? ------------------------ Pyreverse is a set of utilities to reverse enginering Python code. It uses a representation of a Python project in a class hierarchy which can be used to extract any information (such as generating UML diagrams and make a few statistics from the Python code, as pyargo and pystats) Home page --------- http://www.logilab.org/pyreverse Download -------- ftp://ftp.logilab.org/pub/pyreverse Mailing list ------------ mailto://xml-logilab@logilab.org -- Sylvain Thénault LOGILAB, Paris (France). http://www.logilab.com http://www.logilab.fr http://www.logilab.org From richardjones@optushome.com.au Thu Feb 27 11:29:36 2003 From: richardjones@optushome.com.au (Richard Jones) Date: Thu, 27 Feb 2003 22:29:36 +1100 Subject: SC-Track Roundup 0.5.6 - an issue tracking system Message-ID: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D SC-Track Roundup 0.5.6 - an issue tracking system =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Note: This releases fixes a serious bug in the sqlite and gadfly backends which could cause data loss. Users are strongly encouraged to upgrade to th= is version. This is a bugfix release for version 0.5.x - if you're upgrading from before 0.5, you *must* read doc/upgrading.txt! Roundup requires python 2.1.3 or later for correct operation. Users of the sqlite backend are encouraged to upgrade sqlite to version 2.7.3. We've had a good crack at bugs (thanks to all who contributed!): =2D fixed database corruption in rdbms property mutation =2D fixed templating filter function arguments (sf bug 678911) =2D fixed multiselect in searching (sf bug 676874) =2D fixed parsing of content-disposition filenames (sf bug 675116) =2D added 'h' to roundup-server optarg list (sf bug 674070) =2D fixed doc for db.history in anydbm and rdbms_common (sf bug 679221) =2D fixed roundup-reminder (sf bug 681042) =2D fixed int assumptions about Number values (sf bug 677762) =2D clarified licensing =2D another attempt to fix cookie misbehaviour - customise cookie name using tracker name =2D fixed error in indexargs_url (thanks Patrick Ohly) =2D fixed getnode (sf bug 684531) =2D fixed args to some date templating methods (sf bug 689670) Source and documentation is available at the website: http://roundup.sourceforge.net/ Release Info (via download page): http://sourceforge.net/projects/roundup Mailing lists - the place to ask questions: http://sourceforge.net/mail/?group_id=3D31577 About Roundup =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Roundup is a simple-to-use and -install issue-tracking system with=20 command-line, web and e-mail interfaces. It is based on the winning design= =20 from Ka-Ping Yee in the Software Carpentry "Track" design competition. Note: Ping is not responsible for this project. The contact for this projec= t=20 is richard@users.sourceforge.net. Roundup manages a number of issues (with flexible properties such as=20 "description", "priority", and so on) and provides the ability to: (a) submit new issues, (b) find and edit existing issues, and (c) discuss issues with other participants. The system will facilitate communication among the participants by managing discussions and notifying interested parties when issues are edited. One of the major design goals for Roundup that it be simple to get going. Roundup is therefore usable "out of the box" with any python 2.1+ installation. It doesn't even need to be "installed" to be operational, though a disutils-based install script is provided. It comes with two issue tracker templates (a classic bug/feature tracker and a minimal skeleton) and six database back-ends (anydbm, bsddb, bsddb3, sqli= te, metakit and gadfly).=20 From alan_salmoni@yahoo.com Thu Feb 27 11:40:11 2003 From: alan_salmoni@yahoo.com (Alan James Salmoni) Date: 27 Feb 2003 03:40:11 -0800 Subject: ANN: New release of SalStat Statistics Package Message-ID: Hi all, Following a release the other day, there is a new release of the SalStat Statistics Package written in Python with wxPython, Numeric and SciPY. >From the website (http://salstat.sunsite.dk), there is a source download (http://salstat.sunsite.dk/salstat.20030227.zip - 439k) which needs Python, wxPython, Numeric, SciPy (and I believe PIL) to be installed. For Windows users, there is a self-installing executable made with the McMillan installer and the Inno installer (thanks to the guys who wrote these!) available from http://salstat.sunsite.dk/salstat.20030227.setup.exe (7.78MB). This version allows chi square tests (observed in the first column, expected in the second column of the 2 condition test dialog), better graphs (thanks to SciPy plt function), and the interface has been spruced up a bit more. It loads ASCII files generally well, but don't leave too many blank spaces where there should be missing data. Thanks to all who have helped in one way or another. The next version should features multi-factorial anova with simple and main effects easily accessible from the interface (no syntax files needed!). Feedback is requested regarding test accuracy and interface experience. Please fire (not flame!) away as I have had little feedback about the interface lately (either I'm doing something very right, or very wrong indeed!) Have fun! Alan James Salmoni SalStat Statistics http://salstat.sunsite.dk From aahz@pythoncraft.com Thu Feb 27 22:17:00 2003 From: aahz@pythoncraft.com (Aahz) Date: Thu, 27 Feb 2003 17:17:00 -0500 Subject: PyCon t-shirts: order by March 10 Message-ID: We're offering PyCon t-shirts through Cafe Press. Each t-shirt includes a two dollar donation to the Python Software Foundation, which may be tax-deductible. Order your t-shirt by March 10 to be sure of receiving it before PyCon. People not attending PyCon can also order t-shirts, but act quickly -- they'll be removed soon after PyCon is over. http://www.cafeshops.com/pycon http://www.python.org/pycon/ PyCon PyCon is a community-oriented conference targeting developers (both those using Python and those working on the Python project). It gives you opportunities to learn about significant advances in the Python development community, to participate in a programming sprint with some of the leading minds in the Open Source community, and to meet fellow developers from around the world. The organizers have worked hard to ensure that the conference be affordable and accessible to all. We look forward to seeing you there. PyCon DC 2003 The first PyCon will be held 26-28 March, 2003, at George Washington University's Cafritz Conference Center in Washington DC. There will be a development sprint Mon/Tues before the conference. -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ Register for PyCon now! http://www.python.org/pycon/reg.html From guido@python.org Fri Feb 28 15:29:10 2003 From: guido@python.org (Guido van Rossum) Date: Fri, 28 Feb 2003 10:29:10 -0500 Subject: PyCon: last day for early bird rate Message-ID: I'm sure you're all bored of these announcements, so this is the *final* reminder that *today* (Friday) is the *last day* to register for PyCon DC at the early bird rate of $150. http://www.python.org/pycon/ Speakers! This applies to you too. Already registered? BOOK YOUR HOTEL ROOM SOON! Late March is cherry blossom time in DC, and hotels fill up quickly. Ditto for flights. We've already got over 150 attendees registered. Don't miss it! --Guido van Rossum (home page: http://www.python.org/~guido/) From Marc.Poinot@onera.fr Fri Feb 28 15:33:12 2003 From: Marc.Poinot@onera.fr (Marc Poinot) Date: Fri, 28 Feb 2003 16:33:12 +0100 Subject: pyCGNS v1.1 Message-ID: ----------------------------------------------------------------------- pyCGNS v1.1 This package is a Python wrapper for CGNS (http://www.cgns.org) It is useful for people doing archival, data exchange or pre/post processing on CFD (Computational Fluid Dynamics) data. ----------------------------------------------------------------------- This release is only a bug fix (ADF wrapper). Some corrections in the doc and the XML DTD. ----------------------------------------------------------------------- Package pyCGNS uses CGNS, Python, Numeric Python and pyXML. If you want more info, including the package download, please go to: http://elsa.onera.fr/CGNS/releases -MP- ----------------------------------------------------------------------- Marc POINOT Alias: marcvs Email: poinot@onera.fr ONERA -MFE/DSNA/ELSA Tel: 01.46.73.42.84 Info: elsa-info@onera.fr 29, Div. Leclerc Fax: 01.46.73.41.66 Site: 92322 Chatillon FRANCE Project: elsA Web: http://www.onera.fr From edream@tds.net Fri Feb 28 17:08:05 2003 From: edream@tds.net (Edward K. Ream) Date: Fri, 28 Feb 2003 17:08:05 GMT Subject: ANN: Leo 3.11b3 outlining editor Message-ID: leo.py 3.11 beta 3 is now available at: http://sourceforge.net/projects/leo/ leo.py requires Python 2.1 or above and tcl/tk 8.3 or above. leo.py will work on Linux, Windows and MacOs X Jaguar. Just about everyone who has ever reported problems with how Leo handles non-ascii characters is now satisfied with Leo. Beta 3: - Fixes some unicode problems when the system encoding is not "utf-8". - Adds the tk_encoding setting. - Fixes some minor bugs in the Outline To Noweb command. For all other details, see below. The highlights of 3.11: ----------------------- ** Leo finally supports unicode properly. This solves a lot of problems. - New @encoding directives specifies encoding for derived files. - New settings specify default encodings for .leo and derived files. - Derived files specify encodings used to create them. ** A new plugin architecture for customizing Leo. (A major improvement.) - New commands: - Toggle Angle Brackets. - Insert Time/Date (in headline or body text). - Go To First/Last Node, Parent, Next/Previous Sibling. - Write Missing @file Nodes. - Expand/Contract Node. - Improved commands: - Expand/Contract commands now operate on the selected tree. ( A major improvement) - Sort Siblings command can now sort top-level nodes. - Leo now allows multiple writes of cloned nodes. (Useful when different @path directives are in effect.) - Other improvements: - Improved syntax coloring for html and xml. - Leo scrolls partially visible headlines into full view. - Added "Replace tabs with spaces" checkbox in Prefs panel. - Added install script for Linux. - New settings in leoConfig.leo/.txt. - Colors for Show Invisibles command and body_insertion_cursor - Settings affecting when control-drags start. - Defaults for unicode (see above). - Many other bug fixes and improvements. Quote of the month ------------------ I only have one week of Leo experience but I already know it will be my default IDE/project manager. I have seen several old threads on c.l.python where people complain about the lack of a project manager for the free/standard Python IDE's like Idle. Leo clearly solves that problem and in a way that commercial tools can't touch -- Marshall Parsons What is Leo? ------------ - A programmer's editor, an outlining editor and a flexible browser. - A literate programming tool, compatible with noweb and CWEB. - A data organizer and project manager. Leo provides multiple views of projects within a single outline. - Fully scriptable using Python. Leo saves its files in XML format. - Portable. leo.py is 100% pure Python. - Open Software, distributed under the Python License. Links: ------ Leo: http://personalpages.tds.net/~edream/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://sourceforge.net/cvs/?group_id=3458 -------------------------------------------------------------------- Edward K. Ream email: edream@tds.net Leo: Literate Editor with Outlines Leo: http://personalpages.tds.net/~edream/front.html -------------------------------------------------------------------- From lsmithso@hare.demon.co.uk Tue Feb 25 22:03:41 2003 From: lsmithso@hare.demon.co.uk (Les Smithson) Date: Tue, 25 Feb 2003 17:03:41 -0500 (EST) Subject: [Module] grpnext 0.1 Message-ID: grpnext 0.1 ----------- Grpnext displays the currently playing Radio Paradise song in a Gnome panel applet. Grpnext.py is a Python script that displays the currently playing Radio Paradise (http://www.radioparadise.com) song in a Gnome panel applet. This makes it easy to see the song you're listening to without having to switch to a browser. URL: http://www.hare.demon.co.uk/grpnext/ Download: http://www.hare.demon.co.uk/grpnext/grpnext.tgz License: Public Domain Requires: gnome-python-1.4.4, timeoutsocket.py Gui: Gnome Categories: Sound/Audio Les Smithson (lsmithso@hare.demon.co.uk) http://www.hare.demon.co.uk -- grpnext 0.1 -- Grpnext displays the currently playing Radio Paradise song in a Gnome panel applet.