Movatterモバイル変換


[0]ホーム

URL:


homepage

Issue1013835

This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title:Implementation for PEP 318 using syntax J2
Type:Stage:
Components:Interpreter CoreVersions:Python 2.4
process
Status:closedResolution:
Dependencies:Superseder:
Assigned To:Nosy List: ms_
Priority:normalKeywords:patch

Created on2004-08-22 15:39 byms_, last changed2022-04-11 14:56 byadmin. This issue is nowclosed.

Files
File nameUploadedDescriptionEdit
decorator.J2.200408261700.patchms_,2004-08-26 16:13Patch against Anon CVS as of 2004/8/26, 17:00
Messages (5)
msg46759 -(view)Author: Michael (ms_)Date: 2004-08-22 15:39
This patch implements decorator syntax J2 fromhttp://www.python.org/moin/PythonDecorators  Example: class Foo:    decorate:       staticmethod deprecated memoize       author("Joe Bloggs")    def foo(bar):       pass  Key changes:    *Grammar/Grammar updated    *Python/compile.c updated.    * Test suite, docs and Lib updated. (test suite passes on my linux box)  Specific changes:    *Grammar/Grammar changed to recognise J2 syntax    *Python/compile.c changed to support J2    * Removed "@" fromLib/tokenize.py as Special    * Removed "AT" from joeInclude/token.h as a token    * Removed "AT" fromParser/tokenizer.c    *Doc/lib/libfuncs.tex - Changed examples from @ format      to decorate: format    *Doc/ref/ref7.tex        - changed Function Definitions production rules to match         the change in syntax.       - Changed example to use the change in syntax.    *Lib/compiler/transformer.py - Modified to handle the new syntax    *Lib/test/test_parser.py - Changed tests for old syntax to check new form    *Lib/test/tokenize_tests.txt - changed @staticmethod to J2 format    *Lib/test/output/test_tokenize - Changed to match the changed test file    *Modules/parsermodule.c - Changed to support new Grammar    *Lib/test/pyclbr_input.py - Changed from @ syntax to decorate: syntax    *Lib/test/test_decorators.py - changed all "decorate" functions to      decorate_ and all @ usages to "decorate:" syntax.       Files checked, but not changed:    *Doc/lib/asttable.tex - Can't see any necessary changes    *Lib/compiler/pycodegen.py - Can't see any necessary changes    *Lib/compiler/symbols.py - Can't see any necessary changes    *Tools/compiler/ast.txt - Can't see any necessary changes    *Tools/compiler/astgen.py - Can't see any necessary changes    *Tools/compiler/regrtest.py - No changes NB:    * I can't see whether ast.py should/should not be changed and      if it should, *how* it should be changed, as a result I've left      well alone.  Issues:    * Keyword clash with test suite is bad - suggest change to "using"      to limit clash with existing user code as far as possible.      I intend to follow this up with a replacement with a      changed keyword and if possible shortened/simplified      version.    * Patch is against the vanilla 2.4a2 download from python.org, does      this need changing to being a patch against the current CVS head?      (I suspect the answer to this is "yes")    * The following tests are skipped on my machine:        test_aepack test_al test_applesingle test_bsddb185 test_bsddb3        test_cd test_cl test_codecmaps_cn test_codecmaps_hk        test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses        test_gdbm test_gl test_imgfile test_largefile test_linuxaudiodev        test_macfs test_macostools test_nis test_normalization        test_ossaudiodev test_pep277 test_plistlib test_scriptpackages        test_socket_ssl test_socketserver test_sunaudiodev test_tcl        test_timeout test_urllibnet test_winreg test_winsound            As a result I don't know for certain these aren't affected by the      change. I'm checking them by hand at present.
msg46760 -(view)Author: Michael (ms_)Date: 2004-08-25 20:17
Logged In: YES user_id=994316Updated patch against anonymous CVS.  Covers the same files as before, with the addition of changes to  test_inspect.py, and inspect.py. inspect.py was updated to handle  the paired decorate/def blocks. Specifically this required changes  to getblock such that if getblock is called on a decorated function  that both blocks are returned rather than just the function or just  the decorator suite. This is to preserve the same behaviour as the current inspect behaviour.  Also: * changed keyword to "using" * Eliminated the single clash in the library that uses "using" as a variable. (webbrowser.py has a function "get" that has "using" as a single named parameter. AFAICT no google findable source file uses this parameter) * implemented the short form: using: trace def someFunction(someThing): doStuff(someThing) * Decorators are single decorator per line - as per current CVS, which means the short form only takes 1 decorator.  All tests except test_distutils pass. Since this appear to fail in Anon CVS without this patch that failure looks unrelated.  Remaining issues(?): * It's been suggested that this should be activated by a __future__ declaration. I'm currently looking at how to do this. * Extra docs on short form would probably be a good idea. (Docs are already updated otherwise)
msg46761 -(view)Author: Michael (ms_)Date: 2004-08-26 16:13
Logged In: YES user_id=994316
msg46762 -(view)Author: Michael (ms_)Date: 2004-08-26 16:19
Logged In: YES user_id=994316The updated patch is against anon CVS as of 26 Aug 2004, 17:00.   This patch leaves the keyword unchanged as "using". All tests pass on my machine (with "make testall").  The key change is that the keyword - and hence decorators must now be actively switched on using a "from __future__ import decorators" statement. The code using this is heavily based on the same approach that "from __future__ import generators" took  -- indeed reusing as much as possible.   I suspect that it might be wise to have more tests regarding decorators, and the docs might need a small amount of work, any feedback welcome on this point.
msg46763 -(view)Author: Michael (ms_)Date: 2004-09-01 09:32
Logged In: YES user_id=994316From:http://mail.python.org/pipermail/python-dev/2004-September/048518.html Guido wrote: "I've read the J2 proposal up and down several times, pondered all the issues, and slept on it for a night, and I still don't like it enough to accept it."  I'm closing this patch as a result, I hope that's the right thing to do.
History
DateUserActionArgs
2022-04-11 14:56:06adminsetgithub: 40802
2004-08-22 15:39:51ms_create
Supported byThe Python Software Foundation,
Powered byRoundup
Copyright © 1990-2022,Python Software Foundation
Legal Statements

[8]ページ先頭

©2009-2026 Movatter.jp