From anthony at computronix.com Wed Sep 1 18:27:56 2004 From: anthony at computronix.com (Anthony Tuininga) Date: Fri Sep 3 01:38:27 2004 Subject: cx_Oracle 4.1 beta1 Message-ID: <4135F88C.80603@computronix.com> What is cx_Oracle? cx_Oracle is a Python extension module that allows access to Oracle and conforms to the Python database API 2.0 specifications with a few exceptions. Where do I get it? http://starship.python.net/crew/atuining What's new? 1) Added support for Python 2.4. In Python 2.4, the datetime module is used for both binding and fetching of date and timestamp data. In Python 2.3, objects from the datetime module can be bound but the This is internal datetime objects will be returned from queries. 2) Added pickling support for LOB and datetime data. 3) Fully qualified the table name that was missing in an alter table statement in the setup test script as noted by Marc Gehling. 4) Added a section allowing for the setting of the RPATH linker directive in setup.py as requested by Iustin Pop. 5) Added code to raise a programming error exception when an attempt is made to access a LOB locator variable in a subsequent fetch. 6) The username, password and dsn (tnsentry) are stored on the connection object when specified, regardless of whether or not a standard connection takes place. 7) Added additional module level constant called "LOB" as requested by Joseph Canedo. 8) Changed exception type to IntegrityError for constraint violations as requested by Joseph Canedo. 9) If scale and precision are not specified, an attempt is made to return a long integer as requested by Joseph Canedo. 10) Added workaround for Oracle bug which returns an invalid handle when the prepare call fails. Thanks to alantam@hsbc.com for providing the code that demonstrated the problem. 11) The cusor method arravar() will now accept the actual list so that it is not necessary to call cursor.arrayvar() followed immediately by var.setvalue(). 12) Fixed bug where attempts to execute the statement "None" with bind variables would cause a segmentation fault. 13) Added support for binding by position (paramstyle = "numeric"). 14) Removed memory leak created by calls to OCIParamGet() which were not mirrored by calls to OCIDescriptorFree(). Thanks to Mihai Ibanescu for pointing this out and providing a patch. 15) Added support for calling cursor.executemany() with statement None implying that the previously prepared statement ought to be executed. Thanks to Mihai Ibanescu for providing a patch. 16) Added support for rebinding variables when a subsequent call to cursor.executemany() uses a different number of rows. Thanks to Mihai Ibanescu for supplying a patch. 17) The microseconds are now displayed in datetime variables when nonzero similar to method used in the datetime module. 18) Added support for binary_float and binary_double columns in Oracle 10g. -- Anthony Tuininga anthony@computronix.com Computronix Distinctive Software. Real People. Suite 200, 10216 - 124 Street NW Edmonton, AB, Canada T5N 4A3 Phone: (780) 454-3700 Fax: (780) 454-3838 http://www.computronix.com From fredrik at pythonware.com Wed Sep 1 20:01:47 2004 From: fredrik at pythonware.com (Fredrik Lundh) Date: Fri Sep 3 01:38:28 2004 Subject: ANN: PythonDoc 2.1 beta 1 (september 1, 2004) Message-ID: <009c01c4904d$c07151b0$c200a8c0@wmc3fuze4sqif8> PythonDoc is a documentation tool for Python, inspired by JavaDoc. Like JavaDoc, PythonDoc scans your Python code for doc comments, and generates API documentation in XML and HTML formats. Python- Doc supports basic JavaDoc tags like @param and @return, and adds a few Python-specific tags. You can use PythonDoc comments to describe module-level variables and constants, functions, classes, methods, and attributes. PythonDoc comes with a standard HTML generator, but you can plug in your own output handlers, or use XSTL or other tools to process the PythonDoc XML format. PythonDoc 2.1 is 2.0 plus support for Python 2.4 decorators, inline @link and @linkplain tags, and some bug fixes. See the README file for details. Brief description and examples (for an earlier alpha release): http://online.effbot.org/2003_10_01_archive.htm#pythondoc-20a1 Downloads: http://effbot.org/downloads#pythondoc http://effbot.org/downloads#elementtree Documentation: http://effbot.org/zone/pythondoc.htm Sample output (using the default "compact HTML" renderer): http://effbot.org/zone/pythondoc-compact.htm enjoy /F From aahz at pythoncraft.com Fri Sep 3 01:02:32 2004 From: aahz at pythoncraft.com (Aahz) Date: Fri Sep 3 01:38:28 2004 Subject: BayPIGgies: September 9, 7:30pm Message-ID: <20040902230232.GA11628@panix.com> The next meeting of BayPIGgies will be Thurs September 9 at 7:30pm. It will feature a presentation about pyscheme by Danny Yoo. Haven't had time to update the web site, so here's Danny's summary: http://hkn.eecs.berkeley.edu/~dyoo/python/pyscheme/ o A quick introduction to Scheme, and how it's similar to Python. o A sketch of how pyscheme works. o Demo of the program itself. o Discussion on a core problem when implementing Scheme in Python: Recursion! - Python's recursion limit. - How to deal with it: bouncing functions on trampolines. o Maybe even continuations, if I haven't lost the audience by then. BayPIGgies meetings are in Stanford, California. For more information and directions, see http://www.baypiggies.net/ Before the meeting, some people will meet at 6pm for dinner in downtown Palo Alto. Ducky Sherwood is handling that; please send RSVPs to ducky@osafoundation.org by 4pm Thurs. Discussion of dinner plans is handled on the BayPIGgies mailing list. Advance notice: The October 14 meeting agenda has not been set. Please send e-mail to baypiggies@baypiggies.net if you want to make a presentation. -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ "To me vi is Zen. To use vi is to practice zen. Every command is a koan. Profound to the user, unintelligible to the uninitiated. You discover truth everytime you use it." --reddy@lion.austin.ibm.com From anthony at python.org Fri Sep 3 10:36:16 2004 From: anthony at python.org (Anthony Baxter) Date: Fri Sep 3 12:53:23 2004 Subject: RELEASED Python 2.4, alpha 3 Message-ID: <41382D00.70906@python.org> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On behalf of the Python development team and the Python community, I'm happy to announce the third alpha of Python 2.4. Python 2.4a3 is an alpha release. We'd greatly appreciate it if you could download it, kick the tires and let us know of any problems you find, but it is not suitable for production usage. ~ http://www.python.org/2.4 In this release we have PEP-292 string templates, a new syntax for multi-line imports, and a large number of other bug fixes and improvements. See either the highlights, the What's New in Python 2.4, or the detailed NEWS file -- all available from the Python 2.4 webpage. This will hopefully be the last alpha in the Python 2.4 cycle - a first beta will follow in a few weeks. Once the first beta is out, we're in feature-freeze mode - so if you've got new things you want in, make sure you hurry! Please log any problems you have with this release in the SourceForge bug tracker (noting that you're using 2.4a3): ~ http://sourceforge.net/bugs/?group_id=5470 Enjoy the new release, Anthony Anthony Baxter anthony@python.org Python Release Manager (on behalf of the entire python-dev team) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFBOCz9Dt3F8mpFyBYRAmgqAJ42drhwIe3QLSx6WyUxOUPewUtX4QCgt5Wv mP4MfJRsXy6t0IcS6fY8Mmc= =efD5 -----END PGP SIGNATURE----- From anthony at python.org Fri Sep 3 11:34:02 2004 From: anthony at python.org (Anthony Baxter) Date: Fri Sep 3 12:53:23 2004 Subject: final version of PEP-318 "Decorators for functions and methods" Message-ID: <41383A8A.4020606@python.org> To go along with the 2.4a3 release, here's an updated version of the decorator PEP. It describes the state of decorators as they are in 2.4a3. -------------- next part -------------- PEP: 318 Title: Decorators for Functions and Methods Version: $Revision: 1.34 $ Last-Modified: $Date: 2004/09/03 09:32:50 $ Author: Kevin D. Smith, Jim Jewett, Skip Montanaro, Anthony Baxter Status: Draft Type: Standards Track Content-Type: text/x-rst Created: 05-Jun-2003 Python-Version: 2.4 Post-History: 09-Jun-2003, 10-Jun-2003, 27-Feb-2004, 23-Mar-2004, 30-Aug-2004, 2-Sep-2004 WarningWarningWarning ===================== This document is meant to describe the decorator syntax and the process that resulted in the decisions that were made. It does not attempt to cover the huge number of potential alternative syntaxes, nor is it an attempt to exhaustively list all the positives and negatives of each form. Abstract ======== The current method for transforming functions and methods (for instance, declaring them as a class or static method) is awkward and can lead to code that is difficult to understand. Ideally, these transformations should be made at the same point in the code where the declaration itself is made. This PEP introduces new syntax for transformations of a function or method declaration. Motivation ========== The current method of applying a transformation to a function or method places the actual transformation after the function body. For large functions this separates a key component of the function's behavior from the definition of the rest of the function's external interface. For example:: def foo(self): perform method operation foo = classmethod(foo) This becomes less readable with longer methods. It also seems less than pythonic to name the function three times for what is conceptually a single declaration. A solution to this problem is to move the transformation of the method closer to the method's own declaration. While the new syntax is not yet final, the intent is to replace:: def foo(cls): pass foo = synchronized(lock)(foo) foo = classmethod(foo) with an alternative that places the decoration in the function's declaration:: @classmethod @synchronized(lock) def foo(cls): pass Modifying classes in this fashion is also possible, though the benefits are not as immediately apparent. Almost certainly, anything which could be done with class decorators could be done using metaclasses, but using metaclasses is sufficiently obscure that there is some attraction to having an easier way to make simple modifications to classes. For Python 2.4, only function/method decorators are being added. Why Is This So Hard? -------------------- Two decorators (``classmethod()`` and ``staticmethod()``) have been available in Python since version 2.2. It's been assumed since approximately that time that some syntactic support for them would eventually be added to the language. Given this assumption, one might wonder why it's been so difficult to arrive at a consensus. Discussions have raged off-and-on at times in both comp.lang.python and the python-dev mailing list about how best to implement function decorators. There is no one clear reason why this should be so, but a few problems seem to be most divisive. * Disagreement about where the "declaration of intent" belongs. Almost everyone agrees that decorating/transforming a function at the end of its definition is suboptimal. Beyond that there seems to be no clear consensus where to place this information. * Syntactic constraints. Python is a syntactically simple language with fairly strong constraints on what can and can't be done without "messing things up" (both visually and with regards to the language parser). There's no obvious way to structure this information so that people new to the concept will think, "Oh yeah, I know what you're doing." The best that seems possible is to keep new users from creating a wildly incorrect mental model of what the syntax means. * Overall unfamiliarity with the concept. For people who have a passing acquaintance with algebra (or even basic arithmetic) or have used at least one other programming language, much of Python is intuitive. Very few people will have had any experience with the decorator concept before encountering it in Python. There's just no strong preexisting meme that captures the concept. * Syntax discussions in general appear to cause more contention than almost anything else. Readers are pointed to the ternary operator discussions that were associated with PEP 308 for another example of this. Background ========== There is general agreement that syntactic support is desirable to the current state of affairs. Guido mentioned `syntactic support for decorators`_ in his DevDay keynote presentation at the `10th Python Conference`_, though `he later said`_ it was only one of several extensions he proposed there "semi-jokingly". `Michael Hudson raised the topic`_ on ``python-dev`` shortly after the conference, attributing the initial bracketed syntax to an earlier proposal on ``comp.lang.python`` by `Gareth McCaughan`_. .. _syntactic support for decorators: http://www.python.org/doc/essays/ppt/python10/py10keynote.pdf .. _10th python conference: http://www.python.org/workshops/2002-02/ .. _michael hudson raised the topic: http://mail.python.org/pipermail/python-dev/2002-February/020005.html .. _he later said: http://mail.python.org/pipermail/python-dev/2002-February/020017.html .. _gareth mccaughan: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=slrna40k88.2h9o.Gareth.McCaughan%40g.local Class decorations seem like an obvious next step because class definition and function definition are syntactically similar, however Guido remains unconvinced, and class decorators will almost certainly not be in Python 2.4. The discussion continued on and off on python-dev from February 2002 through July 2004. Hundreds and hundreds of posts were made, with people proposing many possible syntax variations. Guido took a list of proposals to `EuroPython 2004`_, where a discussion took place. Subsequent to this, he decided that we'd have the `Java-style`_ @decorator syntax, and this appeared for the first time in 2.4a2. Barry Warsaw named this the 'pie-decorator' syntax, in honor of the Pie-thon Parrot shootout which was occured around the same time as the decorator syntax, and because the @ looks a little like a pie. Guido `outlined his case`_ on Python-dev, including `this piece`_ on some of the (many) rejected forms. .. _EuroPython 2004: http://www.python.org/doc/essays/ppt/euro2004/euro2004.pdf .. _outlined his case: http://mail.python.org/pipermail/python-dev/2004-August/author.html .. _this piece: http://mail.python.org/pipermail/python-dev/2004-August/046672.html .. _Java-style: http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html On the name 'Decorator' ======================= There's been a number of complaints about the choice of the name 'decorator' for this feature. The major one is that the name is not consistent with its use in the `GoF book`_. The name 'decorator' probably owes more to its use in the compiler area -- a syntax tree is walked and annotated. It's quite possible that a better name may turn up. .. _GoF book: http://patterndigest.com/patterns/Decorator.html Design Goals ============ The new syntax should * work for arbitrary wrappers, including user-defined callables and the existing builtins ``classmethod()`` and ``staticmethod()``. This requirement also means that a decorator syntax must support passing arguments to the wrapper constructor * work with multiple wrappers per definition * make it obvious what is happening; at the very least it should be obvious that new users can safely ignore it when writing their own code * be a syntax "that ... [is] easy to remember once explained" * not make future extensions more difficult * be easy to type; programs that use it are expected to use it very frequently * not make it more difficult to scan through code quickly. It should still be easy to search for all definitions, a particular definition, or the arguments that a function accepts * not needlessly complicate secondary support tools such as language-sensitive editors and other "`toy parser tools out there`_" * allow future compilers to optimize for decorators. With the hope of a JIT compiler for Python coming into existence at some point this tends to require the syntax for decorators to come before the function definition * move from the end of the function, where it's currently hidden, to the front where it is more `in your face`_ Andrew Kuchling has links to a bunch of the discussions about motivations and use cases `in his blog`_. Particularly notable is `Jim Huginin's list of use cases`_. .. _toy parser tools out there: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=mailman.1010809396.32158.python-list%40python.org .. _in your face: http://mail.python.org/pipermail/python-dev/2004-August/047112.html .. _in his blog: http://www.amk.ca/diary/archives/cat_python.html#003255 .. _Jim Huginin's list of use cases: http://mail.python.org/pipermail/python-dev/2004-April/044132.html Current Syntax ============== The current syntax for function decorators as implemented in Python 2.4a2 is:: @dec2 @dec1 def func(arg1, arg2, ...): pass This is equivalent to:: def func(arg1, arg2, ...): pass func = dec2(dec1(func)) without the intermediate assignment to the variable ``func``. The decorators are near the function declaration. The @ sign makes it clear that something new is going on here. The decorator statement is limited in what it can accept -- arbitrary expressions will not work. Guido preferred this because of a `gut feeling`_. .. _gut feeling: http://mail.python.org/pipermail/python-dev/2004-August/046711.html Syntax Alternatives =================== There have been `a large number`_ of different syntaxes proposed -- rather than attempting to work through these individual syntaxes, it's worthwhile to break the syntax discussion down into a number of areas. Attempting to discuss `each possible syntax`_ individually would be an act of madness, and produce a completely unwieldy PEP. .. _a large number: http://www.python.org/moin/PythonDecorators .. _each possible syntax: http://ucsu.colorado.edu/~bethard/py/decorators-output.py Decorator Location ------------------ The first syntax point is the location of the decorators. For the following examples, we use the @syntax used in 2.4a2. Decorators before the def statement are the first alternative, and the syntax used in 2.4a2:: @classmethod def foo(arg1,arg2): pass @accepts(int,int) @returns(float) def bar(low,high): pass There have been a number of objections raised to this location -- the primary one is that it's the first real Python case where a line of code has an effect on a following line. The syntax available in 2.4a3 requires one decorator per line (in a2, multiple decorators could be specified on the same line). People also complained that the syntax quickly got unwieldy when multiple decorators were used. The point was made, though, that the chances of a large number of decorators being used on a single function were small and thus this was not a large worry. Some of the advantages of this form are that the decorators live outside the method body -- they are obviously executed at the time the function is defined. Another advantage is that a prefix to the function definition fits the idea of knowing about a change to the semantics of the code before the code itself, thus you know how to interpret the code's semantics properly without having to go back and change your initial perceptions if the syntax did not come before the function definition. Guido decided `he preferred`_ having the decorators on the line before the 'def', because it was felt that a long argument list would mean that the decorators would be 'hidden' .. _he preferred: http://mail.python.org/pipermail/python-dev/2004-March/043756.html The second form is the decorators between the def and the function name, or the function name and the argument list:: def @classmethod foo(arg1,arg2): pass def @accepts(int,int),@returns(float) bar(low,high): pass def foo @classmethod (arg1,arg2): pass def bar @accepts(int,int),@returns(float) (low,high): pass There are a couple of objections to this form. The first is that it breaks easily 'greppability' of the source -- you can no longer search for 'def foo(' and find the definition of the function. The second, more serious, objection is that in the case of multiple decorators, the syntax would be extremely unwieldy. The next form, which has had a number of strong proponents, is to have the decorators between the argument list and the trailing ``:`` in the 'def' line:: def foo(arg1,arg2) @classmethod: pass def bar(low,high) @accepts(int,int),@returns(float): pass Guido `summarized the arguments`_ against this form (many of which also apply to the previous form) as: - it hides crucial information (e.g. that it is a static method) after the signature, where it is easily missed - it's easy to miss the transition between a long argument list and a long decorator list - it's cumbersome to cut and paste a decorator list for reuse, because it starts and ends in the middle of a line .. _summarized the arguments: http://mail.python.org/pipermail/python-dev/2004-August/047112.html The next form is that the decorator syntax goes inside the method body at the start, in the same place that docstrings currently live: def foo(arg1,arg2): @classmethod pass def bar(low,high): @accepts(int,int) @returns(float) pass The primary objection to this form is that it requires "peeking inside" the method body to determine the decorators. In addition, even though the code is inside the method body, it is not executed when the method is run. Guido felt that docstrings were not a good counter-example, and that it was quite possible that a 'docstring' decorator could help move the docstring to outside the function body. The final form is a new block that encloses the method's code. For this example, we'll use a 'decorate' keyword, as it makes no sense with the @syntax. :: decorate: classmethod def foo(arg1,arg2): pass decorate: accepts(int,int) returns(float) def bar(low,high): pass This form would result in inconsistent indentation for decorated and undecorated methods. In addition, a decorated method's body would start three indent levels in. Syntax forms ------------ * ``@decorator``:: @classmethod def foo(arg1,arg2): pass @accepts(int,int) @returns(float) def bar(low,high): pass The major objections against this syntax are that the @ symbol is not currently used in Python (and is used in both IPython and Leo), and that the @ symbol is not meaningful. Another objection is that this "wastes" a currently unused character (from a limited set) on something that is not perceived as a major use. * ``|decorator``:: |classmethod def foo(arg1,arg2): pass |accepts(int,int) |returns(float) def bar(low,high): pass This is a variant on the @decorator syntax -- it has the advantage that it does not break IPython and Leo. Its major disadvantage compared to the @syntax is that the | symbol looks like both a capital I and a lowercase l. * list syntax:: [classmethod] def foo(arg1,arg2): pass [accepts(int,int), returns(float)] def bar(low,high): pass The major objection to the list syntax is that it's currently meaningful (when used in the form before the method). It's also lacking any indication that the expression is a decorator. * list syntax using other brackets (``<...>``, ``[[...]]``, ...):: def foo(arg1,arg2): pass def bar(low,high): pass None of these alternatives gained much traction. The alternatives which involve square brackets only serve to make it obvious that the decorator construct is not a list. They do nothing to make parsing any easier. The '<...>' alternative presents parsing problems because '<' and '>' already parse as un-paired. They present a further parsing ambiguity because a right angle bracket might be a greater than symbol instead of a closer for the decorators. * ``decorate()`` The ``decorate()`` proposal was that no new syntax be implemented -- instead a magic function that used introspection to manipulate the following function. Both Jp Calderone and Philip Eby produced implementations of functions that did this. Guido was pretty firmly against this -- with no new syntax, the magicness of a function like this is extremely high: Using functions with "action-at-a-distance" through sys.settraceback may be okay for an obscure feature that can't be had any other way yet doesn't merit changes to the language, but that's not the situation for decorators. The widely held view here is that decorators need to be added as a syntactic feature to avoid the problems with the postfix notation used in 2.2 and 2.3. Decorators are slated to be an important new language feature and their design needs to be forward-looking, not constrained by what can be implemented in 2.3. * _`new keyword (and block)` This idea was the consensus alternate from comp.lang.python (more on this in `Community Consensus`_ below.) Robert Brewer wrote up a detailed `J2 proposal`_ document outlining the arguments in favor of this form. The initial issues with this form are: - It requires a new keyword, and therefore a ``from __future__ import decorators`` statement. - The choice of keyword is contentious. However ``using`` emerged as the consensus choice, and is used in the proposal and implementation. - The keyword/block form produces something that looks like a normal code block, but isn't. Attempts to use statements in this block will cause a syntax error, which may confuse users. A few days later, Guido `rejected the proposal`_ on two main grounds, firstly: ... the syntactic form of an indented block strongly suggests that its contents should be a sequence of statements, but in fact it is not -- only expressions are allowed, and there is an implicit "collecting" of these expressions going on until they can be applied to the subsequent function definition. ... and secondly: ... the keyword starting the line that heads a block draws a lot of attention to it. This is true for "if", "while", "for", "try", "def" and "class". But the "using" keyword (or any other keyword in its place) doesn't deserve that attention; the emphasis should be on the decorator or decorators inside the suite, since those are the important modifiers to the function definition that follows. ... Readers are invited to read `the full response`_. .. _J2 proposal: http://www.aminus.org/rbre/python/pydec.html .. _rejected the proposal: http://mail.python.org/pipermail/python-dev/2004-September/048518.html .. _the full response: http://mail.python.org/pipermail/python-dev/2004-September/048518.html * Other forms There are plenty of other variants and proposals on `the wiki page`_. .. _the wiki page: http://www.python.org/moin/PythonDecorators Why @? ------ There is some history in Java using @ initially as a marker in `Javadoc comments`_ and later in Java 1.5 for `annotations`_, which are similar to Python decorators. The fact that @ was previously unused as a token in Python also means it's clear there is no possibility of such code being parsed by an earlier version of Python, leading to possibly subtle semantic bugs. It also means that ambiguity of what is a decorator and what isn't is removed. That said, @ is still a fairly arbitrary choice. Some have suggested using | instead. For syntax options which use a list-like syntax (no matter where it appears) to specify the decorators a few alternatives were proposed: ``[|...|]``, ``*[...]*``, and ``<...>``. .. _Javadoc comments: http://java.sun.com/j2se/javadoc/writingdoccomments/ .. _annotations: http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html Current Implementation, History =============================== Guido asked for a volunteer to implement his preferred syntax, and Mark Russell stepped up and posted a `patch`_ to SF. This new syntax was available in 2.4a2. :: @dec2 @dec1 def func(arg1, arg2, ...): pass This is equivalent to:: def func(arg1, arg2, ...): pass func = dec2(dec1(func)) though without the intermediate creation of a variable named ``func``. The version implemented in 2.4a2 allowed multiple ``@decorator`` clauses on a single line. In 2.4a3, this was tightened up to only allowing one decorator per line. A `previous patch`_ from Michael Hudson which implements the list-after-def syntax is also still kicking around. .. _patch: http://www.python.org/sf/979728 .. _previous patch: http://starship.python.net/crew/mwh/hacks/meth-syntax-sugar-3.diff After 2.4a2 was released, in response to community reaction, Guido stated that he'd re-examine a community proposal, if the community could come up with a community consensus, a decent proposal, and an implementation. After an amazing number of posts, collecting a vast number of alternatives in the `Python wiki`_, a community consensus emerged (below). Guido `subsequently rejected`_ this alternate form, but added: In Python 2.4a3 (to be released this Thursday), everything remains as currently in CVS. For 2.4b1, I will consider a change of @ to some other single character, even though I think that @ has the advantage of being the same character used by a similar feature in Java. It's been argued that it's not quite the same, since @ in Java is used for attributes that don't change semantics. But Python's dynamic nature makes that its syntactic elements never mean quite the same thing as similar constructs in other languages, and there is definitely significant overlap. Regarding the impact on 3rd party tools: IPython's author doesn't think there's going to be much impact; Leo's author has said that Leo will survive (although it will cause him and his users some transitional pain). I actually expect that picking a character that's already used elsewhere in Python's syntax might be harder for external tools to adapt to, since parsing will have to be more subtle in that case. But I'm frankly undecided, so there's some wiggle room here. I don't want to consider further syntactic alternatives at this point: the buck has to stop at some point, everyone has had their say, and the show must go on. .. _Python wiki: http://www.python.org/moin/PythonDecorators .. _subsequently rejected: http://mail.python.org/pipermail/python-dev/2004-September/048518.html Community Consensus ------------------- This section documents the rejected J2 syntax, and is included for historical completeness. The consensus that emerged on comp.lang.python was the proposed J2 syntax (the "J2" was how it was referenced on the PythonDecorators wiki page): the new keyword ``using`` prefixing a block of decorators before the ``def`` statement. For example:: using: classmethod synchronized(lock) def func(cls): pass The main arguments for this syntax fall under the "readability counts" doctrine. In brief, they are: * A suite is better than multiple @lines. The ``using`` keyword and block transforms the single-block ``def`` statement into a multiple-block compound construct, akin to try/finally and others. * A keyword is better than punctuation for a new token. A keyword matches the existing use of tokens. No new token category is necessary. A keyword distinguishes Python decorators from Java annotations and .Net attributes, which are significantly different beasts. Robert Brewer wrote a `detailed proposal`_ for this form, and Michael Sparks produced `a patch`_. .. _detailed proposal: http://www.aminus.org/rbre/python/pydec.html .. _a patch: http://www.python.org/sf/1013835 As noted previously, Guido rejected this form, outlining his problems with it in `a message`_ to python-dev and comp.lang.python. .. _a message: http://mail.python.org/pipermail/python-dev/2004-September/048518.html Examples ======== Much of the discussion on ``comp.lang.python`` and the ``python-dev`` mailing list focuses on the use of decorators as a cleaner way to use the ``staticmethod()`` and ``classmethod()`` builtins. This capability is much more powerful than that. This section presents some examples of use. 1. Define a function to be executed at exit. Note that the function isn't actually "wrapped" in the usual sense. :: def onexit(f): import atexit atexit.register(f) return f @onexit def func(): ... Note that this example is probably not suitable for real usage, but is for example purposes only. 2. Define a class with a singleton instance. Note that once the class disappears enterprising programmers would have to be more creative to create more instances. (From Shane Hathaway on ``python-dev``.) :: def singleton(cls): instances = {} def getinstance(): if cls not in instances: instances[cls] = cls() return instances[cls] return getinstance @singleton class MyClass: ... 3. Add attributes to a function. (Based on an example posted by Anders Munch on ``python-dev``.) :: def attrs(**kwds): def decorate(f): for k in kwds: setattr(f, k, kwds[k]) return f return decorate @attrs(versionadded="2.2", author="Guido van Rossum") def mymethod(f): ... 4. Enforce function argument and return types. Note that this copies the func_name attribute from the old to the new function. func_name was made writable in Python 2.4a3:: def accepts(*types): def check_accepts(f): assert len(types) == f.func_code.co_argcount def new_f(*args, **kwds): for (a, t) in zip(args, types): assert isinstance(a, t), \ "arg %r does not match %s" % (a,t) return f(*args, **kwds) new_f.func_name = f.func_name return new_f return check_accepts def returns(rtype): def check_returns(f): def new_f(*args, **kwds): result = f(*args, **kwds) assert isinstance(result, rtype), \ "return value %r does not match %s" % (result,rtype) return result new_f.func_name = f.func_name return new_f return check_returns @accepts(int, (int,float)) @returns((int,float)) def func(arg1, arg2): return arg1 * arg2 5. Declare that a class implements a particular (set of) interface(s). This is from a posting by Bob Ippolito on ``python-dev`` based on experience with `PyProtocols`_. :: def provides(*interfaces): """ An actual, working, implementation of provides for the current implementation of PyProtocols. Not particularly important for the PEP text. """ def provides(typ): declareImplementation(typ, instancesProvide=interfaces) return typ return provides class IBar(Interface): """Declare something about IBar here""" @provides(IBar) class Foo(object): """Implement something here...""" .. _PyProtocols: http://peak.telecommunity.com/PyProtocols.html Of course, all these examples are possible today, though without syntactic support. Open Issues =========== 1. It's not yet certain that class decorators will be incorporated into the language at a future point. Guido expressed skepticism about the concept, but various people have made some `strong arguments`_ (search for ``PEP 318 -- posting draft``) on their behalf in ``python-dev``. It's exceedingly unlikely that class decorators will be in Python 2.4. .. _strong arguments: http://mail.python.org/pipermail/python-dev/2004-March/thread.html 2. The choice of the ``@`` character will be re-examined before Python 2.4b1. Copyright ========= This document has been placed in the public domain. .. Local Variables: mode: indented-text indent-tabs-mode: nil sentence-end-double-space: t fill-column: 70 End: From middleware04 at eecg.toronto.edu Sat Sep 4 02:10:41 2004 From: middleware04 at eecg.toronto.edu (Middleware 04) Date: Sun Sep 5 16:56:14 2004 Subject: Middleware'04 Call for Participation Message-ID: =09=09 ACM/IFIP/USENIX Middleware 2004 =09=09=09Call for Participation =09=09 Renaissance Toronto Hotel at SkyDome =09=09 Toronto, Ontario, Canada =09=09 October 18th - 22nd, 2004 =09 http://www.eecg.utoronto.ca/middleware2004/ Important Dates: Early Registration Rate Ends: 22 September 2004 Last Day to Pre-Register: 06 October 2004 Hotel Cut-Off Date: 25 September 2004 Hotel room reservations (Canada/US): 1-800-237-1512 Program Summary: For details and exact dates see: http://www.eecg.utoronto.ca/middleware20= 04/ Keynotes: How Wrong Can You Be? Getting Lost on the Road to Massive Scalability Werner Vogels, Director of Systems Research, Amazon.com Aspect-Oriented Programming - The promise and the controversy Gregor Kiczales, University of British Columbia Main conference program Single-track conference with 26 technical paper presentations and 6 work-in-progress presentations. For details see http://www.eecg.toronto.edu/middleware2004/programstruct.htm Tutorials (Monday and Tuesday): Building Distributed .NET Applications - Technologies, Architecture, Comparison with J2EE. By Michael Stal, Siemens AG Germany (Monday, full day.) Getting Started with Aspect-Oriented Programming for Middleware. By Yvonne Coady, University of Victoria, Canada (Monday, morning.) Middleware and Data Management for Sensor Networks. By Nalini Venkatasubramanian, University of California, Irvine, USA and Sharad Mehrotra,University of California, Irvine, USA (Tuesday, morning.) Enterprise Integration Patterns: Asynchronous Messaging Architectures in Practice. By Gregor Hohpe, ThoughtWorks Inc., USA (Tuesday, morning.) Data Grid Management Systems. By Arun Swaran Jagatheesan, University of California, San Diego, USA (Tuesday, afternoon.) DDS: The Real-Time Publish-Subscribe Standard for Data Distribution By Gerardo Pardo-Castellote, Real-Time Innovations Inc., USA (Tuesday, afternoon.) Workshops (Monday and Tuesday): 2nd Workshop on Middleware for Grid Computing. Organizers: Bruno Schulze - National Scientific Computing Laboratory (Brazil) and Radha Nandkumar - NCSA/UIUC (USA) (Monday, October 18th.) 2nd Workshop on Middleware for Pervasive and Ad-Hoc Computing Organizer: Paddy Nixon - Strathclyde University (UK) (Monday, October 18th.) 3rd Workshop on Adaptive and Reflective Middleware. Organizer: Fabio Costa, Federal University of Goi=E1s - (Brazil) and Nanbor Wang - Tech-X Corporation (USA) (Tuesday, October 19th.) 1st Middleware Doctoral Symposium. Organizers: Edward Curry - National University of Ireland (Ireland) and Doug Lea - SUNY Oswego (USA) (Tuesday, October 19th.) --- From anthony at python.org Sun Sep 5 09:58:15 2004 From: anthony at python.org (Anthony Baxter) Date: Sun Sep 5 16:56:14 2004 Subject: UPDATE: New 2.4a3 Windows installer and random.py patch available Message-ID: <413AC717.5010707@python.org> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Due to a goof in the packaging scripts, the Windows installer that was released on Friday for 2.4a3 broke file associations for .py files. There's a fixed installer (python-2.4a3.2.msi) available from the Python 2.4 web page. There's also a patch for the breakage for random.py on systems that don't have support for the new os.urandom() call. This is also available from the Python 2.4 web page. ~ http://www.python.org/2.4/ We apologise to those affected by these bugs, and I'd like to thank the folks who downloaded the release and let us know about the problems so promptly. Anthony Baxter anthony@python.org Python Release Manager (on behalf of the entire python-dev team) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFBOscVDt3F8mpFyBYRAk2xAJ9KcxQf5JOTmD6dpOiBShe/8jnWSwCgnL/S hN44eBC0mqygEhltFK2W9Ig= =W445 -----END PGP SIGNATURE----- From dm-info at 163.com Sun Sep 5 10:53:33 2004 From: dm-info at 163.com (tocer) Date: Sun Sep 5 16:56:15 2004 Subject: ANN: pyCallTips 0.6 released Message-ID: <6aa4af73.0409050053.2a2ba253@posting.google.com> If some pythoner complain that Vim don't support calltips of python, now I implement it. Try it and enjoy it. http://vim.sourceforge.net/scripts/script.php?script_id=1074 Intro: This script simualate code calltips in a new bottow window of Vim. In fact, it display python help doc strings of word under the cursor by scanning the imported modules in the current file. 0.6 changed: 1.enhanced 0.5 2.fixed some bugs 3.you can execute "CT_unmapkeys" to pause the script and "CT_mapkeys" to resume . From fredrik at pythonware.com Sun Sep 5 16:07:52 2004 From: fredrik at pythonware.com (Fredrik Lundh) Date: Sun Sep 5 16:56:15 2004 Subject: ANN: PythonDoc 2.1 beta 2 (september 5, 2004) Message-ID: <000e01c49351$bc35e820$c200a8c0@wmc3fuze4sqif8> PythonDoc is a documentation tool for Python, inspired by JavaDoc. Like JavaDoc, PythonDoc scans your Python code for doc comments, and generates API documentation in XML and HTML formats. Python- Doc supports basic JavaDoc tags like @param and @return, and adds a few Python-specific tags. You can use PythonDoc comments to describe module-level variables and constants, functions, classes, methods, and attributes. PythonDoc comes with a standard HTML generator, but you can plug in your own output handlers, or use XSTL or other tools to process the PythonDoc XML format. PythonDoc 2.1 beta 2 is a bugfix release, which handles 2.4 decorators a bit better than earlier releases. For more information on the 2.1 beta releases, see: http://article.gmane.org/gmane.comp.python.announce/4582 Downloads: http://effbot.org/downloads#pythondoc http://effbot.org/downloads#elementtree enjoy /F From fredrik at pythonware.com Sun Sep 5 16:11:04 2004 From: fredrik at pythonware.com (Fredrik Lundh) Date: Sun Sep 5 16:56:16 2004 Subject: ANN: WCK for Tkinter 1.1 alpha 1 (september 5, 2004) Message-ID: <001101c49352$2eb769f0$c200a8c0@wmc3fuze4sqif8> The Widget Construction Kit (WCK) is an extension API that allows you to implement custom widgets in pure Python. The WCK can be (and is being) used for everything from light-weight display widgets to full-blown editor frameworks. The Tkinter3000 implementation of the WCK supports all recent versions of Python and Tk/Tkinter. The 1.1 alpha release adds the ability to change widget controllers, and also adds an experimental native graphics driver for Windows. Introduction: http://www.effbot.org/zone/wck-1.htm Downloads: http://www.effbot.org/downloads#tkinter3000 Documentation: http://www.effbot.org/zone/wck.htm http://www.effbot.org/zone/wck-api.htm enjoy /F From mark at pyzine.com Sun Sep 5 19:43:30 2004 From: mark at pyzine.com (Mark) Date: Mon Sep 6 18:27:26 2004 Subject: Py Looking for new article submissions Message-ID: <19C4B766-FF63-11D8-96E4-000D932A0486@pyzine.com> Hi, We are busy working on Py Issue 7 and 8 and are looking for a few more article submissions. Please see our Writers Guidelines at: http://www.pyzine.com/writefor.html and get paid to write about Python! Cheers, Mark From fuzzyman at gmail.com Mon Sep 6 09:59:16 2004 From: fuzzyman at gmail.com (Michael Foord) Date: Mon Sep 6 18:27:27 2004 Subject: [ANN] Pythonutils Updates Message-ID: <6f402501.0409052359.48c41dc1@posting.google.com> Pythonutils Updates Yup... another exciting update to the modules/scripts maintained at - http://www.voidspace.org.uk/atlantibots/pythonutils.html *UPDATE* approx.py Version 0.5.0 This is the python cgiproxy for browsing in a restricted internet environment. It's now very nearly useable ;-) Fixed POST requests (doh) - except for list values and file uploads. Will now use cookielib if it's available and maintains separate cookie files for separate users - with both cookielib and ClientCookie. Now proxying User-agent header. Lot's more still to work on - urls in css, file uploads and authentication are the next ones. (See the TODO list - nothing insurmountable...) *UPDATE* scraper.py Version 1.3.0 A patch by Paul Perkins that fixes a bug when handling tags without attributes. *UPDATE* proxycleaner.py Version 1.0.1 Will better clean up nntp links mangled by the perl cgiproxy ;-) (approx.py doesn't mangle these...) *UPDATE* dataenc.py Version 1.1.4 Improvements since last public release : Slight docs improvement. Speed improvement in binleave and binunleave. Added the unexpired alias and the check_pass function. Changed license text. *NEW* cookielib_example.py Version 1.0.0 An example of code for fetching URLs that will happily use ClientCookie *or* cookielib (Python 2.4) *or* neither. This code is at - http://www.voidspace.org.uk/atlantibots/recipebook.html *UPDATE* configobj.py Version 3.2.1 Bugfix... oops. *UPDATE* listquote.py Version 1.1.1 Improved docs All the best, Fuzzyman From michal at cihar.com Mon Sep 6 12:44:48 2004 From: michal at cihar.com (=?UTF-8?B?TWljaGFsIMSMaWhhxZk=?=) Date: Mon Sep 6 18:27:28 2004 Subject: ANNOUNCE: python-gammu 0.6 and wammu 0.7 Message-ID: <413C3FA0.4090304@cihar.com> Hi I just released new versions of python-gammu and wammu. Both are mostly bugfix releases, but there are also some new functions. Wammu 0.7 ========= New features: * Signal and battery state continuous monitoring. * Support for sending messages to multiple recipients. Bug fixes: * Should work with wxPython 2.5. Wammu is phone manager written using wxPython and python-gammu, see http://www.cihar.com/gammu/wammu python-gammu 0.6 ================ News: * Library is now thread safe. python-gammu is python bindings for gammu, see http://www.cihar.com/gammu/python -- Michal ?iha? | http://cihar.com -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 256 bytes Desc: OpenPGP digital signature Url : http://mail.python.org/pipermail/python-announce-list/attachments/20040906/4dc96bc8/signature.pgp From paul at zope-europe.org Tue Sep 7 14:57:55 2004 From: paul at zope-europe.org (Paul Everitt) Date: Tue Sep 7 15:28:22 2004 Subject: ANN: Plone Conferene 2004, Zope 3 and content management Message-ID: <892D2686-00CD-11D9-A5C9-000D932B6FF0@zope-europe.org> Zope, a Python-based application server, is migrating to the component architecture of Zope 3. "Be more Pythonic" is a major goal of Zope 3, while also letting Python developers eat Zope one bite at a time through better modularization. The Zope 3 component architecture is a major theme at the Plone Conference in Vienna, Sep 20-22: http://plone.org/events/conferences/2 The tutorial track includes a Zope 3 tutorial from Jim Fulton, a tutorial by Martijn Faassen on the "Five" project to bring Zope 3 into Zope 2, and even a tutorial on Boa Constructor with Riaan Booysen. Also, the developers of several content management products for Zope are getting together before the conference for a sprint on "The Future of Content Management with Zope 3". Jim's conference keynote will discuss the results of this effort. This will be a major conference, with attendance expected to top the 250 mark. Registration is still open: http://plone.org/events/conferences/2/Registration Do you really want to miss a conference held in a Vienna discotheque? Sign up soon and come join the fun! --Paul From tim at zope.com Tue Sep 7 21:10:31 2004 From: tim at zope.com (Tim Peters) Date: Tue Sep 7 23:51:52 2004 Subject: ZODB 3.2.4 release candidate 1 released In-Reply-To: Message-ID: <20040907191032.B8E353B8038@smtp.zope.com> I'm pleased to announce the release of ZODB 3.2.4c1. This corresponds to the ZODB (and ZEO) that we intend to ship with Zope 2.7.3. You can download a source tarball or Windows installer from: http://zope.org/Products/ZODB3.2 3.2.4c1 incorporates several small bugfixes, and one crucial new behavior: it's incorrect to attempt to close a connection when objects from that connection are still in a modified state. When an application modifies, or creates, a persistent object, it should always abort() or commit() the transaction before closing the connection. However, ZODB didn't enforce this, and applications that closed a connection with pending modifications could get into catastrophic trouble as a result. For example, it was easy to create dangling references in the database this way (references to objects that don't exist, resulting in POSKeyError upon an attempt to load them). ZODB 3.2.4c1 raises the new ConnectionStateError if an attempt to cloase a connection with pending modifications is made. See the news file for details: http://zope.org/Products/ZODB3.2/NEWS The intent is that 3.2.4c1 will be released again as 3.2.4 (final) shortly before the Zope 2.7.3 release. Note that ZODB 3.2.4c1 does not support Zope 2.7.2, because the Zope 2.7.2 publishing subsystem is an example of application code that didn't always finish a transaction before closing connections. ZODB 3.2.4c1 can be used with the current Zope Zope-2_7-branch branch. Note that ZODB 3.2.4c1 does not support Zope X3 (Zope 3 requires ZODB 3.3 -- as will Zope 2.8). From python-url at phaseit.net Tue Sep 7 22:31:25 2004 From: python-url at phaseit.net (Cameron Laird) Date: Tue Sep 7 23:51:53 2004 Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Sep 7) Message-ID: QOTW: "The Canvas widget has amazed me with its flexibility and power: I love it!" -- Marc Boeren "For some kind of applications (namely application doing vector drawing), it is nearly impossible to consider anything else than Tkinter *because* of the Canvas widget..." -- Eric Brunel Unit testing lies near Pythonia's heart. Tim Peters and Michele Simoniato exhibit modern ways of thinking about doctest and unittest. http://groups.google.com/groups?frame=left&th=461cc8799e9fe825 Hyperlink extraction is one of the examples the pyparse distribution works out. http://groups.google.com/groups?frame=left&th=55d9cd9980ca727c Guido speaks--on decorators, J2, and how to steward Python responsibly. Important reading: http://article.gmane.org/gmane.comp.python.devel/63486 Jonathon Ellis automates RSS for Python job listings. http://groups.google.com/groups?selm=mailman.2701.1093995339.5135.python-announce-list%40python.org The state-of-Python-art under MacOS advances rapidly. Here's how to access a keychain: http://bdash.bluewire.net.nz/2004/08/30/example-code-mac-os-x-keychain-access-from-python/ ======================================================================== Everything Python-related you want is probably one or two clicks away in these pages: Python.org's Python Language Website is the traditional center of Pythonia http://www.python.org Notice especially the master FAQ http://www.python.org/doc/FAQ.html PythonWare complements the digest you're reading with the marvelous daily python url http://www.pythonware.com/daily Mygale is a news-gathering webcrawler that specializes in (new) World-Wide Web articles related to Python. http://www.awaretek.com/nowak/mygale.html While cosmetically similar, Mygale and the Daily Python-URL are utterly different in their technologies and generally in their results. comp.lang.python.announce announces new Python software. Be sure to scan this newsgroup weekly. http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python.announce Brett Cannon continues the marvelous tradition established by Andrew Kuchling and Michael Hudson of intelligently summarizing action on the python-dev mailing list once every other week. http://www.python.org/dev/summary/ The Python Package Index catalogues packages. http://www.python.org/pypi/ The somewhat older Vaults of Parnassus ambitiously collects references to all sorts of Python resources. http://www.vex.net/~x/parnassus/ Much of Python's real work takes place on Special-Interest Group mailing lists http://www.python.org/sigs/ The Python Business Forum "further[s] the interests of companies that base their business on ... Python." http://www.python-in-business.org Python Success Stories--from air-traffic control to on-line match-making--can inspire you or decision-makers to whom you're subject with a vision of what the language makes practical. http://www.pythonology.com/success The Python Software Foundation (PSF) has replaced the Python Consortium as an independent nexus of activity. It has official responsibility for Python's development and maintenance. http://www.python.org/psf/ Among the ways you can support PSF is with a donation. http://www.python.org/psf/donate.html Cetus collects Python hyperlinks. http://www.cetus-links.org/oo_python.html Python FAQTS http://python.faqts.com/ The Cookbook is a collaborative effort to capture useful and interesting recipes. http://aspn.activestate.com/ASPN/Cookbook/Python Among several Python-oriented RSS/RDF feeds available are http://www.python.org/channews.rdf http://bootleg-rss.g-blog.net/pythonware_com_daily.pcgi http://python.de/backend.php For more, see http://www.syndic8.com/feedlist.php?ShowMatch=python&ShowStatus=all The old Python "To-Do List" now lives principally in a SourceForge reincarnation. http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse http://python.sourceforge.net/peps/pep-0042.html The online Python Journal is posted at pythonjournal.cognizor.com. editor@pythonjournal.com and editor@pythonjournal.cognizor.com welcome submission of material that helps people's understanding of Python use, and offer Web presentation of your work. *Py: the Journal of the Python Language* http://www.pyzine.com Archive probing tricks of the trade: http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python&num=100 http://groups.google.com/groups?meta=site%3Dgroups%26group%3Dcomp.lang.python.* Previous - (U)se the (R)esource, (L)uke! - messages are listed here: http://www.ddj.com/topics/pythonurl/ http://purl.org/thecliff/python/url.html (dormant) or http://groups.google.com/groups?oi=djq&as_q=+Python-URL!&as_ugroup=comp.lang.python Suggestions/corrections for next week's posting are always welcome. E-mail to should get through. To receive a new issue of this posting in e-mail each Monday morning (approximately), ask to subscribe. Mention "Python-URL!". -- The Python-URL! Team-- Dr. Dobb's Journal (http://www.ddj.com) is pleased to participate in and sponsor the "Python-URL!" project. From aahz at pythoncraft.com Tue Sep 7 23:59:51 2004 From: aahz at pythoncraft.com (Aahz) Date: Wed Sep 8 05:52:16 2004 Subject: REMINDER: BayPIGgies: September 9, 7:30pm Message-ID: <20040907215950.GA23371@panix.com> The next meeting of BayPIGgies will be Thurs September 9 at 7:30pm. It will feature a presentation about pyscheme by Danny Yoo. BayPIGgies meetings are in Stanford, California. For more information and directions, see http://www.baypiggies.net/ Before the meeting, we're returning to Jing Jing at 6pm for dinner in downtown Palo Alto. Ducky Sherwood is handling that; please send RSVPs to ducky@osafoundation.org by 4pm Thurs. Discussion of dinner plans is handled on the BayPIGgies mailing list. Here's a repeat of Ducky's post: Jing Jing is a Chinese restaurant in downtown Palo Alto at 443 Emerson St. It is very close to the CalTrain station, and if you can't get someone to give you a ride to the meeting afterwards, the free Stanford Marguarite shuttle runs frequently between Stanford and the CalTrain station. Jing Jing official site, with link to map at bottom: http://www.jingjingonline.com/ [1] Why Jing Jing again? Because of the very sparse attendance at Paxti's Pizza last time. Advance notice: The October 14 meeting agenda has not been set. Please send e-mail to baypiggies@baypiggies.net if you want to make a presentation. -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ "I saw `cout' being shifted "Hello world" times to the left and stopped right there." --Steve Gonedes From anthony at computronix.com Wed Sep 8 00:25:45 2004 From: anthony at computronix.com (Anthony Tuininga) Date: Wed Sep 8 05:52:16 2004 Subject: cx_Freeze 3.0 beta3 Message-ID: <413E3569.2010405@computronix.com> What is cx_Freeze? cx_Freeze is a set of utilities for freezing Python scripts into executables using many of the techniques found in Thomas Heller's py2exe, Gordon McMillan's Installer and the Freeze utility that ships with Python itself. Where do I get it? http://starship.python.net/crew/atuining http://www.computronix.com/utilities.shtml (it may be a few days before the second site is updated) What's new? 1) Explicitly include the warnings module so that at runtime warnings are suppressed as when running Python normally. 2) Improve the extension loader so that an ImportError is raised when the dynamic module is not located; otherwise an error about missing attributes is raised instead. 3) Extension loaders are only created when copying dependencies since the normal module should be loadable in the situation where a Python installation is available. 4) Added support for Python 2.4. 5) Fixed the dependency checking for wxPython to be a little more intelligent. -- Anthony Tuininga anthony@computronix.com Computronix Distinctive Software. Real People. Suite 200, 10216 - 124 Street NW Edmonton, AB, Canada T5N 4A3 Phone: (780) 454-3700 Fax: (780) 454-3838 http://www.computronix.com From dyoo at hkn.eecs.berkeley.edu Wed Sep 8 03:11:49 2004 From: dyoo at hkn.eecs.berkeley.edu (Daniel Yoo) Date: Wed Sep 8 05:52:17 2004 Subject: [ANNOUNCE] PyScheme 1.5 release Message-ID: PyScheme is a small implementation of the Scheme programming language. The 1.5 release can be found here: http://hkn.eecs.berkeley.edu/~dyoo/python/pyscheme/ PyScheme is in pure Python, and has been written (somewhat) careful to try to avoid eating up too much of the stack, even if given unusual input. It provides some of the core features in Scheme: ### >>> import pyscheme.scheme >>> pyscheme.scheme.repl(pyscheme.scheme.AnalyzingInterpreter()) Welcome to PyScheme! Type: (QUIT) to quit. [PyScheme] >>> (define (map f l) [......1)] >>> (if (null? l) [......2)] >>> '() [......2)] >>> (cons (f (car l)) [......3)] >>> (map f (cdr l))))) ok [PyScheme] >>> (map (lambda (x) (* x x)) '(1 2 3 4 5 6 7 8 9 10)) (1 4 9 16 25 36 49 64 81 100) ### And it also includes CALL/CC. People can play around with continuations in the comfort of the Python interpreter: ### >>> from pyscheme.scheme import AnalyzingInterpreter >>> interp = AnalyzingInterpreter() >>> from pyscheme.parser import parse as p >>> interp.eval(p("(define k '())")) 'ok' >>> interp.eval(p(""" ... (+ 5 (call/cc (lambda (k1) (set! k k1) 0))) ... """)) 5 >>> interp.eval(p("(k 7)")) 12 ### I'll be giving a small presentation about PyScheme in the next Baypiggies meeting on Thursday, September 9th, and I'll put up the notes of that presentation online, as soon as I'm done writing them. *grin* I hope this helps! From stani_ at hotmail.com Wed Sep 8 19:48:42 2004 From: stani_ at hotmail.com (SM) Date: Thu Sep 9 15:25:22 2004 Subject: SPE 0.5.1.F Python IDE with wxGlade, Pychecker & Blender support Message-ID: <99230dbb.0409080948.637407e3@posting.google.com> Anyone wanting to sponsor SPE by providing free zope webspace with FTP access for my personal website (http://www.stani.be)? That would be great. Contact me s_t_a_n_i at yahoo dot com What's new? Tab indentation fix and htmlWindow fix See http://spe.pycs.net for more info. From nas at mems-exchange.org Wed Sep 8 23:39:52 2004 From: nas at mems-exchange.org (Neil Schemenauer) Date: Thu Sep 9 15:25:23 2004 Subject: [ANNOUNCE] Durus object database version 1.2 Message-ID: <20040908213952.GA23947@mems-exchange.org> Durus is a Python object database. It offers an easy way to maintain a consistent persistent collection of Python object instances used by one or more processes. This release contains the following changes: * Add 'durus' command line tool. * Add 'BTree' class. * Fix the pack() method on Windows (close the file before renaming it). For more information, see the web site: http://www.mems-exchange.org/software/durus/ From ianb at colorstudy.com Thu Sep 9 00:55:45 2004 From: ianb at colorstudy.com (Ian Bicking) Date: Thu Sep 9 15:25:23 2004 Subject: Chicago Python Users Group Meeting, September 9 Message-ID: <413F8DF1.2070809@colorstudy.com> The Chicago Python User Group, ChiPy, will have its next meeting on Thursday, September 9, starting at 7pm. For more information on ChiPy see http://chipy.org Skip Montanaro will be giving a presentation on SpamBayes (spambayes.sf.net), a spam filtering tool (written in Python, of course). He'll describe how the software works, some of the techniques used to filter spam. In addition his involvement in SpamBayes, Skip is also one of the core maintainers of the Python interpreter. There will also be time to chat, and many opportunities to ask questions. We encourage people at all levels to attend. Location -------- This month we will be meeting in North Chicago, at Imaginary Landscape: 5121 N. Ravenswood. It's close to the Ravenswood stop on the North Short Metra line, and a modest hike from the CTA brown line (Damen stop) and red line (Argyle stop). Parking is available out front. There will be wireless connectivity. About ChiPy ----------- This will be ChiPy's fourth meeting. We meet once a month, tentatively on the second Thursday of the month. If you can't come this month, please join our mailing list: http://lonelylion.com/mailman/listinfo/chipy From mailingme at deimerich.com Thu Sep 9 04:10:52 2004 From: mailingme at deimerich.com (Jody Burns) Date: Thu Sep 9 15:25:24 2004 Subject: m3ute2 0.2.0.0 (first public release!) Message-ID: <413FBBAC.2000403@deimerich.com> m3ute2 is a command-line tool for copying lists of files (or directories, or single files) with extensive filename-level filtering options. http://sf.net/projects/m3ute2/ m3ute2 is a program I developed in order to copy subsets of my music collection from my desktop computer to my laptop so I could listen to it while on the road. It has grown from that humble beginning to encompass a variety of features that give the user fine control over how files are copied. It also can tell you if there is enough space at the destination for the files you want to copy. m3ute2 can resume, skip, or entirely overwrite partially copied files. m3ute2 locks both the source and destination file during copying so that file corruption is less likely to occur. m3ute2 can apply user-supplied regular expressions or standard UNIX filename matching patterns (such as the classic '*.*') when determining if a specific file will be copied. m3ute2 can create reports about lists of files before you copy them to give you statistical information about the files and estimations about how long the copy operation will take and how much space will be used at the destination. m3ute2 will warn you if you attempt to copy an amount of information which exceeds the usable capacity of the destination, either through physical limitations or disk usage quotas. m3ute2 can also interface with the SysInternals contig.exe file defragmentation tool when copying to a local volume so the files at your destination will be as contiguous as possible. m3ute2 is implemented purely in Python and is distributed in both source and Windows binary installer forms. m3ute2 currently only works on Windows 2000/XP/Server 2003 but porting it to a POSIX system would be a small task and we would welcome any suggestions or help the community has to offer on this subject. Come check it out! m3ute2 is GPL'd and we'd love comments or suggestions. http://sf.net/projects/m3ute2/ From webmaster at keyphrene.com Fri Sep 10 14:26:18 2004 From: webmaster at keyphrene.com (webmaster@keyphrene.com) Date: Sat Sep 11 16:39:17 2004 Subject: ANN: Naja 1.0.7 is now available Message-ID: <41419d3a$0$1284$626a14ce@news.free.fr> Naja is a download manager and a website grabber written in Python/wxPython.You can add some plugins (newsreader, FTP client,WebDAV client) and take control of your downloads from your office. Naja supports proxy(HTTP, HTTPS, FTP, SOCKS v4a, SOCKS v5), and use some authentication methods. The downloading maybe achieved by splitting the file being downloaded into several parts and downloading these parts at the same time (HTTP, HTTPS, FTP). Donwload speeds are increased by downloading the file from the mirrors sites, when the sites propose it. Others features: Csv filter Cheksums (CRC32, MD2, MD4, MD5, SHA, SHA1, MDC2, RMD160) Crypt (Only for the eXtended version) and Decrypt (AES, DES, 3DES ...) newsreader, newsposter (uue, yEnc) CGI & WebDAV Server Web Interface basic and digest authentication for client and server Compress and decompress (zip, tar.gz, tar.bz2) Picture viewer Naja is available for download from the Keyphrene web site: http://www.keyphrene.com/products/naja From dev at bacademy.com Sat Sep 11 00:09:44 2004 From: dev at bacademy.com (dev) Date: Sat Sep 11 16:39:18 2004 Subject: Announcing PyQt RSS Viewer Message-ID: <200409110009.44307.dev@bacademy.com> Announcing PyQt RSS Viewer 0.1 For less that 150 lines of manually written code, it does a lot, thanks to harnessing powerful libs around it. Feel free to improve on it. See http://starship.python.net/crew/hpa/pyqt-rss.html for more. From sheldonplankton at yahoo.com Sat Sep 11 06:02:07 2004 From: sheldonplankton at yahoo.com (Sheldon Plankton) Date: Sat Sep 11 16:39:19 2004 Subject: fledgling Python online forum Message-ID: <2e05134b.0409102002.28742eee@posting.google.com> Hi, I have put together a prototype of a Python Programmmers forum. It is similar to perlmonk.org, yet not as advanced in functionality. If such a site might interest you please visit it at http://66.32.187.134 I haven't chosen where I'll eventually host the site. Why not take a look and post a commment? Thanks Plankton From troy at gci.net Sat Sep 11 11:58:49 2004 From: troy at gci.net (Troy Melhase) Date: Sat Sep 11 16:39:19 2004 Subject: ANN: ProfitPy 0.1 Message-ID: <200409110158.49333.troy@gci.net> ProfitPy - An Automated Stock Trading Toolkit for Python ============================================================================= ProfitPy 0.1 Released 11 September 2004 What is ProfitPy? ----------------------------------------------------------------------------- ProfitPy is a set of libraries and tools for the development, testing, and execution of automated stock trading systems[1]. The main web site for the toolkit is here: http://profitpy.sourceforge.net/ Specifically, ProfitPy is a collection of Python packages, modules, and scripts that work together to help you implement an automated stock trading program (or programs). The package features: * A library with classes for accounts, orders, tickers, and more * A GUI program for executing and plotting trades in real-time[2] * A GUI tool to collect ticker data for off-line use * A CLI tool to back-test trading strategies * Dozens of technical indicators and plotting widgets to display them * An X11 keystroke tool for automating the TWS application Screenshots ----------------------------------------------------------------------------- A picture is worth a thousand words. It beats documentation, at least: http://profitpy.sourceforge.net/screenshots.html Where can I get ProfitPy? ----------------------------------------------------------------------------- ProfitPy is available for download from SourceForge: http://sourceforge.net/projects/profitpy What are the requirements? ----------------------------------------------------------------------------- ProfitPy requires the following packages. Newer versions may (or may not!) be substituted: * Python 2.3.4 http://www.python.org/ * PyKDE 3.11.3 http://www.riverbankcomputing.co.uk/pykde/ * PyQwt 4.0rc0 http://sourceforge.net/projects/pyqwt/ * SciPy 0.3 http://www.scipy.org/ * IbPy 0.4 http://sourceforge.net/projects/ibpy/ ProfitPy can make use of these optional components as well: * The Eric3 Python IDE http://www.die-offenbachs.de/detlev/eric3.html The ProfitPy main GUI features a source code viewing widget. If the Eric3 IDE is present and importable, its source editor widget will be used instead. * X11::GUITest http://sourceforge.net/projects/x11guitest The main GUI and the collection tool make use of a keystroke automation script for TWS. This script requires the X11::GUITest Perl package. ProfitPy applications and tools connect to the Interactive Brokers[3] client application to receive data and send orders. This system, TWS, requires a web browser capable of executing Sun(R) Java(tm) applets. TWS can also be started directly with Sun(R) Java(tm) and the stand-alone package supplied by IB. What is Python? ----------------------------------------------------------------------------- >From the "What is Python?" page (http://python.org/doc/Summary.html): Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java. Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface. The Python implementation is portable: it runs on many brands of UNIX, on Windows, DOS, OS/2, Mac, Amiga... If your favorite system isn't listed here, it may still be supported, if there's a C compiler for it. Ask around on comp.lang.python -- or just try compiling Python yourself. The Python implementation is copyrighted but freely usable and distributable, even for commercial use. What is TWS? ----------------------------------------------------------------------------- >From the page "Trader Execution and Clearing System Features" (http://interactivebrokers.com/html/companyInfo/market_ib.html): * IB's Trader Workstation can be run directly from your browser, or you can install it on your PC and run it from your desktop. This Java based application allows traders to quickly enter orders and see results. * Direct Access: Unlike other "online" brokers that send your order through an e-mail type system, IB offers a direct-access order entry system that transmits your order to the proper market center, usually within one second of entry. * Real-Time Streaming Quotes: Display real-time, streaming quotes for markets of interest to the investor. Quotes are live and change continuously as the markets change, no periodic manual update or "refresh" is required. What else? ----------------------------------------------------------------------------- ProfitPy is Free Software and is concordantly licensed under the GPL. Refer to the LICENSE file in the distribution for more information. I never intended to release this code to the public. Much of it is specific to my trading applications. Please note that the superficial design flaws are very important, as they hide the fundamental ones. YMMV. ProfitPy is not a product of Interactive Brokers, nor am I affiliated with IB. I am a satisfied IB customer, of course. The TWS demo system is available here: http://interactivebrokers.com/cgi-pub/jtslink.pl?user_name=edemo Thank you! ----------------------------------------------------------------------------- Thank you, for I am very interested in your experience with ProfitPy. Please drop me an note with any feedback you have. -- Troy Melhase, troy@gci.net -- I am the Christian the Devil warned you about. [1] I trade stocks, not futures, options, or anything else, just stocks. ProfitPy reflects this, but I know of nothing that limits the code to only stocks. [2] Please excuse the misuse of "real time". I understand that none of this is true real time. [3] Interactive Brokers website: http://www.interactivebrokers.com/ From smulloni at smullyan.org Sat Sep 11 18:51:44 2004 From: smulloni at smullyan.org (Jacob Smullyan) Date: Tue Sep 14 15:26:59 2004 Subject: ANN: SkunkWeb 3.4.0 is released! Message-ID: SkunkWeb 3.4.0 has been released! SkunkWeb is a dual-BSD/GPL-licensed, scalable, extensible, and easy-to-use Web application server written in Python, designed for handling both high-traffic sites and smaller sites. Its features include a powerful component model and an elegant templating language that encourages component-based design, highly configurable caching of compiled templates and component output, message catalog support for i18n, and remote component calls. It can be used with Apache via an Apache module, or it can serve HTTP requests directly. The SkunkWeb distribution also includes PyDO, an ORM with support for PostgreSQL, MySQL, Oracle, SapDB, and SQLite. Changes: This release fixes a restart bug, has a number of PyDO fixes, better session handling, a faster cache, and sundry other minor bugfixes. Home page: http://www.skunkweb.org/ Wiki: http://wiki.skunkweb.org/ Sourceforge page: http://sourceforge.net/projects/skunkweb Download link: http://prdownloads.sourceforge.net/skunkweb/skunkweb-3.4.0.tar.gz?download Cheers, Jacob Smullyan From sbabbitt at commspeed.net Mon Sep 13 08:07:35 2004 From: sbabbitt at commspeed.net (Tom B.) Date: Tue Sep 14 15:27:00 2004 Subject: A wxHtmlWindow forms implementation. Message-ID: <1095057126.834709@news.commspeed.net> It consists of a pre-filter, http://users.commspeed.net/tbabbitt/tom2/HTMLparse.py usage: import HTMLparse,urllib2 TomFilter = HTMLparse.TomFilter() webtext = urllib2.urlopen('http://www.yahoo.com') formtxt = TomFilter.formfilter(webtext,'http://www.yahoo.com') # after feeding imagelist = TomFilter.imagelist linklist = TomFilter.linklist scripttext = TomFilter.scripttext linktextlist = TomFilter.linktextlist background = TomFilter.background backgroundcolor = TomFilter.backgroundcolor The parser, completes URL's, changes form tags to custom wxControl tags and mangles frames into rows of tables. (note encoding('utf_8','ignore'). The next part is a custom module for web controls. http://users.commspeed.net/tbabbitt/tom2/webwig.py The controls post there events to a custom event and are available as a class called WebEvent. (Note Radio buttons are implemented as check boxes so you have to uncheck at the event end.) The only thing left to be done is to link the events to the program running the wx.html window. import wx import wx.html as html import wx.lib.wxpTag import webwig def __init__(self): ....self.Bind(webwig.EVT_UPDATE_WEBFORM,self.OnPyEvent) ....self.WebObjects = {} def OnPyEvent(self, event): ....self.WebEvent = event.GetVal() ....if self.WebEvent.Typ[:4] == 'int_': ........self.WebObjects[self.WebEvent.Id] = self.WebEvent ........self.WebObjects[self.WebEvent.Id].Typ = self.WebObjects[self.WebEvent.Id].Typ[4:] ....else: ........self.WebObjects[self.WebEvent.Id] = self.WebEvent This gives you a WebEvent object and dictionary of all web objects on page. WebEvent objects have the following properties, self.WebEvent.Name # the control name self.WebEvent.Value # the control value self.WebEvent.WebValue # in the form u'&%s="%s"' % (Name ,Value ) self.WebEvent.URL # the full URL self.WebEvent.FormData # the full Form data in dictionary self.WebEvent.Data # extra data from select and data from hidden, in form 'action'|'http://'|'method'|'POST' ect. self.WebEvent.Id #the controll Id self.WebEvent.Win # the control itself Here is code for the Demo (love the new demo). http://users.commspeed.net/tbabbitt/tom2/demowebwig.py I have also written a program to display its features it requires, PIL , http://www.pythonware.com/products/pil/ image_view (ScrolledWindow PIL viewer) http://users.commspeed.net/tbabbitt/tom/image_view.py the Browser http://users.commspeed.net/tbabbitt/tom2/TomBrowse.py Inspired by the demo it separates the web page components into notebook pages and runs the Content of a STC through the above event. Errors are displayed on a log page. I know how much people have wanted something like this so I just want to get the code out there. The tag handler complains on pages with hidden tags but I can find nothing wrong with my tag syntax. There is an unhanded exception when I use the SetPage from the event definition but when the page is saved it loads back ok so I probably need to destroy the web objects on the event end. Infinite Abundance, Tom Babbitt From jmiller at stsci.edu Mon Sep 13 16:19:37 2004 From: jmiller at stsci.edu (Todd Miller) Date: Tue Sep 14 15:27:01 2004 Subject: ANN: numarray-1.1 Message-ID: <1095085177.4624.39.camel@halloween.stsci.edu> Release Notes for numarray-1.1 Numarray is an array processing package designed to efficiently manipulate large multi-dimensional arrays. Numarray is modelled after Numeric and features c-code generated from python template scripts, the capacity to operate directly on arrays in files, and improved type promotions. Although numarray-1.1 is predominantly a bugfix release, if you use numarray, I strongly recommend upgrading. I. ENHANCEMENTS 986194 Add SMP threading Build/install with --smp to enable ufuncs to release the GIL during their compute loops. You have to supply your own threads and partition your array computations among them to realize any SMP benefit. This adds overhead so don't do it unless you have multiple CPUs and know how to manage multiple compute threads. 1016142 CharArray eval() too slow CharArray.fasteval() was modified to use strtod() rather than Python's eval(). This makes it ~70x faster for converting CharArrays to NumArrays. fasteval() no longer works for complex types. eval() still works for everything. 989618 Document memmap.py (memory mapping) 996177 Unsigned int type support limited 1008968 Add kroenecker product II. BUGS FIXED / CLOSED 984286 max.reduce of byteswapped array Sebastian Haase reported that the reduction of large (>100KB) byteswapped arrays did not work correctly. This bug affected reductions and accumulations of byteswapped and misaligned arrays causing them to produce incorrect answers. Thanks Sebastian! 1011456 numeric compatibility byteoffset numarray's Numeric compatibility C-API didn't correctly account for the byte offsets produced by sub-arrays and array slices. This was fixed by re-defining the meaning of the ->data pointer in the PyArrayObject struct to include byteoffset. NA_OFFSETDATA() was likewise redefined to return ->data rather than ->data + ->byteoffset. Correctly written code is still source compatible. Incorrectly written code will generally be transparently fixed. Code which accounted for byteoffset without using NA_OFFSETDATA() will break. This bug affected functions in numarray.numeric as well as add-on packages like numarray.linear_algebra and numarray.fft. 1009462 matrixmultiply (a,b) leaves b transposed Many people reported this side effect. Thanks to all. 919297 Windows build fails VC++ 7.0 964356 random_array.randint exceeds boundaries 985710 buffer not aligned on 8 byte boundary (Windows-98 broken) 990328 Object Array repr for >1000 elements 997898 Invalid sequences errors 1004600 Segfault in array element deletion 1005537 Incorrect handling of overlapping assignments in Numarray 1008375 Weirdness with 'new' method 1008462 searchsorted bug and fix 1009309 randint bug fix patch 1015896 a.is_c_array() mixed int/bool results 1016140 argsort of string arrays See http://sourceforge.net/tracker/?atid=450446&group_id=1369&func=browse for more details. III. CAUTIONS 1. This release is binary incompatible with numarray-1.0. Writers of C-extensions which directly reference the byteoffset field of the PyArrayObject should be aware that the data pointer is now the sum of byteoffset and the buffer base pointer. All C extensions which use the numarray C-API must be recompiled. This incompatibility was an unfortunate consequence of the fix for "numeric compatibility byteoffset". WHERE ----------- Numarray-1.1 windows executable installers, source code, and manual is here: http://sourceforge.net/project/showfiles.php?group_id=1369 Numarray is hosted by Source Forge in the same project which hosts Numeric: http://sourceforge.net/projects/numpy/ The web page for Numarray information is at: http://stsdas.stsci.edu/numarray/index.html Trackers for Numarray Bugs, Feature Requests, Support, and Patches are at the Source Forge project for NumPy at: http://sourceforge.net/tracker/?group_id=1369 REQUIREMENTS ------------------------------ numarray-1.1 requires Python 2.2.2 or greater. AUTHORS, LICENSE ------------------------------ Numarray was written by Perry Greenfield, Rick White, Todd Miller, JC Hsu, Paul Barrett, Phil Hodge at the Space Telescope Science Institute. We'd like to acknowledge the assitance of Francesc Alted, Paul Dubois, Sebastian Haase, Tim Hochberg, Nadav Horesh, Edward C. Jones, Eric Jones, Jochen Kuepper, Travis Oliphant, Pearu Peterson, Peter Verveer, Colin Williams, and everyone else who has contributed with comments and feedback. Numarray is made available under a BSD-style License. See LICENSE.txt in the source distribution for details. -- Todd Miller jmiller@stsci.edu From me.simon at web.de Mon Sep 13 20:06:22 2004 From: me.simon at web.de (Martin_Simon) Date: Tue Sep 14 15:28:02 2004 Subject: ANN: PyOpenOffice 0.1 released Message-ID: Process OpenOffice.org Writer Files and transform them to PDF without installing OpenOffice.org What is PyOpenOffice? * It is a class library, written in the Python Language. * It is a platform-independent command-line utility (many abilities of the commandline interface are still missing) What can do PyOpenOffice do for you? * Make serial letters, database reports etc. from templates in the SXW-Format and store them anew as SXW-Files * Extract the pure text information from the SXW-Document and store it in a plain text file or a PDF-File * Perform simple transformations from SXW-Files to PDF-Files without installing OO - for example on a webserver What license has PyOpenOffice? * It is distributed under the GNU Public License What software is required? * Any operating system that supports the following software: * Python 2.3 (maybe it works form 2.1 upwards, but this is not recommended) for the SXW-Processing * The ReportlabToolkit and the Python Imaging Library for the transformation from SXW to PDF * OpenOffice.org for viewing and editing the templates * The PyOpenOffice-Zip-Package Homepage: http://www.bezirksreiter.de/PyOpenOffice.htm There you also find a "Live"-version to test it without installing. Martin Simon From michael at hobbshouse.org Mon Sep 13 23:11:34 2004 From: michael at hobbshouse.org (Michael Hobbs) Date: Tue Sep 14 15:28:02 2004 Subject: ANN: Candygram 1.0 beta 2 (Python + Erlang) Message-ID: <49005.209.46.8.140.1095109894.squirrel@mail.hobbshouse.org> The second beta version of Candygram is now available. The changes included in this release are: * Changed behavior of list patterns to repeat last element. (See documentation for details.) * A single Receiver object may now be used by multiple processes. * Added Receiver.removeHandler() method. * Can pass a Process subclass to spawn() and spawnLink(). * New wxProcess example class integrates Candygram with wxPython. * Updated FAQ. Candygram is a Python implementation of Erlang concurrency primitives. Erlang is widely respected for its elegant built-in facilities for concurrent programming. This package attempts to emulate those facilities as closely as possible in Python. With Candygram, developers can send and receive messages between threads using semantics nearly identical to those in the Erlang language. More information about Candygram can be found at http://candygram.sourceforge.net From ndmoses at ntlworld.com Tue Sep 14 11:28:00 2004 From: ndmoses at ntlworld.com (Neil Moses) Date: Tue Sep 14 15:28:03 2004 Subject: PyODB a Python unixODBC API binding Message-ID: I would like to announce the first release of PyODB a Python unixODBC API binding. PyODB is a Python module and provides a simplified set of bindings to unixODBC (http://www.unixodbc.org) allowing fast and easy development of open database applications. The module supports multiple database connections using a connection class and two methods execute() and fetch() to handle SQL queries. Disconnection from the database is automatic using the class destructor. My main aim in producing this software was to hide the complexities of the ODBC C API from the programmer and so simplify application development. I imagine this might appeal to people providing dynamic content on a web server or anyone who wished to experiment with ODBC in developing small applications. The software has been developed on a Linux environment using Python 2.3 and SWIG (http://www.swig.org). The module has been tested on Linux and Solaris platforms using databases PostgreSQL and Informix, but should work on any platform supporting unixODBC and an ODBC database driver. To download the release visit https://sourceforge.net/projects/pyodb Regards, Neil Moses From chris at psychofx.com Tue Sep 14 15:35:25 2004 From: chris at psychofx.com (Chris Miles) Date: Wed Sep 15 00:57:25 2004 Subject: EDDIE-Tool 0.34 Released Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 EDDIE-Tool 0.34 has just been released. http://eddie-tool.net/ What is it ? The EDDIE-Tool is an intelligent UNIX monitoring agent written entirely in Python. It provides system, network and security monitoring features, with an extensive configuration facility for defining customized monitoring and data collection rules. What is new ? This release contains a few bugfixes, better support for OpenBSD, Darwin and Redhat Enterprise Linux 3, and includes SNMP features out-of-the-box (no need for an external module now). Why is it interesting to Python users ? Besides system and network administrators, Python users may find EDDIE-Tool interesting as it is an example of a threaded, multi-platform software package, providing easy access to system statistics and using Python's power to offer a dynamic and programmable rules engine. Regards, Chris - -- Chris Miles http://chrismiles.info/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFBRvOozitzBnMzNcIRAonhAJ9OfsbvcA/zujQDyMntOElsaVpCUgCgp64r MSHS14K1y8NLIy0jMxnYXrk= =w4g+ -----END PGP SIGNATURE----- From jgoerzen at complete.org Tue Sep 14 16:27:36 2004 From: jgoerzen at complete.org (John Goerzen) Date: Wed Sep 15 00:57:26 2004 Subject: ANN: Foundations of Python Network Programming Message-ID: Hi, I'd like to announce the availability of my latest book, Foundations of Python Network Programming, published by APress. Magnus Lie Hetland (author of Practical Python) was the technical reviewer and Jason Gilmore (author of A Programmer's Introduction to PHP 4.0) was the lead editor for this book. Foundations of Python Network Programming is designed to show you everything from fundamentals of networking and low-level protocol design to work with higher-level protocols such as IMAP, HTTP, and FTP. This is not a basic reference like Python comes with. Rather, it's a hands-on guide. There are over 6600 lines of example code and the text strives to show you the big picture. For instance, there are several different ways of getting directory information from an FTP server, and some are not documented for use this way. The chapter on FTP explains them and provides example code to illustrate. There's also an APress page with details (link below). The book is split into six parts: * Part I covers low-level networking. It starts out with the basic concepts of TCP/IP networking, then explains how to use sockets to write your own protocols or implement new protocols from scratch. In addition to basic TCP/IP client and server code, topics such as UDP, exception handling, forward and reverse DNS lookups, broadcast packets, half-open sockets, and IPv6 are covered. * Part II covers web services. It starts with the coverage of HTTP client support and goes on to cover HTML parsing, XML parsing and generation, and XML-RPC. * Part III covers e-mail. It first shows you how to build plain or MIME messages and how to process and decode those messages. The MIME coverage is quite extensive, covering things like multipart messages, attachments, varying character sets in headers, etc. The remaining chapters in the e-mail part cover SMTP client communication, POP3, and IMAP. The IMAP section covers the IMAP client library included with Twisted. * Part IV covers other client-side modules, including FTP, database clients (DB-API), and concludes with a discussion of SSL/TLS. That discussion covers both sock.ssl() and PyOpenSSL and documents authentication of the remote. * Part V covers server-side frameworks. These include SocketServer and its derivatives such as SimpleXMLRPCServer, CGI. In addition, there is a chapter on mod_python. It features re-implementations of the examples from the CGI chapter for a native mod_python implementation to make it easy to see how code is different when writing mod_python as opposed to CGI. * Finally, part VI covers multitasking with an emphasis on server design but including coverage of client design. The major topics covered include forking, threading, and single-process design using poll() or the Twisted infrastructure. For more information: Table of Contents, Cover images, letter, and links to pages at Amazon, bn, etc: http://www.complete.org/pynet APress book page (including sample code downloads): http://www.apress.com/book/bookDisplay.html?bID=363 Sample chapter: http://www.apress.com/book/supplementDownload.html?bID=363&sID=2077 ISBN: 1590593715 As usual, I welcome your e-mails and comments.

Foundations of Python Network Programming - new book covering networking in Python. (14-Sep-04) From python-url at phaseit.net Tue Sep 14 23:26:07 2004 From: python-url at phaseit.net (Cameron Laird) Date: Wed Sep 15 00:57:26 2004 Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Sep 14) Message-ID: QOTW: "[T]he essence of software development is code/task factorization." Hung Jung Lu "[U]se the best tool for the job, and don't use any that preclude you from using others at the same time as well." Roger Binns "SciPy 2004 ... was a great success." http://groups.google.com/groups?th=cf4d033c9ca22c42 Notice, by the way, the new availability of *Python Scripting for Computational Science*. http://www.amk.ca/diary/archives/cat_python.html#003329 "In recent months several posters on comp.lang.python have suggested that Python would benefit from making it possible for people to comment on the documentation, an approach similar to the PHP docs." Andrew Kuchling didn't join the speculation on the desirability of such a hypothetical; rather, In his award-winning manner, he created it. Notice that discussion now focuses on optimization. http://groups.google.com/groups?frame=left&th=4e553e0347dd115c Magnus Lie Hetland launches a Wiki just to "chisel ... out a possible standard API ... for graphs in Python." Notice that, by the end of the thread, the Wiki is *not* temporary. http://groups.google.com/groups?frame=left&th=93df0776394aa6f0 In a single thread, Alex Martelli both: enlists the tokenize module to introduce examples of the advantages of the new iterator protocol; and illustrates ways to leverage tokenize() to handle tokens unknown to base Python. http://groups.google.com/groups?frame=left&th=b9914fda3566bbd0 Bryan Olson argues that David Mertz's "weightless threads" are weak--weaker, at least, than true co-routines. http://groups.google.com/groups?frame=left&th=ca4b3ec6501d42aa Is there a problem greenlets solve? Did Churchill and Fermi share a speechwriter? http://groups.google.com/groups?frame=left&th=696336311fa0f429 http://groups.google.com/groups?frame=left&th=c802f304c8eafcc3 Alex Martelli makes the case that you, too, can readily learn enough to be a time wizard. http://groups.google.com/groups?th=135ee8f8e6a362f5 ======================================================================== Everything Python-related you want is probably one or two clicks away in these pages: Python.org's Python Language Website is the traditional center of Pythonia http://www.python.org Notice especially the master FAQ http://www.python.org/doc/FAQ.html PythonWare complements the digest you're reading with the marvelous daily python url http://www.pythonware.com/daily Mygale is a news-gathering webcrawler that specializes in (new) World-Wide Web articles related to Python. http://www.awaretek.com/nowak/mygale.html While cosmetically similar, Mygale and the Daily Python-URL are utterly different in their technologies and generally in their results. comp.lang.python.announce announces new Python software. Be sure to scan this newsgroup weekly. http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python.announce Brett Cannon continues the marvelous tradition established by Andrew Kuchling and Michael Hudson of intelligently summarizing action on the python-dev mailing list once every other week. http://www.python.org/dev/summary/ The Python Package Index catalogues packages. http://www.python.org/pypi/ The somewhat older Vaults of Parnassus ambitiously collects references to all sorts of Python resources. http://www.vex.net/~x/parnassus/ Much of Python's real work takes place on Special-Interest Group mailing lists http://www.python.org/sigs/ The Python Business Forum "further[s] the interests of companies that base their business on ... Python." http://www.python-in-business.org Python Success Stories--from air-traffic control to on-line match-making--can inspire you or decision-makers to whom you're subject with a vision of what the language makes practical. http://www.pythonology.com/success The Python Software Foundation (PSF) has replaced the Python Consortium as an independent nexus of activity. It has official responsibility for Python's development and maintenance. http://www.python.org/psf/ Among the ways you can support PSF is with a donation. http://www.python.org/psf/donate.html Cetus collects Python hyperlinks. http://www.cetus-links.org/oo_python.html Python FAQTS http://python.faqts.com/ The Cookbook is a collaborative effort to capture useful and interesting recipes. http://aspn.activestate.com/ASPN/Cookbook/Python Among several Python-oriented RSS/RDF feeds available are http://www.python.org/channews.rdf http://bootleg-rss.g-blog.net/pythonware_com_daily.pcgi http://python.de/backend.php For more, see http://www.syndic8.com/feedlist.php?ShowMatch=python&ShowStatus=all The old Python "To-Do List" now lives principally in a SourceForge reincarnation. http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse http://python.sourceforge.net/peps/pep-0042.html The online Python Journal is posted at pythonjournal.cognizor.com. editor@pythonjournal.com and editor@pythonjournal.cognizor.com welcome submission of material that helps people's understanding of Python use, and offer Web presentation of your work. *Py: the Journal of the Python Language* http://www.pyzine.com Archive probing tricks of the trade: http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python&num=100 http://groups.google.com/groups?meta=site%3Dgroups%26group%3Dcomp.lang.python.* Previous - (U)se the (R)esource, (L)uke! - messages are listed here: http://www.ddj.com/topics/pythonurl/ http://purl.org/thecliff/python/url.html (dormant) or http://groups.google.com/groups?oi=djq&as_q=+Python-URL!&as_ugroup=comp.lang.python Suggestions/corrections for next week's posting are always welcome. E-mail to should get through. To receive a new issue of this posting in e-mail each Monday morning (approximately), ask to subscribe. Mention "Python-URL!". -- The Python-URL! Team-- Dr. Dobb's Journal (http://www.ddj.com) is pleased to participate in and sponsor the "Python-URL!" project. From tim at zope.com Wed Sep 15 03:11:33 2004 From: tim at zope.com (Tim Peters) Date: Wed Sep 15 16:02:41 2004 Subject: ZODB 3.3 release candidate 1 released Message-ID: <20040915011133.B2D5D3B8038@smtp.zope.com> I'm pleased to announce the release of ZODB 3.3c1. This corresponds to the ZODB (and ZEO) that we intend to ship with ZopeX3-3.0.0 release candidate 1. You can download a source tarball or Windows installer from: http://zope.org/Products/ZODB3.3 3.3c1 incorporates a slew of small fixes, and one major incompatibility: when a transaction commit fails, all previous versions of ZODB aborted the transaction and implicitly began a new transaction. As discussed on the zope-dev and zodb-dev mailing lists, that can be damaging if one in a sequence of subtransaction commits mistakenly suppresses a commit exception. Starting with ZODB 3.3c1, after a commit fails subsequent attempts to commit, join or register with the transaction will also fail. The failing transaction must instead be explicitly discarded. See the news file for details: http://zope.org/Products/ZODB3.3/NEWS.html The intent is that 3.3c1 will be released again as ZODB 3.3 (final) shortly before the ZopeX3-3.0.0 final release. Note that ZODB 3.3 does not support any version of Zope 2.6 or 2.7. From edreamleo at charter.net Wed Sep 15 13:48:56 2004 From: edreamleo at charter.net (Edward K. Ream) Date: Wed Sep 15 16:02:42 2004 Subject: ANN: Leo 4.2 RC1: An outlining editor Message-ID: <10kgb2usvbm1899@corp.supernews.com> Leo 4.2 Release Candidate 1 is now available at http://sourceforge.net/projects/leo/ This version fixes a number of minor bugs and adds several new features. See leoDocs.leo for full details. The highlights of Leo 4.2: - @thin trees make Leo much more friendly to cvs. - Leo's data structures have been reorganized to make outline operations significantly faster. All old script still work. - @test and @script nodes convert scripts to unit tests automatically. You can convert scripts to unit tests in seconds! - A faster and more robust spell checker plugin. (requires Python 2.3) - Leo is now much more friendly to using spaces instead of tabs. - The Execute Script command reports erroneous lines more clearly. - Leo draws large outlines more quickly with less memory used. - Dozens of other improvements. Quote of the month ------------------ Leo is the best IDE that I have had the pleasure to use. I have been using it now for about 2 -- 3 months. It has totally changed not only the way that I program, but also the way that I store and organize all of the information that I need for the job that I do. -- Ian Mulvany 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. Leo requires Python 2.2.1 or above and tcl/tk 8.4 or above. Leo works on Linux, Windows and MacOs X. Links: ------ Leo: http://webpages.charter.net/edreamleo/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://sourceforge.net/cvs/?group_id=3458 Wiki: http://leo.hd1.org/ Edward K. Ream September 14, 2004 -------------------------------------------------------------------- Edward K. Ream email: edreamleo@charter.net Leo: Literate Editor with Outlines Leo: http://webpages.charter.net/edreamleo/front.html -------------------------------------------------------------------- From jjl at pobox.com Thu Sep 16 01:17:30 2004 From: jjl at pobox.com (John J. Lee) Date: Fri Sep 17 20:24:16 2004 Subject: ANN: ClientCookie 1.0.0a released Message-ID: <87zn3r9l6d.fsf@pobox.com> http://wwwsearch.sourceforge.net/ClientCookie/ 0.4.19 is still the stable version. 0.4.x will not be actively maintained as soon as a final 1.0 release is out (which will happen when Python 2.4 is released). I will likely fix bugs in 0.4.x if asked, though. 1.0.0a is an alpha release of a "final" version, parts of which will be in Python 2.4, as new module cookielib and updates to urllib2. Although still alpha, the interface is now unlikely to change. This release contains lots of changes to bring ClientCookie into line with cookielib and Python 2.4's urllib2. Once a final patch has been applied to cookielib (I'm just about to upload the patch), anything in the ClientCookie interface that differs from 2.4's urllib2 / cookielib is probably a bug. ClientCookie will remain backwards-compatible with older Pythons. However, this release requires Python 2.0 or newer. Python 1.5.2 is no longer supported. For detailed history, please see the ChangeLog: http://wwwsearch.sourceforge.net/ClientCookie/src/ChangeLog.txt and the SVN repository: http://codespeak.net/svn/user/jjlee/wwwsearch/ClientCookie/trunk/ Backwards-incompatible changes from 0.4.x to 1.0.x: * RFC 2965 is now off by default. * AbstractHTTPHandler (hence all HTTP functionality) now uses httplib.HTTPConnection instead of httplib.HTTP. This means that ClientCookie now claims to be an HTTP/1.1 client instead of 1.0. Same goes for HTTPS. * CookieJar now knows nothing about files. If you want to write cookies to a file, and don't need to use a browser-compatible file format, use LWPCookieJar. CookieJars that know about files now derive from FileCookieJar. * FileCookieJar.load(), .revert() and .save() now raise LoadError in addition to IOError. * CookieJar.cookies attribute is now private. * Renamed ClientCookie.Request.iter_headers() to .header_items(). * Request.unverifiable and .origin_req_host are now private, replaced by methods .get_unverifiable() and .get_origin_req_hoot(). The constructor now has arguments to set these attributes. Some old code still returns urllib2.Request objects: in that case, set these attributes directly on the urllib2.Request, and RequestUpgradeProcessor will carry them over when upgrading them to ClientCookie.Request objects (yuck). * Cookie.rest is now private: use has_nonstandard_attr(), get_nonstandard_attr() and set_nonstandard_attr() instead. 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 and Refresh handling, automatic adding of the Referer [sic] header, robots.txt observance and lazily-seek()able responses. These extras are implemented using an extension that makes it easier to add new functionality to urllib2. It has developed from a port of Gisle Aas' Perl module HTTP::Cookies, from the libwww-perl library. Simple usage: import ClientCookie response = ClientCookie.urlopen("http://www.example.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 theller at python.net Thu Sep 16 22:41:14 2004 From: theller at python.net (Thomas Heller) Date: Fri Sep 17 20:24:17 2004 Subject: ctypes 0.9.1 released Message-ID: ctypes 0.9.1 released - Sept 14, 2004 ===================================== Overview ctypes is a ffi (Foreign Function Interface) package for Python 2.3 and higher. ctypes allows to call functions exposed from dlls/shared libraries and has extensive facilities to create, access and manipulate simple and complicated C data types in Python - in other words: wrap libraries in pure Python. It is even possible to implement C callback functions in pure Python. ctypes runs on Windows, MacOS X, Linux, Solaris, FreeBSD. It may also run on other systems, provided that libffi supports this platform. On windows, ctypes contains a ctypes.com package which allows to call and implement custom COM interfaces. Changes in 0.9.1 ctypes 0.9.1 should be fully compatible again with Gary Bishop's readline module which is also used by IPython. ctypes changes The internal conversions that ctypes does between unicode and strings can now use a specified encoding and error handling. A set_conversion_mode() function allows to set them, it returns the previous values. The inital values are ('mbcs', 'ignore') on Windows, and ('ascii', 'strict') on other systems. When internal processing of an argument for a function call fails, the new ctypes.ArgumentError is raised. CDLL and its subclasses now accept an optional second handle parameter. If this is supplied, it is used instead of calling LoadLibrary() or dlopen() to get one. Sometimes objects have been freed too early when calling functions where argtypes have been set. Fixed the create_unicode_buffer function - it was returning c_char arrays instead of c_wchar arrays. Both create_string_buffer and create_unicode_buffer can now be called with string and unicode instances, they will do the needed conversions themselves. ctypes now allows calling Python C api functions. The 'pythonapi' symbol should be used to access these functions, this will automatically use the correct calling convention and exception handling. The 'py_object' type is the ctypes variant of 'PyObject *'. This feature should also work if you are using a static python build. It is now possible to call cdecl functions with more arguments than the length of the argtypes sequence specifies - this allows to provide functions like sprintf() with a proper prototype. It is now possible to create strings or unicode strings if you have the integer address by calling c_char_p(address) or c_wchar_p(address). Integers can also be assigned to structure fields of type c_char_p and c_wchar_p. c_char_p and c_wchar_p both accept strings and unicode strings - if needed they are encoded or decoded using 'strict' error handling. The _ctypes.call_function function, although private and deprecated, has been put back in - it is used by Gary Bishop's readline module. Array and pointer instances now support slicing, for pointers only getslice is implemented (setslice is too dangerous, probably). Slices are represented as lists of the elements, except for character and unicode character pointer and arrays, where strings resp. unicode strings are used instead. On windows, the include files were missing from the source distribution. The alignment function was not exported by the ctypes module. It returns the alignment requirements in bytes of a type or instance. ctypes.com changes Applied a patch from Bruce Dodson which fixes an infinite loop in readtlb.py if a typelib references types defined in another typelib. readtlb still generates bad code for such cases, but the results could be edited by hand if the dependencies can be sorted out. ctypes now caches the types that WINFUNCTYPE and CFUNCTYPE creates, to avoid unneeeded creation of classes. This makes importing files containing a lot of COM interfaces (like the ones that the readtlb tool generates) a lot (10 x) faster. COM servers now print a short usage message when they are run without the /regserver or /unregserver flag. VARIANT does now handle the COM DATE type (VT_DATE) as Python datetime. VARIANT now handles integers and longs correctly - if longs are too large they are stored as doubles (VT_R8). Integers are now stored as VT_I4 instead of VT_INT. Detailed changelogs are in CVS: Future plans The ultimate purpose of the 0.9 release series is to shake out the remaining bugs, especially on platforms I have no access to, and to target a rock stable ctypes 1.0 release. When ctypes 1.0 is released, the com framework will be split off into a separate framework named 'comtypes'. Download Downloads are available in the sourceforge files section Separate source distributions are available for windows and non-windows systems. Please use the .zip file for Windows (it contains the ctypes.com framework), and use the .tar.gz file for non-Windows systems (it contains the complete cross-platform libffi sources). Binary windows installers, which contain compiled extension modules, are also available, be sure to download the correct one for the Python version you are using. Homepage Enjoy, Thomas From pinard at iro.umontreal.ca Fri Sep 17 02:23:04 2004 From: pinard at iro.umontreal.ca (=?iso-8859-1?Q?Fran=E7ois?= Pinard) Date: Fri Sep 17 20:24:17 2004 Subject: NEW MAINTAINER for Pymacs Message-ID: <20040917002304.GA14120@alcyon.progiciels-bpi.ca> Hello to everybody, and Emacs users in the Python community. The Pymacs project (described below) now has new maintainer: Syver Enstad . I'm inviting Pymacs users to collaborate with Syver as nicely as they always did with me. Syver himself has always been known to me as a helpful, competent and enthusiastic Pymacs user. Future announcement or news, as well as any decision about Pymacs, will originate from Syver instead of me. Also, reports, questions or suggestions about Pymacs should ideally be sent directly to Syver. -------------------- Pymacs is a powerful tool which, once started from Emacs, allows both-way communication between Emacs Lisp and Python. Pymacs aims Python as an extension language for Emacs rather than the other way around, and this assymetry is reflected in some design choices. Within Emacs Lisp code, one may load and use Python modules. Python functions may themselves use Emacs services, and handle Emacs Lisp objects kept in Emacs Lisp space. See `http://pymacs.progiciels-bpi.ca' for more documentation, including the manual in HTML form. The canonical Pymacs distribution is available as `http://pymacs.progiciels-bpi.ca/archives/Pymacs.tar.gz'. Report problems and suggestions to Syver Enstad `mailto:syver@inout.no'. -- Fran?ois Pinard http://www.iro.umontreal.ca/~pinard From middleware04 at eecg.toronto.edu Fri Sep 17 03:51:01 2004 From: middleware04 at eecg.toronto.edu (Middleware 04) Date: Fri Sep 17 20:24:18 2004 Subject: Middleware'04 Call for Participation and Program Update Message-ID: =09=09 ACM/IFIP/USENIX Middleware 2004 =09=09=09Call for Participation =09=09 Renaissance Toronto Hotel at SkyDome =09=09 Toronto, Ontario, Canada =09=09 October 18th - 22nd, 2004 =09 http://www.eecg.utoronto.ca/middleware2004/ Important Dates: Early Registration Rate Ends: 22 September 2004 Last Day to Pre-Register: 06 October 2004 Hotel Cut-Off Date: 25 September 2004 Hotel room reservations (Canada/US): 1-800-237-1512 Program Summary: For details and exact dates see: http://www.eecg.utoronto.ca/middleware20= 04/ Keynotes: How Wrong Can You Be? Getting Lost on the Road to Massive Scalability Werner Vogels, Director of Systems Research, Amazon.com Experiences Building a 24x7 Real-time ASP Service at Citrix Online Thorsten von Eicken, Chief Architect, Citrix Online Aspect-Oriented Programming - The promise and the controversy Gregor Kiczales, University of British Columbia Main conference program Single-track conference with 26 technical paper presentations and 6 work-in-progress presentations. For details see http://www.eecg.toronto.edu/middleware2004/programstruct.htm Tutorials (Monday and Tuesday): Building Distributed .NET Applications - Technologies, Architecture, Comparison with J2EE. By Michael Stal, Siemens AG Germany (Monday, full day.) Getting Started with Aspect-Oriented Programming for Middleware. By Yvonne Coady, University of Victoria, Canada (Monday, morning.) Middleware and Data Management for Sensor Networks. By Nalini Venkatasubramanian, University of California, Irvine, USA and Sharad Mehrotra,University of California, Irvine, USA (Tuesday, morning.) Enterprise Integration Patterns: Asynchronous Messaging Architectures in Practice. By Gregor Hohpe, ThoughtWorks Inc., USA (Tuesday, morning.) Data Grid Management Systems. By Arun Swaran Jagatheesan, University of California, San Diego, USA (Tuesday, afternoon.) DDS: The Real-Time Publish-Subscribe Standard for Data Distribution By Gerardo Pardo-Castellote, Real-Time Innovations Inc., USA (Tuesday, afternoon.) Workshops (Monday and Tuesday): 2nd Workshop on Middleware for Grid Computing. Organizers: Bruno Schulze - National Scientific Computing Laboratory (Brazil) and Radha Nandkumar - NCSA/UIUC (USA) (Monday, October 18th.) 2nd Workshop on Middleware for Pervasive and Ad-Hoc Computing Organizer: Paddy Nixon - Strathclyde University (UK) (Monday, October 18th.) 3rd Workshop on Adaptive and Reflective Middleware. Organizer: Fabio Costa, Federal University of Goi=E1s - (Brazil) and Nanbor Wang - Tech-X Corporation (USA) (Tuesday, October 19th.) 1st Middleware Doctoral Symposium. Organizers: Edward Curry - National University of Ireland (Ireland) and Doug Lea - SUNY Oswego (USA) (Tuesday, October 19th.) --- From max at alcyone.com Sun Sep 19 02:11:00 2004 From: max at alcyone.com (Erik Max Francis) Date: Mon Sep 20 15:53:17 2004 Subject: ANN: BOTEC 0.2 -- An astrophysical and orbital mechanics calculator Message-ID: <414CCE94.2F816758@alcyone.com> Summary BOTEC is a simple astrophysical and orbital mechanics calculator, including a database of all named Solar System objects. Overview BOTEC is intended as a simple but useful calculator to assist with making astrophysical, orbital mechanics, and space navigation calculations. As the origin of the acronym applies, BOTEC is more of a "back-of-the-envelope calculator" rather than an industrial-strength calculator, although this may change in the future. BOTEC is primarily intended for people familiar with physics and Python, and as such is unlikely to be useful to the average enduser. BOTEC really consists of two parts: The BOTEC software, which knows what to do with the data, and the Solar System data itself, which is represented in a large data file (a Python pickle, actually). This is deliberately modularized so that the Solar System data BOTEC uses can be updated independently of thet software, and also that alternative data files (*e.g.*, hypothetical stellar systems for fictional purposes) can be supported. All values are strictly in SI units. Getting the software The current version of botec is 0.2. The latest version of the software is available in a tarball here: http://www.alcyone.com/software/botec/botec-latest.tar.gz. The official URL for this Web site is http://www.alcyone.com/software/botec/. Requirements BOTEC requires Python 2.3. In its present state, BOTEC will also not be of much use to endusers not familiar with Python, or people without some basic working knowledge of physics, astrophysics, orbital mechanics, and space navigation. License This code is released under the GPL. ... Author This module was written by "Erik Max Francis", http://www.alcyone.com/max/. If you use this software, have suggestions for future releases, or bug reports, I'd love to hear about it. Version Version 0.2 $Date: 2004/09/18 $ $Author: max $ -- __ Erik Max Francis && max@alcyone.com && http://www.alcyone.com/max/ / \ San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis \__/ Let he who does not know what war is go to war. -- (a Spanish proverb) From sheldonplankton at yahoo.com Sun Sep 19 06:44:00 2004 From: sheldonplankton at yahoo.com (Sheldon Plankton) Date: Mon Sep 20 15:53:17 2004 Subject: fledgling Python online forum References: Message-ID: <2e05134b.0409182044.21a846b4@posting.google.com> Hi, I am back from vacation and its looks like we had a power outage. This also caused my ISP to assign me a new IP address. Snakehanders is now at http://216.175.112.88. We could really use a regular home. Can anyone make a suggestion? Thanks for you support! Plankton sheldonplankton@yahoo.com (Sheldon Plankton) wrote in message news:... > Hi, > > I have put together a prototype of a Python Programmmers forum. > It is similar to perlmonk.org, yet not as advanced in functionality. > If such a site might interest you please visit it at http://66.32.187.134 > I haven't chosen where I'll eventually host the site. Why not take a look > and post a commment? > > Thanks > Plankton From bac at OCF.Berkeley.EDU Sun Sep 19 08:47:52 2004 From: bac at OCF.Berkeley.EDU (Brett C) Date: Mon Sep 20 15:53:18 2004 Subject: python-dev Summary for 2004-08-16 through 2004-08-31 Message-ID: <414D2B98.5020109@ocf.berkeley.edu> python-dev Summary for 2004-08-16 through 2004-08-31 ++++++++++++++++++++++++++++++++++++++++++++++++++++ This is a summary of traffic on the `python-dev mailing list`_ from August 16, 2004 through August 31, 2004. It is intended to inform the wider Python community of on-going developments on the list. To comment on anything mentioned here, just post to `comp.lang.python`_ (or email python-list@python.org which is a gateway to the newsgroup) with a subject line mentioning what you are discussing. All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on something. And if all of this really interests you then get involved and join `python-dev`_! This is the forty-seventh summary written by Brett Cannon (new type of coverage, same kind of sarcasm). To contact me, please send email to brett at python.org ; I do not have the time to keep up on comp.lang.python and thus do not always catch follow-ups posted there. All summaries are archived at http://www.python.org/dev/summary/ . Please note that this summary is written using reStructuredText_ which can be found at http://docutils.sf.net/rst.html . Any unfamiliar punctuation is probably markup for reST_ (otherwise it is probably regular expression syntax or a typo =); you can safely ignore it, although I suggest learning reST; it's simple and is accepted for `PEP markup`_ and gives some perks for the HTML output. Also, because of the wonders of programs that like to reformat text, I cannot guarantee you will be able to run the text version of this summary through Docutils_ as-is unless it is from the `original text file`_. .. _PEP Markup: http://www.python.org/peps/pep-0012.html The in-development version of the documentation for Python can be found at http://www.python.org/dev/doc/devel/ and should be used when looking up any documentation on new code; otherwise use the current documentation as found at http://docs.python.org/ . PEPs (Python Enhancement Proposals) are located at http://www.python.org/peps/ . To view files in the Python CVS online, go to http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/ . Reported bugs and suggested patches can be found at the SourceForge_ project page. The `Python Software Foundation`_ is the non-profit organization that holds the intellectual property for Python. It also tries to forward the development and use of Python. But the PSF_ cannot do this without donations. You can make a donation at http://python.org/psf/donations.html . Every penny helps so even a small donation (you can donate through PayPal or by check) helps. .. _python-dev: http://www.python.org/dev/ .. _SourceForge: http://sourceforge.net/tracker/?group_id=5470 .. _python-dev mailing list: http://mail.python.org/mailman/listinfo/python-dev .. _comp.lang.python: http://groups.google.com/groups?q=comp.lang.python .. _Docutils: http://docutils.sf.net/ .. _reST: .. _reStructuredText: http://docutils.sf.net/rst.html .. _PSF: .. _Python Software Foundation: http://python.org/psf/ .. contents:: .. _last summary: http://www.python.org/dev/summary/2004-08-16_2004-08-31.html .. _original text file: http://www.python.org/dev/summary/2004-08-16_2004-08-31.ht ===================== Summary Announcements ===================== After asking people last week about how they wanted me to change the python-dev Summary as as to allow me to retain my free time, all respondents unanimously went with the option of letting me choose what I wanted to cover. That made me happy for a couple of reasons. One is that it makes the summaries more enjoyable for me since I mostly cover stuff I like and thus should be less bored at points while writing. It also flattering in a way that people trusted what I would cover enough to not want to suggest what I should cover. It also allows me to spend more time on python-dev participating than sitting on the sidelines dreading have to summarize some 100 email thread on whether we should move over to VC 7 or something (can you tell I was bored out of my skull by that thread?). So this summary starts the new coverage style. As you can see it is much shorter than normal since I didn't try to be as thorough (7 pages compared to the usual 10-20). But I think this style allows what I do summarize to have more details than it would normally have; quality over quantity. I have reintroduced the "Skipped Threads" section of the Summaries so people can see what I skipped in case there is something they might want to read that I just didn't care about. In places where I remember something partially relevant I added a sentence on it so it isn't just a list of subject lines. Enjoy. ========= Summaries ========= ------------- PEP movements ------------- `PEP 3000`_ (Python 3.0 Plans) came into creation. This text's point of existence is to list changes known to be planned for Python 3.0 and not hypothetical (Guido suggested all hypothetical talk call the version Python 3000, partially for marketing purposes). Plus I am a co-author and it finally completes my time in the `School of Hard Knocks`_. =) `PEP 333`_ (Python Web Server Gateway Interface v1.0) proposes a "standard interface between web servers and Python web applications or frameworks, to promote web application portability across a variety of web servers". `PEP 309`_ (Partial Function Application) was updated with some details. `PEP 334`_ (Simple Coroutines via SuspendIteration) came into existence to suggest coming up with some form of lightweight coroutines. .. _School of Hard Knocks: http://mail.python.org/pipermail/python-dev/2002-September/028725.html .. _PEP 3000: http://www.python.org/peps/pep-3000.html .. _PEP 333: http://www.python.org/peps/pep-0333.html .. _PEP 309: http://www.python.org/peps/pep-0309.html .. _PEP 334: http://www.python.org/peps/pep-0334.html Contributing threads: - `Minimal 'stackless' PEP using generators? `__ -------------------------------- Decorators "issue" mostly solved -------------------------------- While the hubbub over using a character for decorators was brewing, people began suggesting reserving a character that would never be used in Python for anything. The thought was that people who wanted to use a character to represent application-specific information could use the reserved symbol and not have to worry about clashing with possible future features like Leo and IPython are with the use of '@'. But no reservation of a character occurred. Towards the end of the month, to meet the a3 deadline, a unified proposal from the community came forward led by Robert Brewer and Michael Sparks. They pushed the J2 proposal:: using: somedecorator staticmethod def func(): pass Guido contemplated the proposal, saying "it got pretty darn close" to being accepted, but in the end decided not to. For Guido's full reasoning see http://mail.python.org/pipermail/python-dev/2004-September/048518.html . But he said he had two key issues. One was the indentation "suggests that its contents should be a sequence of statement, but in fact it is not". Issue two was that using a keyword to start a line was a real attention grabber and that "using" did not deserve this. The topic of how the whole decorators situation was handled was touched upon. He realized that "dramatic changes must be discussed with the community at large". He was also impressed by how the community pulled together to propose an alternative as it did and hopes to see more proposals of the same quality in the future. So now what? Guido said that he would be willing to change the character used for decorators for 2.4b1 . That means if '@' drives you nuts but something else like '!' works for you then speak up and try to get the community to rally behind it. Contributing threads: - `Decorator order implemented backwards? `__ - `Considering decorator syntax on an individual feature `__ - `PEP 318: Suggest we drop it `__ - `__metaclass__ and __author__ are already decorators `__ - `Reserved Characters `__ - `PEP 318: Can't we all just get along? `__ - `Multiple decorators per line `__ - `Important decorator proposal on c.l.p. `__ - `Re: [Python-checkins] python/nondist/peps pep-0318.txt... `__ - `CO_FUTURE_DECORATORS `__ - `decorators: If you go for it, go all the way!!! :) `__ - `Re: Re: def fn (args) [dec,dec]: `__ - `J2 proposal final `__ - `(my) revisions to PEP318 finally done. `__ - `Rejecting the J2 decorators proposal `__ ----------------------------------------------------------- When should something be put under the great powers of -O ? ----------------------------------------------------------- Python has had a simple peephole optimizer in the compiler since 2.3 that optimized imported bytecode. Raymond Hettinger moved it up, though, so that the optimization would be saved to .pyc files and thus remove the need to repeat the process every time. Guido questioned this move. He thought that since it was an optimization it should fall under the -O command-line option. But then people came forward to suggest that Raymond's move was good, saying that the cost of the optimization was non-existent and thus should be used. I brought up the point that a definition of what should be considered an optimization; anything that changes the initial opcode, or something that takes extra time/memory or changes semantics? Tim Peters stepped forward and said that since the optimizations were so simple that he thought they should be kept. David Abrahams also came forward and said they should be kept to get more testing on them since they were not complex and thus did not influence debugging of code. In the end Raymond's change was kept in place. Contributing threads: - `Re: [Python-checkins] python/dist/src/Python compile.c, 2.319, 2.320 `__ ---------------------------------------- 2.4a3 out the doors so kick those tires! ---------------------------------------- `Python 2.4a3`_ has been released. As usual, please download it, run the regression tests, and report any errors you get. Since this will be the last alpha this is your last chance to get new features in before b1 comes out. The use of priorities on the SourceForge tracker has also been clarified. Anything set to 9 **must** be dealt with before the next release. Priority 8 is to be dealt with before b1; it changes functionality so if it isn't in by b1 it won't be in until the next version. Priority 7 is for something that should get in before the final release. Anthony Baxter also gained sole control of setting the priority so as to keep the settings consistent. .. _Python 2.4a3: http://www.python.org/2.4/ Contributing threads: - `2.4a3 release is September 2, SF tracker keywords `__ ------------------- Talking about bytes ------------------- Stemming from a conversation about moving Python over to Unicode only for string representation for 3.0, the discussion of a bytes type came up. People were saying they used str to store binary data and that if str went away or no longer represented straight binary data (since Unicode has different encodings the values can change while meaning the same thing in terms of characters) they would need a way to deal with this. The idea that the array module solved this was basically dismissed since it seemed more built-in support was needed for convenience. It also meant more flexibility in terms of what interfaces were implemented. There was also some issues with getting array to work the exact way people wanted it to. The next question was whether literal support was needed. Would you really need to write something like ``b"\x66\x6f\x6f"`` instead of ``bytes([0x66, 0x6f, 0x6f])``? How all of this would play with Unicode ended up being discussed. In the end it seemed that one could encode and decode back and forth but that all work with character should be in Unicode and only decoded into bytes on the I/O barrier (writing to disk or the network, for instance) to minimize any possible encoding errors and to make usage easier. Mutability came up. Being mutable would be handy, but it killed its usage as a dictionary key. It was suggested that bytes hash to a tuple of integers representing the bytes, but nothing more was said. But in general almost everyone agreed that having the bytes type be mutable was best. `PEP 332`_ was sketched out during the early part of this discussion, but has not been updated since it died down. .. _PEP 332: http://www.python.org/peps/pep-0332.html Contributing threads: - `adding a bytes sequence type to Python `__ - `Byte string class hierarchy `__ -------------------------------------------- String substitution sure is a touchy subject -------------------------------------------- PEP 292`_ (Simpler String Substitutions) got a huge amount of discussion this past two weeks. Ignoring the syntax discussions (that was decided long ago before the PEP was accepted and had consensus and thus was a moot point) and the discussion of whether a trailing ``$`` at the end of the substitution pattern should be considered an error or not (it is), a couple of topics were discussed. To make this summary easier to follow, realize that the class that implements PEP 292 is named "Template" and thus I will just refer to the implementation by that name. The first topic was over whether Template should return Unicode objects. The side supporting it pointed out that Python 3.0 was going to be using Unicode for strings exclusively so it would be good to start using them now. It also went with the initial design of PEP 292 which was to help with i18n where Unicode is constantly used. People against, though, didn't want to suddenly be given a Unicode object when a string was used for template string passed in. That would be too surprising and lead to inconsistent usage thanks to sudden mixing of strings and Unicode objects in code. This issue was resolved by no longer subclassing unicode but making it easy to subclass Template so as to add direct Unicode support with ease. The second issue was other the design of the API. Originally Template was a class that overrode __mod__ to make it work like string interpolation works now for str and unicode. But then some people felt a class was too heavy-handed if there was no way to change the way Template worked through a subclass. This obviously led to a desire for functions to do the work for both Template and SafeTemplate (similar class to Template that left in substitution points if they didn't match any values in the dict passed in). In the end the class design was kept thanks to Tim Peters and metaclasses. Tim came up with a neat way to have the regex be generated at class creation time through a metaclass and thus allow subclasses to change how Template matched substitution points and such, all without a performance hit at instance creation time. Use of __mod__ and the SafeTemplate class were removed and Template grew substitute and safe_substitute methods. Practically everyone at this point seems happy with the design so it has been implemented and checked in. .. _PEP 292: http://www.python.org/peps/pep-0292.html Contributing threads: - `Update PEP 292 `__ - `PEP 292 - Simpler String Substitutions `__ - `Alternative Implementation for PEP 292: Simple String Substitutions `__ - `Alternative placeholder delimiters for PEP 292 `__ ------------------------------------------- Private names considered rude in the stdlib ------------------------------------------- Anthony Baxter suggested banning use of mangled private names (names starting with ``__``) in the stdlib. His argument was that they are a hack and the stdlib is supposed to act as a good example and that name mangling was not good. Guido essentially agreed with the caveat that some uses of private names is justified such as if a private name is storing the equivalent of a 'friend' function from C++. Contributing threads: - `__mangled in stdlib considered poor form `__ =============== Skipped Threads =============== Warnocked (i.e., emails that get essentially no response) emails very insignificant threads are not listed - Find out whether PyEval_InitThreads has been called? - Unifying Long Integers and Integers: baseint - test_tempfile failure on Mac OSX - Deprecate sys.exitfunc? - multiple instances of python on XP - Adding 'lexists()' to os.path - #ifdeffery - Weekly Python Bug/Patch Summary - problem with pymalloc on the BeOS port. - Proposed change to logging - sre.py backward compatibility and PEP 291 - Dealing with test__locale failure on OS X before a3 - os.urandom API - Decoding incomplete unicode Basically culminated into new stateful UTF-8 and UTF-16 decoders but that's all I know =) - Decimal module portability to 2.3? Decimal is compatible with 2.3 at least until 2.5 - Python icons If you think you can come up with a good icon for the Windows installer please let c.l.py know and it might get used - [Python-checkins] python/dist/src/Lib/test test_string.py, 1.25, 1.26 - list += string?? From framework at techgame.net Mon Sep 20 08:45:06 2004 From: framework at techgame.net (TechGame Framework) Date: Mon Sep 20 15:53:19 2004 Subject: ANN: TG Framework - Milestone Release 1.0a1 Message-ID: <414E7C72.9010502@techgame.net> =========================================== ANN: TG Framework - Milestone Release 1.0a1 =========================================== The `TechGame Framework for Python`_ is a toolkit for skinning (building) GUIs using a blend of XML, CSS, and Python. The workflow using this framework is similar to standard GUI development with a twist of web design thrown in. The `skinning framework`_ is a generalized engine to build objects from XML. To this engine, we have added an XML namespace 'TG.skinning.toolkits.wx' for our binding with the excellent `wxPython libraries`_. Using the skinning framework to factor your wxPython GUI into an XML form allows for a nice layer of insulation between GUI manipulation and model code. And once that separation is accomplished, you can even go to the point of replacing your GUI skin dynamically. Additionally, employing the `CSS facilities`_ allows you to localize choices about the look and feel of interfaces across the breadth of your application. Then, *when* you change your mind, you can quickly test your ideas by changing the stylesheet. Or, in a more sophisticated application, change styles to match the platform you are running on. If you are interested, please read more about the TG Framework at the `project website`_, as well as download the `1.0a1 Milestone Release`_. You also might be interested in our `CSS tools`_ separate from the framework. They are packaged in parallel with the framework, and can also be found on the `release page`_. .. _1.0a1 Milestone Release: .. _release page: http://www.techgame.net/projects/Framework/wiki/MilestoneRelease1.0a1 .. _TechGame Framework for Python: .. _project website: http://www.techgame.net/projects/Framework/wiki/WikiStart .. _CSS tools: .. _CSS facilities: http://www.techgame.net/projects/Framework/wiki/CSSEngine .. _skinning framework: http://www.techgame.net/projects/Framework/wiki/SkinningFramework .. _wxPython libraries: http://wxpython.org This framework is not... ======================== This framework is **not** intended to be a tool to convert code between different GUI toolkits. Rather, think of it binding XML, CSS and Python to specific GUI toolkits; namely wxPython. However, there is no reason bindings cannot be written for PyQT, or PyGTK, or win32, or Tkinter! Please contact us if you are interested in doing so, and we will do our best to support your effort! About the 1.0a1 Release ======================= This is our first alpha release, and we confess that our documentation is pretty much non-existent. So very sorry! (It took longer to write the release documents than the first CSS parser!) Look forward to better documentation in 1.0a2! However, despite the alpha release, the skinning engine is quite mature, with this being the fourth evolution of the technology. Major alpha areas are the CSS Engine and the URI Resolution tools. License ======= The TechGame Framework is OSI Certified Open Source Software using a `BSD-style license`_. .. _BSD-style license: http://www.techgame.net/projects/Framework/wiki/License Contact ======= Please send questions, comments, patches, and suggestions to *framework* at *TechGame.net*. Please open `new tickets`_ for bugs you find. .. _new tickets: http://www.techgame.net/projects/Framework/newticket ::

TechGame Framework - a toolkit for skinning GUIs using a blend of XML, CSS, and Python. (19-Sep-04)

From python-url at phaseit.net Mon Sep 20 17:37:48 2004 From: python-url at phaseit.net (Cameron Laird) Date: Mon Sep 20 22:31:57 2004 Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Sep 20) Message-ID: QOTW: "The advantage of using slices to extract a single element is that it avoids IndexErrors for empty lists." Raymond Hettinger http://groups.google.com/groups?th=44bd04fe85d02c19 "Usually when you feel that you need to generate instances with certain names you are on the wrong track in translating the problem you need to solve into a program. " Istvan Albert http://groups.google.com/groups?frame=left&th=6ce53556b4307fb5 Michael Sparks, David Mertz, Patrick Maupin, Bengt Richter, and others deepen discussion, mentioned last week, of greenlets, co-routines, and related matters. Particularly note explanations of confusing labels. http://groups.google.com/groups?frame=left&th=ca4b3ec6501d42aa Bengt Richter and Lonnie Princehouse provide substantial examples of Python-based (lexical) parsing. http://groups.google.com/groups?frame=left&th=795e46367a16d38 'Need to track every object in the solar system? Erik Max Francis' Python coding makes it "simple but useful". http://groups.google.com/groups?th=744df8e93a7a5e5e Opportunity: if you'll be at this year's SANE in Amsterdam, help proselytize at the Python Software Foundation stand. http://groups.google.com/groups?th=c916b2fefd4e878d Wayne Pierce bases nascent Security Advisor's security auditing on filesystem and service scans. Python makes it all comprehensible. http://groups.google.com/groups?th=4387aeb99f5c49d2 Alex Martelli provides a model for "self-updating" Python-coded software. http://groups.google.com/groups?selm=1gkazd2.1qm3g0u1l6b7lmN%25aleaxit%40yahoo.com Of course, for Alex, "somedict.get(x, x) [is] a *frequent* Python idiom". http://groups.google.com/groups?frame=left&th=3c7dc03a05fa8d1 Yet another distribution? Ubuntu Linux is an ambitious and Python-oriented one. http://www.ubuntulinux.org/ ======================================================================== Everything Python-related you want is probably one or two clicks away in these pages: Python.org's Python Language Website is the traditional center of Pythonia http://www.python.org Notice especially the master FAQ http://www.python.org/doc/FAQ.html PythonWare complements the digest you're reading with the marvelous daily python url http://www.pythonware.com/daily Mygale is a news-gathering webcrawler that specializes in (new) World-Wide Web articles related to Python. http://www.awaretek.com/nowak/mygale.html While cosmetically similar, Mygale and the Daily Python-URL are utterly different in their technologies and generally in their results. comp.lang.python.announce announces new Python software. Be sure to scan this newsgroup weekly. http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python.announce Brett Cannon continues the marvelous tradition established by Andrew Kuchling and Michael Hudson of intelligently summarizing action on the python-dev mailing list once every other week. http://www.python.org/dev/summary/ The Python Package Index catalogues packages. http://www.python.org/pypi/ The somewhat older Vaults of Parnassus ambitiously collects references to all sorts of Python resources. http://www.vex.net/~x/parnassus/ Much of Python's real work takes place on Special-Interest Group mailing lists http://www.python.org/sigs/ The Python Business Forum "further[s] the interests of companies that base their business on ... Python." http://www.python-in-business.org Python Success Stories--from air-traffic control to on-line match-making--can inspire you or decision-makers to whom you're subject with a vision of what the language makes practical. http://www.pythonology.com/success The Python Software Foundation (PSF) has replaced the Python Consortium as an independent nexus of activity. It has official responsibility for Python's development and maintenance. http://www.python.org/psf/ Among the ways you can support PSF is with a donation. http://www.python.org/psf/donate.html Cetus collects Python hyperlinks. http://www.cetus-links.org/oo_python.html Python FAQTS http://python.faqts.com/ The Cookbook is a collaborative effort to capture useful and interesting recipes. http://aspn.activestate.com/ASPN/Cookbook/Python Among several Python-oriented RSS/RDF feeds available are http://www.python.org/channews.rdf http://bootleg-rss.g-blog.net/pythonware_com_daily.pcgi http://python.de/backend.php For more, see http://www.syndic8.com/feedlist.php?ShowMatch=python&ShowStatus=all The old Python "To-Do List" now lives principally in a SourceForge reincarnation. http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse http://python.sourceforge.net/peps/pep-0042.html The online Python Journal is posted at pythonjournal.cognizor.com. editor@pythonjournal.com and editor@pythonjournal.cognizor.com welcome submission of material that helps people's understanding of Python use, and offer Web presentation of your work. *Py: the Journal of the Python Language* http://www.pyzine.com Archive probing tricks of the trade: http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python&num=100 http://groups.google.com/groups?meta=site%3Dgroups%26group%3Dcomp.lang.python.* Previous - (U)se the (R)esource, (L)uke! - messages are listed here: http://www.ddj.com/topics/pythonurl/ http://purl.org/thecliff/python/url.html (dormant) or http://groups.google.com/groups?oi=djq&as_q=+Python-URL!&as_ugroup=comp.lang.python Suggestions/corrections for next week's posting are always welcome. E-mail to should get through. To receive a new issue of this posting in e-mail each Monday morning (approximately), ask to subscribe. Mention "Python-URL!". -- The Python-URL! Team-- Dr. Dobb's Journal (http://www.ddj.com) is pleased to participate in and sponsor the "Python-URL!" project. From phil at riverbankcomputing.co.uk Mon Sep 20 21:10:01 2004 From: phil at riverbankcomputing.co.uk (Phil Thompson) Date: Mon Sep 20 22:31:57 2004 Subject: SIP v4.1 Released (C/C++ Wrapper Generator) Message-ID: <200409202010.01577.phil@riverbankcomputing.co.uk> Riverbank Computing is pleased to announce the release of SIP v4.1 available from http://www.riverbankcomputing.co.uk/. SIP is a tool for generating Python modules that wrap C or C++ libraries. It is similar to SWIG. Its main use to date has been to generate PyQt and PyKDE. While SIP has been around since 1998, this is the first major release that is fully documented (see http://www.river-bank.demon.co.uk/docs/sip/sipref.html). SIP is licensed under the Python License and runs on Windows, UNIX, Linux and MacOS/X. SIP requires Python v2.3 or later (SIP v3.x is available to support earlier versions of Python). This release includes the following changes: - a new cast() function in the sip module - a number of small enhancements to the C++ support - the build system supports MSVC.NET. Other features of SIP include: - support for Python new-style classes - generated modules are quick to import, even for large libraries - support for Qt's signal/slot mechanism - thread support - the ability to re-implement C++ abstract and virtual methods in Python - the ability to define Python classes that derive from abstract C++ classes - the ability to spread a class hierarchy across multiple Python modules - support for C++ namespaces - support for C++ exceptions - support for C++ operators - an extensible build system written in Python that supports over 50 platform/compiler combinations. From middleware04 at eecg.toronto.edu Wed Sep 22 05:29:44 2004 From: middleware04 at eecg.toronto.edu (Middleware 04) Date: Wed Sep 22 16:12:01 2004 Subject: 1 day to early registration deadline for Middleware'04 Message-ID: ********************************************************** ***** 1 day left to early registration deadline for ***** ***** ACM/IFIP/USENIX Middleware 2004 ***** ********************************************************** =09=09 ACM/IFIP/USENIX Middleware 2004 =09=09=09Call for Participation =09=09 Renaissance Toronto Hotel at SkyDome =09=09 Toronto, Ontario, Canada =09=09 October 18th - 22nd, 2004 =09 http://www.eecg.utoronto.ca/middleware2004/ Important Dates: Early Registration Rate Ends: 22 September 2004 Last Day to Pre-Register: 06 October 2004 Hotel Cut-Off Date: 25 September 2004 Hotel room reservations (Canada/US): 1-800-237-1512 Program Summary: For details and exact dates see: http://www.eecg.utoronto.ca/middleware20= 04/ Keynotes: How Wrong Can You Be? Getting Lost on the Road to Massive Scalability Werner Vogels, Director of Systems Research, Amazon.com Experiences Building a 24x7 Real-time ASP Service at Citrix Online Thorsten von Eicken, Chief Architect, Citrix Online Aspect-Oriented Programming - The promise and the controversy Gregor Kiczales, University of British Columbia Main conference program Single-track conference with 26 technical paper presentations and 6 work-in-progress presentations. For details see http://www.eecg.toronto.edu/middleware2004/programstruct.htm Tutorials (Monday and Tuesday): Building Distributed .NET Applications - Technologies, Architecture, Comparison with J2EE. By Michael Stal, Siemens AG Germany (Monday, full day.) Getting Started with Aspect-Oriented Programming for Middleware. By Yvonne Coady, University of Victoria, Canada (Monday, morning.) Middleware and Data Management for Sensor Networks. By Nalini Venkatasubramanian, University of California, Irvine, USA and Sharad Mehrotra,University of California, Irvine, USA (Tuesday, morning.) Enterprise Integration Patterns: Asynchronous Messaging Architectures in Practice. By Gregor Hohpe, ThoughtWorks Inc., USA (Tuesday, morning.) Data Grid Management Systems. By Arun Swaran Jagatheesan, University of California, San Diego, USA (Tuesday, afternoon.) DDS: The Real-Time Publish-Subscribe Standard for Data Distribution By Gerardo Pardo-Castellote, Real-Time Innovations Inc., USA (Tuesday, afternoon.) Workshops (Monday and Tuesday): 2nd Workshop on Middleware for Grid Computing. Organizers: Bruno Schulze - National Scientific Computing Laboratory (Brazil) and Radha Nandkumar - NCSA/UIUC (USA) (Monday, October 18th.) 2nd Workshop on Middleware for Pervasive and Ad-Hoc Computing Organizer: Paddy Nixon - Strathclyde University (UK) (Monday, October 18th.) 3rd Workshop on Adaptive and Reflective Middleware. Organizer: Fabio Costa, Federal University of Goi=E1s - (Brazil) and Nanbor Wang - Tech-X Corporation (USA) (Tuesday, October 19th.) 1st Middleware Doctoral Symposium. Organizers: Edward Curry - National University of Ireland (Ireland) and Doug Lea - SUNY Oswego (USA) (Tuesday, October 19th.) --- From ianb at colorstudy.com Wed Sep 22 08:13:35 2004 From: ianb at colorstudy.com (Ian Bicking) Date: Wed Sep 22 16:12:01 2004 Subject: ANN: SQLObject 0.6 (and 0.5.3) Message-ID: <4151180F.10402@colorstudy.com> I've made a long-overdue release of SQLObject 0.6, and a final bug-fix release for the 0.5 series. What is SQLObject ================= SQLObject is an object-relational mapper. Your database tables are described as classes, and rows are instances of those classes. SQLObject is meant to be easy to use and quick to get started with. SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite, and Firebird. It also has newly added support for Sybase and MaxDB (also known as SAPDB). Where is SQLObject ================== Site: http://sqlobject.org Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Archives: http://news.gmane.org/gmane.comp.python.sqlobject Download: http://prdownloads.sourceforge.net/sqlobject/SQLObject-0.6.tar.gz?download News and changes: http://sqlobject.org/docs/News.html What's New ========== In 0.5.3: some small bug fixes, and an important fix when iterating over selects in threaded environments. In 0.6: The "SQLObject" module has been renamed "sqlobject". To fetch objects from the database, use MyClass.get(id) (instead of MyClass(id)). To create/insert objects, use MyClass(col=value, ...) (instead of MyClass.new(col=value, ...)). Better support for constraints. Connections given using URLs, like 'mysql://user:pass@localhost/dbname' Optional lazy updates -- SQL UPDATE executed only on demand. For a more complete list, please see the news: http://sqlobject.org/docs/News.html -- Ian Bicking / ianb@colorstudy.com / http://blog.ianbicking.org From phil at riverbankcomputing.co.uk Wed Sep 22 19:33:23 2004 From: phil at riverbankcomputing.co.uk (Phil Thompson) Date: Thu Sep 23 15:47:00 2004 Subject: ANN: PyQt v3.13 Released Message-ID: <200409221833.23326.phil@riverbankcomputing.co.uk> Riverbank Computing is pleased to announce the release of PyQt v3.13 available from http://www.riverbankcomputing.co.uk/. Changes since the last release include support for the QUuid, QMetaObject and QMetaProperty classes. PyQt is a comprehensive set of Qt bindings for the Python programming language and supports the same platforms as Qt. Like Qt, PyQt is available under the GPL (for UNIX, Linux and MacOS/X), a commercial license (for Windows, UNIX, Linux and MacOS/X) and a free educational license (for Windows). PyQt is implemented as a set of 9 extension modules containing 300 classes and over 5,750 functions and methods. PyQt also includes bindings to QScintilla, the port to Qt of the Scintilla editor component. PyQt can be used either as a rapid prototyping tool, or as an alternative to C++ for developing large Qt applications. PyQt includes the pyuic utility which generates Python code to implement user interfaces created with Qt Designer in the same way that the uic utility generates C++ code. Third party tools are also available - such as eric3, a comprehensive IDE (including an editor, debugger, class browser, integration with Qt Designer, re-factoring tools, unit testing tools and integration with source code control systems). eric3 is written entirely using PyQt and is available from http://www.die-offenbachs.de/detlev/eric3.html. From phd at phd.pp.ru Thu Sep 23 01:27:28 2004 From: phd at phd.pp.ru (Oleg Broytmann) Date: Thu Sep 23 15:47:01 2004 Subject: Bookmarks Database and Internet Robot version 3.4.0 (2004-09-23) Message-ID: <20040922232728.GA2413@phd.pp.ru> Hello! Bookmarks Database and Internet Robot WHAT IS IT A set of classes, libraries, programs and plugins I use to manipulate my bookmarks.html. I like Mozilla, but I need more features. I want to extend Mozilla's "Check for updates" feature (Navigator4 called it "Update bookmarks"). WHAT'S NEW in version 3.4.0 (2004-09-23) Extended support for Mozilla; keywords in bookmarks. Updated to m_lib version 1.2. WHAT'S NEW in version 3.3.2 parse_html.py can now recode unicode entities in titles. WHAT'S NEW in version 3.3.0 Required Python 2.2. HTML parser. If the protocol is HTTP, and there is Content-Type header, and content type is text/html, the object is parsed to extract its title; if the Content-Type header has charset, or if the HTML has with charset, the title is converted from the given charset to the default charset. The
is also parsed to extract tag with redirect, if any. WHAT'S NEW in version 3.0 Complete rewrite from scratch. Created mechanism for pluggable storage managers, writers (DB dumpers/exporters) and robots. WHERE TO GET Master site: http://phd.pp.ru/Software/Python/#bookmarks_db Faster mirrors: http://phd.by.ru/Software/Python/#bookmarks_db http://phd2.chat.ru/Software/Python/#bookmarks_db AUTHOR Oleg Broytmann COPYRIGHT Copyright (C) 1997-2004 PhiloSoft Design LICENSE GPL TODO Cleanup HTML before parsing using BeautifulSoap or Tidy. Parse downloaded file and get javascript redirects. More and better documentation. Merge "writers" to storage managers. New storage managers: shelve, SQL, ZODB, MetaKit. More robots (URL checkers): threading, asyncore-based. Configuration file to configure defaults - global defaults for the system and local defaults for subsystems. Ruleset-based mechanisms to filter out what types of URLs to check: checking based on URL schema, host, port, path, filename, extension, etc. Detailed reports on robot run - what's old, what's new, what has been moved, errors, etc. WWW-interface to the report. Bigger database. Multiuser database. Robot should operates on a part of the DB. WWW-interface to the database. User should import/export/edit bookmarks, schedule robot run, etc. Oleg. -- Oleg Broytmann http://phd.pp.ru/ phd@phd.pp.ru Programmers don't die, they just GOSUB without RETURN. From fuzzyman at gmail.com Thu Sep 23 11:57:17 2004 From: fuzzyman at gmail.com (Michael Foord) Date: Thu Sep 23 15:47:02 2004 Subject: Pythonutils Update and Mailing List Message-ID: <6f402501.0409230157.15534e83@posting.google.com> Yup.. another exciting new set of updates to the pythonutils scripts... ;-) Main Page - http://www.voidspace.org.uk/atlantibots/pythonutils.html Examples and small modules - http://www.voidspace.org.uk/atlantibots/recipebook.html Voidspace CGI Homepage - http://www.voidspace.xennos.com Pythonutils mailing list - http://voidspace.xennos.com/mailman/listinfo/pythonutils_voidspace.xennos.com *NEW* auth_example Version 1.0.0 This is more of a tutorial than a script. It shows how to do basic authentication over http (a 401 error) using python. Several examples and explanation of what is happening at each stage. Useful for writing http clients or understanding http. Located at http://www.voidspace.org.uk/atlantibots/recipebook.html *NEW* Pythonutils Mailing List http://voidspace.xennos.com/mailman/listinfo/pythonutils_voidspace.xennos.com For news about updates on all the Voidspace Python scripts and programs. This includes Nanagram, Dirwatcher, approx and ConfigObj et al. Also support, bugfixes and discussion. *UPDATE* approx Version 0.6.0 approx.py - cgiproxy for browsing in a restricted internet environment. Basic authentication works - including multiple users with multiple realms. Bug fixed in multiple user cookie support. Refactored to be cleaner and easier to work on. (Could still be better) Removed duplicate error handling code. In the event of errors (e.g. 404 error) the form to enter a URL is printed - making browsing easier... Reimplemented the POST method in a much simpler way - this way just proxies file uploads etc. (And imposes max file upload size) Added logging of requests - also for debugging. Some more helpful error messages and 'more correct' handling of unkown error codes. Proxying of request headers from the browser to the new request. *UPDATE* guestbook Version 1.1.1 guestbook.py - python guestbook with HTML templates. Email feature is now cross platform, not just for Linux servers. (Uses smtplib rather than sendmail). Attempting to fix a problem with carriage returns - odd. Changed license text. Various minor tinkerings.. Removed the need to have the script name in the template. Added the word poker to the list of banned words (to stop certain adverts). Added 'from_email' to the templates - which means this version of guestbook.py isn't compatible with an old template file. Added a work around so people won't notice (You *can* use old templates if you want to)... *UPDATE* http_test Version 1.3.0 http_test.py - script illustrating CGI environment and http. Useful for debugging. Online version as well. Will work with cookielib as well as ClientCookie. Will display an http error 'reason' if one exists... Print the form even in the event of errors. Will do basic authentication - stored username/passwords are valid for 2 minutes. *UPDATE* dataenc Version 1.1.5 dataenc.py - secure time limited logins over CGI and binary to ascii conversion. Increased speed in table_enc and table_dec. Version 1.1.4 Slight docs improvement. Slight speed improvement in binleave and binunleave. *UPDATE* ConfigObj Version 3.2.2 configobj.py and fullconfigobj.py - ultra simple config file reading and writing. Defined basestring for Python 2.2. (Thanks to Imre Andras Robert for uncovering this). *UPDATE* caseless Version 2.1.1 caseless.py - case insensitive dictionary, list and sort method. Defined sliceobj for versions of Python prior to 2.3 *NEW* in_test Version 1.0.0 in_test.py - view raw CGI POST data A simple test CGI that show several HTML forms and then displays the raw data posted to the CGI from the form. I created it for my own purposes - but someone else may find it useful to understand/view how the browser sends form data to a CGI. (Including file uploads). Online version at http://www.voidspace.xennos.com/index.html#in_test *REMINDER* Xennos Hosting Cheap web hosting including python 2.2 and mailman. Hosting packages from $1 a month. I've been with Xennos for nearly a year, on one of their cheaper packages, and am very pleased with the service. http://www.xennos.com Any of my Python CGIs (http://www.voidspace.xennos.com ) can be installed and used on a xennos account - great for creating/testing CGIs. (And no - I don't own any shares.... but it would be nice to see a few more python CGIs around - anyone fancy building a decent python forum CGI ?...) Regards, Fuzzy From vinay_sajip at yahoo.co.uk Thu Sep 23 14:41:57 2004 From: vinay_sajip at yahoo.co.uk (Vinay Sajip) Date: Thu Sep 23 15:47:02 2004 Subject: ANN: Logging Package v0.4.9.4 released Message-ID: <2e37dc1.0409230441.23d5a972@posting.google.com> A new version of the Python logging package has been released. If you are using version 2.3 of later of Python, this release will not mean much to you - it is the same as recent checkins into Python CVS. However, this release fixes numerous bugs reported since the last independent release (0.4.9.2), and may be of interest to people using earlier versions of Python. What Does It Do? ================ The logging package offers the ability for any Python program to log events which occur during program execution. It's typically used to provide application diagnostics, warnings and error messages. In addition to capturing "what happened", "where it happened", "when it happened", "how important it is" and event specific data, you can configure, without changing the application source code, both the verbosity of logging and the routing of events to different destinations such as console, disk files, sockets, email addresses, Web servers, SOAP servers etc. etc. You can even change the configuration of a running program without stopping and restarting it! You can use the logging package in exception handlers, and it will include traceback information in the log. It's thread-safe, and very easy to use - just "import logging" and log away! Classes provided include: Logger - used to log messages for a particular area of an application. You can instantiate these wherever you want, there's no need to pass references to them around your application. You can log events based on importance levels of DEBUG (least important), INFO, WARN, ERROR, and CRITICAL (most important). You can define your own levels if the default levels don't meet your requirements. Handler - used to route events to particular destinations. Handlers included are: StreamHandler (for generalized streams, including console) FileHandler (for disk files - including log file rotation with size limits for log files) SocketHandler (for sending events to a TCP socket) DatagramHandler (for sending events to a UDP socket - faster, but less reliable than TCP) SMTPHandler (send events to arbitrary email addresses) HTTPHandler (send events to Web servers) SysLogHandler (send events to Unix syslog) MemoryHandler (batch up events and process them several at a time) NTEventLogHandler (send events to Windows NT event logs) There are also examples of XMLHandler and SOAPHandler in the distribution. Formatter - used to format events as text strings. Flexible "msg % arg_tuple" formatting is the basis for formatting, with flexible date/time formatting including ISO8601 and any strftime-based formats. Filter - used when filtering based on importance (DEBUG/INFO/WARNING/ERROR/CRITICAL) is not sufficient. The distribution includes examples of filters based on class matching, regular expression matching, value matching, and logger matching. In the unlikely event that you're daunted by all the apparent complexity, fear not. The package offers a simple function-based interface to allow very simple, almost casual use of the underlying features. In addition to the core logging functionality, you get the ability to configure logging using a ConfigParser-based text file format, a Tkinter-based GUI configurator which creates configuration files for you, and a simple network-based event receiver which receives events on TCP, UDP, HTTP and SOAP ports. This is suitable for testing and might perhaps serve as a model for your own event receivers. Also included are over 20 test scripts which serve both as test harnesses and examples of how to use the logging package. You can get more information from http://www.red-dove.com/python_logging.html There are "download" and "recent changes" links at the top of that page. API documentation is available at http://www.red-dove.com/logging/index.html As always, your feedback is most welcome (especially bug reports, patches and suggestions for improvement). Enjoy! Cheers Vinay Sajip Red Dove Consultants Ltd. Changes since the last independent release: =========================================== Added getLoggerClass() (thanks to Dave Wilson). Added exception handling in shutdown(). Sort globbed files in doRollover() in TimedRotatingFileHandler. Date formatting for SMTPHandler now uses email package where available. fileConfig() exception handling added for handler instantiation. Changed basicConfig() to add keyword arguments. Changes are backward-compatible. Refactored RotatingFileHandler to create a base class for rotating handlers. Added TimedRotatingFileHandler (thanks to Mark Davidson - minor changes have been made to the patch he supplied). Added error checking to log() to check that level is an integer, and raise a TypeError if not (as long as raiseExceptions is set). Fixed a bug in DatagramHandler.send() (thanks to Mario Aleppo and Enrico Sirola for pointing it out). Minor documentation corrections. From anthony at computronix.com Thu Sep 23 16:54:20 2004 From: anthony at computronix.com (Anthony Tuininga) Date: Fri Sep 24 16:08:25 2004 Subject: cx_Freeze 3.0 Message-ID: <4152E39C.8060809@computronix.com> What is cx_Freeze? cx_Freeze is a set of utilities for freezing Python scripts into executables using many of the techniques found in Thomas Heller's py2exe, Gordon McMillan's Installer and the Freeze utility that ships with Python itself. Where do I get it? http://starship.python.net/crew/atuining http://www.computronix.com/utilities.shtml (it may be a few days before the second site is updated) What's new? 1) cx_Freeze now requires Python 2.3 or higher since it takes advantage of the ability of Python 2.3 and higher to import modules from zip files. This makes the freezing process considerably simpler and also allows for the execution of multiple frozen packages (such as found in COM servers or shared libraries) without requiring modification to the Python modules. 2) All external dependencies have been removed. cx_Freeze now only requires a standard Python distribution to do its work. 3) Added the ability to define the initialization scripts that cx_Freeze uses on startup of the frozen program. Previously, these scripts were written in C and could not easily be changed; now they are written in Python and can be found in the initscripts directory (and chosen with the new --init-script option to FreezePython). 4) The base executable ConsoleSetLibPath has been removed and replaced with the initscript ConsoleSetLibPath. 5) Removed base executables for Win32 services and Win32 COM servers. This functionality will be restored in the future but it is not currently in a state that is ready for release. If this functionality is required, please use py2exe or contact me for my work in progress. 6) The attribute sys.frozen is now set so that more recent pywin32 modules work as expected when frozen. 7) Added option --include-path to FreezePython to allow overriding of sys.path without modifying the environment variable PYTHONPATH. 8) Added option --target-dir/--install-dir to specify the directory in which the frozen executable and its dependencies will be placed. 9) Removed the option --shared-lib since it was used for building shared libraries and can be managed with the initscript SharedLib.py. 10) MakeFrozenBases.py now checks the platform specific include directory as requested by Michael Partridge. 11) Added option -O (or -OO) to FreezePython to set the optimization used when generating bytecode. 12) Improve the extension loader so that an ImportError is raised when the dynamic module is not located; otherwise an error about missing attributes is raised instead. 13) Extension loaders are only created when copying dependencies since the normal module should be loadable in the situation where a Python installation is available. 14) Allow for using a compiler other than gcc for building the frozen base executables by setting the environment variable CC. 15) Added support for replacing the paths in all frozen modules with something else (so that for example the path of the machine on which the freezing was done is not displayed in tracebacks) For those who used the betas over the past couple of months, here is what is new since 3.0 beta 3. 1) Ensure that ldd is only run on extension modules. 2) Allow for using a compiler other than gcc for building the frozen base executables by setting the environment variable CC. 3) Ensure that the import lock is not held while executing the main script; otherwise, attempts to import a module within a thread will hang that thread as noted by Roger Binns. 4) Added support for replacing the paths in all frozen modules with something else (so that for example the path of the machine on which the freezing was done is not displayed in tracebacks) -- Anthony Tuininga anthony@computronix.com Computronix Distinctive Software. Real People. Suite 200, 10216 - 124 Street NW Edmonton, AB, Canada T5N 4A3 Phone: (780) 454-3700 Fax: (780) 454-3838 http://www.computronix.com From me.simon at web.de Thu Sep 23 20:01:57 2004 From: me.simon at web.de (Martin_Simon) Date: Fri Sep 24 16:08:26 2004 Subject: ANN: PyOpenOffice 0.13 released Message-ID: # 0.13 Bugfix for transforming tables to PDF: tables with headers are allowed now in the SXW-Template. Support for special signs like the Euro-Symbol by changing from Latin-1 to cp1252-transformation. # 0.12 Bugfix for the makeSerialLetters()-function. Better test.sxw to explain this function. # 0.11 Bugfix for Windows XP, test.sxw adapted for English language users Have a look at: http://www.bezirksreiter.de/PyOpenOffice.htm Martin Simon From dm-info at 163.com Fri Sep 24 02:22:54 2004 From: dm-info at 163.com (tocer) Date: Fri Sep 24 16:08:27 2004 Subject: ANN: pyCallTips 0.8 released Message-ID: <6aa4af73.0409231622.b18fa1f@posting.google.com> http://vim.sourceforge.net/scripts/script.php?script_id=1074 0.8 new: 1.Rewrap the plugin, and change name to python_calltips.vim. In version 0.8, the plugin don't run automatically 2.Add two function to start or end the plugin. You can run function :call DoCalltips() #start running :call EndCalltips() #end running 3.if you use gVim, you can click menu to start or end it in "Tools" menu : "Start Calltips" and "End Calltips" ----------------------------------------------------------------------------- This is a script of Vim editor. It simualate code calltips in a new bottow window of Vim. In fact, it display python help doc strings of word under the cursor by scanning the imported modules in the current file. It can also implement word complete automatically. It's very useful for python newbie using Vim editor! From edreamleo at charter.net Fri Sep 24 14:26:14 2004 From: edreamleo at charter.net (Edward K. Ream) Date: Fri Sep 24 16:08:27 2004 Subject: ANN: Leo 4.2 final Message-ID: <10l84jd4f04ugc1@corp.supernews.com> Leo 4.2 Final is now available at http://sourceforge.net/projects/leo/ Highlights ---------- - @thin trees make Leo much more friendly to cvs. - Leo's data structures have been reorganized to make outline operations significantly faster. All old scripts still work. - @test and @script nodes convert scripts to unit tests automatically. You can convert scripts to unit tests in seconds! - A faster and more robust spell checker plugin. (requires Python 2.3) - Leo is now much more friendly to using spaces instead of tabs. - The Execute Script command reports erroneous lines more clearly. - Leo draws large outlines more quickly using less memory. - Dozens of other improvements. Quote of the month ------------------ Leo is the best IDE that I have had the pleasure to use. I have been using it now for about 2 -- 3 months. It has totally changed not only the way that I program, but also the way that I store and organize all of the information that I need for the job that I do. -- Ian Mulvany 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. Leo requires Python 2.2.1 or above and tcl/tk 8.4 or above. Leo works on Linux, Windows and MacOs X. Links: ------ Leo: http://webpages.charter.net/edreamleo/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://sourceforge.net/cvs/?group_id=3458 Wiki: http://leo.hd1.org/ Edward K. Ream September 22, 2004 -------------------------------------------------------------------- Edward K. Ream email: edreamleo@charter.net Leo: Literate Editor with Outlines Leo: http://webpages.charter.net/edreamleo/front.html -------------------------------------------------------------------- From pinard at iro.umontreal.ca Fri Sep 24 16:57:57 2004 From: pinard at iro.umontreal.ca (=?iso-8859-1?Q?Fran=E7ois?= Pinard) Date: Sun Sep 26 15:03:39 2004 Subject: NEW MAINTAINER for Pymacs [corrected] In-Reply-To: <20040917002304.GA14120@alcyon.progiciels-bpi.ca> References: <20040917002304.GA14120@alcyon.progiciels-bpi.ca> Message-ID: <20040924145757.GA20025@alcyon.progiciels-bpi.ca> [The contents of this announcement is identical to the one I sent a few days ago, except for Syver's email address. Please disregard the initial announcement. I'm sorry for the information duplication.] Hello to everybody, and Emacs users in the Python community. The Pymacs project (described below) now has new maintainer: Syver Enstad . I'm inviting Pymacs users to collaborate with Syver as nicely as they always did with me. Syver himself has always been known to me as a helpful, competent and enthusiastic Pymacs user. Future announcement or news, as well as any decision about Pymacs, will originate from Syver instead of me. Also, reports, questions or suggestions about Pymacs should ideally be sent directly to Syver. -------------------- Pymacs is a powerful tool which, once started from Emacs, allows both-way communication between Emacs Lisp and Python. Pymacs aims Python as an extension language for Emacs rather than the other way around, and this assymetry is reflected in some design choices. Within Emacs Lisp code, one may load and use Python modules. Python functions may themselves use Emacs services, and handle Emacs Lisp objects kept in Emacs Lisp space. See `http://pymacs.progiciels-bpi.ca' for more documentation, including the manual in HTML form. The canonical Pymacs distribution is available as `http://pymacs.progiciels-bpi.ca/archives/Pymacs.tar.gz'. Report problems and suggestions to Syver Enstad `mailto:syver.enstad@asker.online.no'. -- Fran?ois Pinard http://pinard.progiciels-bpi.ca From pearu at cens.ioc.ee Sat Sep 25 23:00:20 2004 From: pearu at cens.ioc.ee (Pearu Peterson) Date: Sun Sep 26 15:03:40 2004 Subject: ANN: F2PY - Fortran to Python Interface Generator Message-ID: F2PY - Fortran to Python Interface Generator -------------------------------------------- I am pleased to announce the eight public release of F2PY, version 2.43.239_1806. The purpose of the F2PY project is to provide the connection between Python and Fortran programming languages. For more information, see http://cens.ioc.ee/projects/f2py2e/ Download: http://cens.ioc.ee/projects/f2py2e/2.x/F2PY-2-latest.tar.gz http://cens.ioc.ee/projects/f2py2e/2.x/F2PY-2-latest.win32.exe http://cens.ioc.ee/projects/f2py2e/2.x/scipy_distutils-latest.tar.gz http://cens.ioc.ee/projects/f2py2e/2.x/scipy_distutils-latest.win32.exe What's new? ------------ * Added support for ``ENTRY`` statement. * New attributes: ``intent(callback)`` to support non-external Python calls from Fortran; ``intent(inplace)`` to support in-situ changes, including typecode and contiguouness changes, of array arguments. * Added support for ``ALLOCATABLE`` string arrays. * New command line switches: --compiler and --include_paths. * Numerous bugs are fixed. Support for ``PARAMETER``s has been improved considerably. * Documentation updates. Pyfort and F2PY comparison. Projects using F2PY, users feedback, etc. * Support for Numarray 1.1 (thanks to Todd Miller). * Win32 installers for F2PY and the latest scipy_distutils are provided. Enjoy, Pearu Peterson ---------------

F2PY 2.43.239_1806 - The Fortran to Python Interface Generator (25-Sep-04) From russell.cecala at gmail.com Sun Sep 26 06:25:03 2004 From: russell.cecala at gmail.com (sheldonplankton@yahoo.com) Date: Sun Sep 26 15:03:41 2004 Subject: fledgling Python online forum References: Message-ID: <952637f2.0409252025.77a1f342@posting.google.com> It is now at ... http://66.32.178.235/ ... hopefully I will have the domain name issue worked out soon. From fredrik at pythonware.com Sun Sep 26 14:05:54 2004 From: fredrik at pythonware.com (Fredrik Lundh) Date: Sun Sep 26 15:03:42 2004 Subject: ANN: PIL 1.1.5 alpha 5 (september 19, 2004) Message-ID: <200409261203.i8QC3ok29650@pythonware.com> The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities, including display support for Windows and Tkinter. PIL 1.1.5 alpha 5 is now available from effbot.org: http://effbot.org/downloads#imaging (look for Imaging-1.1.5a5.tar.gz) Changes in this release include: + Build improvements: Fixed building under AIX, improved detection of FreeType2 and Mac OS X framework libraries, and more. Many thanks to everyone who helped test the new "setup.py" script! + Added "getcolors()" method. This is similar to the existing histo- gram method, but looks at color values instead of individual layers, and returns an unsorted list of (count, color) tuples. By default, the method returns None if finds more than 256 colors. If you need to look for more colors, you can pass in a limit (this is used to allocate internal tables, so you probably don't want to pass in too large values). + Fixed BILINEAR/BICUBIC/ANTIALIAS filtering for mode "LA". For a list of other changes, see this page: http://effbot.org/zone/pil-changes-115.htm enjoy /F for the pil team at secret labs ab "Secret Labs AB -- makers of fine pythonware since 1997" From dialton3#NOSPAM.JJJJKIKK at virgilio.it Mon Sep 27 18:17:05 2004 From: dialton3#NOSPAM.JJJJKIKK at virgilio.it (Valentino Volonghi aka Dialtone) Date: Wed Sep 29 04:05:20 2004 Subject: ANN: Nevow 0.3 released Message-ID: GET it here: http://www.nevow.com/releases/0.3.0/nevow-0.3.tar.gz More Informations: Nevow (pronounced nou-veau) is a web application construction kit written in Python. It is designed to allow the programmer to express as much of the view logic as desired in Python, and includes a pure Python XML expression syntax named stan to facilitate this. However it also provides rich support for designer-edited templates, using a very small XML attribute language to provide bi-directional template manipulation capability. Nevow also includes formless, a declarative syntax for specifying the types of method parameters and exposing these methods to the web. Forms can be rendered automatically, and form posts will be validated and input coerced, rendering error pages if appropriate. Once a form post has validated successfully, the method will be called with the coerced values. Finally, Nevow includes LivePage, a two-way bridge between JavaScript in a browser and Python on the server. For 0.3, LivePage has been updated to operate on Mozilla, Firefox, Windows Internet Explorer 6, and Safari on Mac OS X. Event handlers can be written in pure Python and JavaScript implementation details are hidden from the programmer, with Nevow taking care of routing data to and from the server using XmlHttpRequest. * XHTML templates: contain no programming logic, only nodes tagged with nevow attributes * data/render methods: simplify the task of separating data from presentation and writing view logic * stan: An s-expression-like syntax for expressing xml in pure python * formless: For describing the types of objects which may be passed to methods of your classes, validating and coercing string input from either web or command-line sources, and calling your methods automatically once validation passes * webform: For rendering web forms based on formless type descriptions, accepting form posts and passing them to formless validators, and rendering error forms in the event validation fails * livepage: Cross-browser JavaScript glue for sending client side events to the server and server side events to the client after the page has loaded, without causing the entire page to refresh Links: ML: http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web Bug Tracker: http://divmod.org/users/roundup.twistd/nevow/ IRC: irc://irc.freenode.net/#twisted.web Commits: http://divmod.org/users/mailman.twistd/listinfo/nevow-commits Homepages: http://www.nevow.com http://www.divmod.org/Home/Projects/Nevow/index.html What's New in Nevow 0.3: 2004-09-26 Donovan Preston * Added nevow.inevow.IQ interface, an interface for querying the stan DOM. Eventually, this interface will contain APIs for doing traditional DOM introspection, such as iterating children, examining tag names, and examining attributes. For now, it contains only the patternGenerator, onePattern, and allPatterns APIs. These APIs have been deprecated from Context. The main benefit of this is the ability to do: IQ(loaders.xmlfile(...)).patternGenerator(...) which would be nice for creating "pattern library" files containing common skin idioms which can then be copied and used throughout the app. 2004-09-25 Donovan Preston * Chatola received a major facelift, bringing it from cool demo up to almost a full fledged web-based chat server. The helper API LiveEvil.call(...) was added, which deprecates LiveEvil.sendScript(callJS(...)) 2004-09-23 Tommi Virtanen * Make guard.SessionWrapper store its URL location in all requests it passes to its children. This allows the children know where to post the __login__ and __logout__ forms, even deep inside the resource tree (fixes issue59). * Guard now works as a non-root resource, with help from the above change. Semantics of __login__ clarified in unit tests; if your guard is at /foo, posting to /foo/__login__ redirects to /foo, and posting to /foo/__login__/ redirects to /foo/. The two unit tests that failed earlier now pass (with that change in their __login__ URLs). * If URL-based sessions are used, login no longer loses session information due to redirect to / (fixes issue56). 2004-09-20 Matt Goodall * Added URL.secure() method to make switching between http and https easier. 2004-09-08 Donovan Preston * Nevow now includes a very simple proof-of-concept WSGI Application implementation, and can be used with no Twisted dependency. Nevow can also be used to write CGIs, either using a simple CGI WSGI gateway (which supports URL traversal), or by using Page.renderString (which does not). * Two new context interfaces, ICurrentSegments and IRemainingSegments, replace the need to examine the Request prepath and postpath attributes directly. * ISerializable is deprecated, and has been replaced with a simple Flattener registry. nevow.flat.registerFlattener and nevow.flat.getFlattener have been added to support this. 2004-09-06 Donovan Preston * BACKWARDS INCOMPATIBLE CHANGE. Page.configurable_ *always* returns self, and a new Page.configurable_original *always* returns self.original. If you were relying on Page.configurable_'s introspection behavior and are now getting errors about adapting to IConfigurable, change your renderForms() calls to: renderForms('original') This causes Page.configurable_original to be invoked and introspected for form rendering. 2004-08-23 Donovan Preston * LivePage uses a simpler implementation strategy which requires the browser to make one request per output event. As a result, LivePage now works on Mozilla, Safari, and Internet Explorer Windows. 2004-08-05 Donovan Preston * Implemented support for IFoo(ctx) synonym syntax. It does the same thing as ctx.locate(IFoo) * Removed Resource Generators, a feature of NevowSite that nobody used and wasn't really useful. * Changed all inevow.IResource apis to take a Context object where they used to take the request. Remembering objects in PageContexts is now much easier, and fewer hacks are required to build the context chain. The context chain now looks like: SiteContext->RequestContext->PageContext(s)->WovenContext(s) 2004-7-28 Donovan Preston * Parameterize data_* methods in the same way as render_* methods. Patch by k3mper. For example,

will cause data_foo(self, bar, baz) to be called with the strings "bar" and "baz". This data method should return a callable taking ctx, data. The return value of this callable will be remembered as IData at this point in the context stack. * Added list-slicing support to ListContainer. You may now use list slicing syntax in a data directive in addition to a simple index. For example: def data_aList(self, ctx, data): return ["Buckle", "My", "Shoe"]
Will render as
My
2004-7-20 Matt Goodall * Modified sax loader to retain doctypes, comments and xmlns attributes. It's now possible to build XHTML valid pages :). xmlns attributes are always kept but there are options to ignore the doctype and comment (at the request of foom, not sure why yet). Right now, the default is to retain doctypes and comments but you can use the ignoreDocType and ignoreComment args to the xml loaders and flatsax parse functions. This bit may change. * Add a URL -> IResource adapter that performs a HTTP redirect. URLs can then be returned from locateChild(). 2004-06-07 Donovan Preston * Added nevow.canvas, an experimental module similar to LivePage which provides a Python server-side API for drawing arbitrary lines, curves, and text in the browser. The implementation is socket-based and asynchronous, so the server can issue drawing commands to the client at any time. The idea is to provide a server-side API to the Python programmer and shield them from implementation details, but the current implementation uses a pre-compiled Flash movie (which never changes; we are not generating Flash bytecodes). An implementation using SVG or Safari's Canvas (nevow.canvas was written before the Safari Canvas announcement) would be possible. 2004-05-26 Donovan Preston * Add URLOverlay.keep, an API which lets you specify which query args will be carried on from the current page render into the new URL. 2004-05-24 Matt Goodall * Extracted Fragment from Page. Hopefully, it will make it more obvious that embedding an object with data_ and render_ methods in a stan tree is possible without using something as "heavy" as Page which is really meant to be a web resource. 2004-05-23 Donovan Preston * Added some useful APIs to LiveEvil for manipulating the client-side page: - flt(stan): Flatten some stan, quoting apostrophes as as appropriate for embedding in javascript - set(what, to): Set the contents of the client-side node with the id 'what' to the stan 'to'. - append(where, what): Append the stan 'what' to the client- side node with the id 'where' - alert(what): Show an alert to the user with the text "what" -- Valentino Volonghi aka Dialtone Linux User #310274, Proud Gentoo User Blog: http://vvolonghi.blogspot.com Home Page: http://xoomer.virgilio.it/dialtone/ From middleware04 at eecg.toronto.edu Tue Sep 28 01:30:59 2004 From: middleware04 at eecg.toronto.edu (Middleware 04) Date: Wed Sep 29 04:05:21 2004 Subject: Middleware'04 early registration extended Message-ID: ******************************************************************* * Middleware early registration deadline has been extended to * * Thursday, September 30th (3 days from now) * * * * Wednesday, October 6th: online registration closes * ******************************************************************* =09=09 ACM/IFIP/USENIX Middleware 2004 =09=09=09Call for Participation =09=09 Renaissance Toronto Hotel at SkyDome =09=09 Toronto, Ontario, Canada =09=09 October 18th - 22nd, 2004 =09 http://www.eecg.utoronto.ca/middleware2004/ Important Dates: Early Registration Rate Ends: 30 September 2004 (extended) Last Day to Pre-Register: 06 October 2004 Hotel Cut-Off Date: 25 September 2004 Hotel room reservations (Canada/US): 1-800-237-1512 Program Summary: For details and exact dates see: http://www.eecg.utoronto.ca/middleware20= 04/ Keynotes: How Wrong Can You Be? Getting Lost on the Road to Massive Scalability Werner Vogels, Director of Systems Research, Amazon.com Experiences Building a 24x7 Real-time ASP Service at Citrix Online Thorsten von Eicken, Chief Architect, Citrix Online Aspect-Oriented Programming - The promise and the controversy Gregor Kiczales, University of British Columbia Main conference program Single-track conference with 26 technical paper presentations and 6 work-in-progress presentations. For details see http://www.eecg.toronto.edu/middleware2004/programstruct.htm Tutorials (Monday and Tuesday): Building Distributed .NET Applications - Technologies, Architecture, Comparison with J2EE. By Michael Stal, Siemens AG Germany (Monday, full day.) Getting Started with Aspect-Oriented Programming for Middleware. By Yvonne Coady, University of Victoria, Canada (Monday, morning.) Middleware and Data Management for Sensor Networks. By Nalini Venkatasubramanian, University of California, Irvine, USA and Sharad Mehrotra,University of California, Irvine, USA (Tuesday, morning.) Enterprise Integration Patterns: Asynchronous Messaging Architectures in Practice. By Gregor Hohpe, ThoughtWorks Inc., USA (Tuesday, morning.) Data Grid Management Systems. By Arun Swaran Jagatheesan, University of California, San Diego, USA (Tuesday, afternoon.) DDS: The Real-Time Publish-Subscribe Standard for Data Distribution By Gerardo Pardo-Castellote, Real-Time Innovations Inc., USA (Tuesday, afternoon.) Workshops (Monday and Tuesday): 2nd Workshop on Middleware for Grid Computing. Organizers: Bruno Schulze - National Scientific Computing Laboratory (Brazil) and Radha Nandkumar - NCSA/UIUC (USA) (Monday, October 18th.) 2nd Workshop on Middleware for Pervasive and Ad-Hoc Computing Organizer: Paddy Nixon - Strathclyde University (UK) (Monday, October 18th.) 3rd Workshop on Adaptive and Reflective Middleware. Organizer: Fabio Costa, Federal University of Goi=E1s - (Brazil) and Nanbor Wang - Tech-X Corporation (USA) (Tuesday, October 19th.) 1st Middleware Doctoral Symposium. Organizers: Edward Curry - National University of Ireland (Ireland) and Doug Lea - SUNY Oswego (USA) (Tuesday, October 19th.) --- From ta-meyer at ihug.co.nz Tue Sep 28 09:46:28 2004 From: ta-meyer at ihug.co.nz (Tony Meyer) Date: Wed Sep 29 04:05:21 2004 Subject: ANNOUNCE: SpamBayes release 1.0 Message-ID: The SpamBayes team is pleased to announce the 1.0 release of SpamBayes. As is now usual, this is both a release of the source code and of an installation program for all Microsoft Windows users. The Windows installation program will install either the Outlook add-in (for Microsoft Outlook users), or the SpamBayes server program (for all other POP3 mail client users, including Microsoft Outlook Express). All Windows users (including existing users of the Outlook add-in) are encouraged to use the installation program. If you wish to use the source-code version, you will also need to install Python - see README.txt in the source tree for more information. This release includes no changes from the successful (but now rather dated) 1.0rc2 release. However, we still highly recommend that existing users upgrade to the final version. Work has already begun towards the first 1.1 release, and we expect to release a (bug fix only) 1.0.1 release around the same time as 1.1a1. September 2004 is Spambayes' 2nd birthday, and (as many users know) we have gone through a very long release process, including 8 alpha releases, a beta, and two release candidates, all tested by a large number of users. As such, we are very confident that this 1.0 release is stable and suitable for regular use. We do welcome any and all contributions for improvements, of course! Get it via the 'Download' page at http://spambayes.org/download.html Enjoy the new release and your spam-free mailbox :-) Thanks to everyone involved in this release, particularly Richie Hindle and Kenny Pitt! Tony. (on behalf of the SpamBayes team) --- What is SpamBayes? --- The SpamBayes project is working on developing a Bayesian (of sorts) anti-spam filter (in Python), initially based on the work of Paul Graham. The major difference between this and other, similar, projects is the emphasis on testing newer approaches to scoring messages. The project includes a number of different applications, all using the same core code, ranging from a plug-in for Microsoft Outlook, to a POP3 proxy, to various command-line tools. From sheldon.plankton at gmail.com Tue Sep 28 17:02:48 2004 From: sheldon.plankton at gmail.com (Sheldon Plankton) Date: Wed Sep 29 04:05:22 2004 Subject: Snakehandlers.net Python Forum Message-ID: <611e63a90409280802115c5df0@mail.gmail.com> Hi, http://snakehandlers.net is a place for people to ask Python questions, post Tutorials, and chat with other snake handlers :) Please drop by and post a question. Plankton From uche.ogbuji at fourthought.com Wed Sep 29 03:35:49 2004 From: uche.ogbuji at fourthought.com (Uche Ogbuji) Date: Wed Sep 29 04:06:05 2004 Subject: ANN: Scimitar 0.9.0 Message-ID: <1096421749.4009.4219.camel@borgia> http://uche.ogbuji.net/tech/4Suite/scimitar Scimitar is an implementation of ISO Schematron that compiles a Schematron schema into a Python validator script, making it a faster and somewhat more flexible approach than the usual XSLT implementations. http://www-106.ibm.com/developerworks/edu/x-dw-xschematron-i.html http://www.ascc.net/xml/resource/schematron/schematron.html Schematron is an XML schema language in which you express a set of rules that the document must meet, rather than expressing a full grammar for the XML vocabulary (which is the more common approach to XML schemata). It is by far the most flexible XML schema language available. Scimitar now support all of the draft ISO Schematron specification. It will go through a mostly-bug-fix phase until the 1.0 release. See the TODO file for known gaps in Scimitar functionality and convenience. Scimitar is open source, provided under the 4Suite variant of the Apache license. The compiler program runs standalone on Python 2.2 or more recent, although if you are using an earlier version than 2.3, you must also install Optik 1.4.1 or more recent. In addition to the above requirements the generated validators require 4Suite 1.0a3 or more recent (really only tested with latest 4Suite CVS). -- Uche Ogbuji Fourthought, Inc. http://uche.ogbuji.net http://4Suite.org http://fourthought.com A hands-on introduction to ISO Schematron - http://www-106.ibm.com/developerworks/edu/x-dw-xschematron-i.html Wrestling HTML (using Python) - http://www.xml.com/pub/a/2004/09/08/pyxml.html XML circles the globe - http://www.javareport.com/article.asp?id=9797 Principles of XML design: Considering container elements - http://www-106.ibm.com/developerworks/xml/library/x-contain.html Hacking XML Hacks - http://www-106.ibm.com/developerworks/xml/library/x-think26.html A survey of XML standards - http://www-106.ibm.com/developerworks/xml/library/x-stand4/ From python-url at phaseit.net Wed Sep 29 04:03:26 2004 From: python-url at phaseit.net (Cameron Laird) Date: Wed Sep 29 04:06:06 2004 Subject: Dr. Dobb's Python-URL! - weekly Python news and links (Sep 29) Message-ID: QOTW: "You *did* signal that quite adequately. This, however, is comp.lang.python and clear signals never stopped anyone. " Peter Hansen "I think that the problem with debuggers is the same as with optimization -- it's too easy to start doing it prematurely." Carlos Ribeiro Gerrit Holl lists subtleties of a "straightforward" problem, and starts to solve them: http://www.google.com/groups?selm=mailman.4001.1096357473.5135.python-list%40python.org A workshop on High Productivity Python on 12 October might still have openings for presentations. http://groups.google.com/groups?th=bc16bbd85b4d10d9 Dabo is "a true three-tier design" portable wxPython-based freely-available framework. http://groups.google.com/groups?th=78be1e32fa9ac645 Vinay Sajip explains that logging is easier than its documentation has made it appear to be. http://groups.google.com/groups?selm=JqSdnXgsbLTkosXcRVn-vw%40powergate.ca Resumable exceptions are too complicated for Python--probably. http://groups.google.com/groups?frame=left&th=eebe9a8d1fee47f5 How does one get the zip module to do something useful? Adept Pythoneers start the way they start with *all* questions: by asking the module to explain itself. http://groups.google.com/groups?frame=left&th=586b1ae0d7d403cc http://groups.google.com/groups?frame=left&th=5814e0fbe3ef7679 http://groups.google.com/groups?frame=left&th=8f06411b073cf498 ======================================================================== Everything Python-related you want is probably one or two clicks away in these pages: Python.org's Python Language Website is the traditional center of Pythonia http://www.python.org Notice especially the master FAQ http://www.python.org/doc/FAQ.html PythonWare complements the digest you're reading with the marvelous daily python url http://www.pythonware.com/daily Mygale is a news-gathering webcrawler that specializes in (new) World-Wide Web articles related to Python. http://www.awaretek.com/nowak/mygale.html While cosmetically similar, Mygale and the Daily Python-URL are utterly different in their technologies and generally in their results. comp.lang.python.announce announces new Python software. Be sure to scan this newsgroup weekly. http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python.announce Brett Cannon continues the marvelous tradition established by Andrew Kuchling and Michael Hudson of intelligently summarizing action on the python-dev mailing list once every other week. http://www.python.org/dev/summary/ The Python Package Index catalogues packages. http://www.python.org/pypi/ The somewhat older Vaults of Parnassus ambitiously collects references to all sorts of Python resources. http://www.vex.net/~x/parnassus/ Much of Python's real work takes place on Special-Interest Group mailing lists http://www.python.org/sigs/ The Python Business Forum "further[s] the interests of companies that base their business on ... Python." http://www.python-in-business.org Python Success Stories--from air-traffic control to on-line match-making--can inspire you or decision-makers to whom you're subject with a vision of what the language makes practical. http://www.pythonology.com/success The Python Software Foundation (PSF) has replaced the Python Consortium as an independent nexus of activity. It has official responsibility for Python's development and maintenance. http://www.python.org/psf/ Among the ways you can support PSF is with a donation. http://www.python.org/psf/donate.html Cetus collects Python hyperlinks. http://www.cetus-links.org/oo_python.html Python FAQTS http://python.faqts.com/ The Cookbook is a collaborative effort to capture useful and interesting recipes. http://aspn.activestate.com/ASPN/Cookbook/Python Among several Python-oriented RSS/RDF feeds available are http://www.python.org/channews.rdf http://bootleg-rss.g-blog.net/pythonware_com_daily.pcgi http://python.de/backend.php For more, see http://www.syndic8.com/feedlist.php?ShowMatch=python&ShowStatus=all The old Python "To-Do List" now lives principally in a SourceForge reincarnation. http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse http://python.sourceforge.net/peps/pep-0042.html The online Python Journal is posted at pythonjournal.cognizor.com. editor@pythonjournal.com and editor@pythonjournal.cognizor.com welcome submission of material that helps people's understanding of Python use, and offer Web presentation of your work. *Py: the Journal of the Python Language* http://www.pyzine.com Archive probing tricks of the trade: http://groups.google.com/groups?oi=djq&as_ugroup=comp.lang.python&num=100 http://groups.google.com/groups?meta=site%3Dgroups%26group%3Dcomp.lang.python.* Previous - (U)se the (R)esource, (L)uke! - messages are listed here: http://www.ddj.com/topics/pythonurl/ http://purl.org/thecliff/python/url.html (dormant) or http://groups.google.com/groups?oi=djq&as_q=+Python-URL!&as_ugroup=comp.lang.python Suggestions/corrections for next week's posting are always welcome. E-mail to should get through. To receive a new issue of this posting in e-mail each Monday morning (approximately), ask to subscribe. Mention "Python-URL!". -- The Python-URL! Team-- Dr. Dobb's Journal (http://www.ddj.com) is pleased to participate in and sponsor the "Python-URL!" project. From me.simon at t-online.de Thu Sep 30 09:23:32 2004 From: me.simon at t-online.de (Simon) Date: Fri Oct 1 16:36:13 2004 Subject: ANN: PyOpenOffice 0.2 released Message-ID: <415BB474.70402@t-online.de> New in release 0.2: # Replace pictures - generate catalogues, worksheets, photo galleries etc. from an SXW-Template. # Patch for makeSerialLetters() to make it usable with Asian fonts (no PDF support for such fonts yet). Have a look at: http://www.bezirksreiter.de/PyOpenOffice.htm Martin Simon