This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vuduchyl
Recipients
Date 2006-02-21.08:05:33
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
With Neal Norwitz's help, I've developed this patch
which implements the with statement from PEP 343.  I
still need to flesh out the documentation, and the
contextmanager.py and nested.py files (copied almost
verbatim from the PEP) are very bare-bones, but the
with syntax itself is accompanied by a rather extensive
test.

Most of the patch reflects changes in automatically
generated files.  The most extensive changes were in
Python/ast.c and Python/compile.c, and the test resides
in Lib/test/with_test.py.

I'm very open to comments and suggestions, particularly
with regards to the contortions in compiler_with() in
Python/compile.c.

Also, a few questions regarding the PEP itself:

- Should the grammar be strict about not allowing
extraneous parentheses around "(NAME)" in the
with_var_name rule (Grammar/Grammar)?

- Should "(NAME ,)" (note the trailing comma) be a
valid VAR list?  Compared with the rule for global, the
current definition seems to suffice, but (according to
Neal) seems inconsistent in the light of typical tuple
syntax.

- Should VAR names that are not instantiated prior to
the with statement exist after exiting the scope of the
with statement?

Thanks,

Mike
History
Date User Action Args
2007-08-23 15:45:55adminlinkissue1435715 messages
2007-08-23 15:45:55admincreate