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.
Created on 2012年04月11日 05:26 by chris.jerdonek, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Messages (6) | |||
|---|---|---|---|
| msg158008 - (view) | Author: Chris Jerdonek (chris.jerdonek) * (Python committer) | Date: 2012年04月11日 05:26 | |
The Python documentation says that the html module (defining html.escape()) is new in Python 3.2: http://docs.python.org/dev/library/html.html However, it's importable in Python 3.1, but without the escape() function. See below for evidence. This prevents the usual EAFP code from not working: try: # Python 3.2 deprecates cgi.escape() and adds the html module as a replacement. import html except ImportError: import cgi as html > python Python 3.1.4 (default, Apr 10 2012, 21:58:25) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import html >>> html.escape Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'escape' >>> dir(html) ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__'] >>> html.__file__ '/opt/local/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/html/__init__.py' |
|||
| msg158009 - (view) | Author: Ezio Melotti (ezio.melotti) * (Python committer) | Date: 2012年04月11日 06:01 | |
The doc for the html module was added in 5633af590057 (see #2830) and it was previously undocumented even if it was importable. Moving the versionadded under html.escape sounds good to me. As a side note, it would be better to do try: # Python 3.2 deprecates cgi.escape() and adds html.escape() as a replacement. from html import escape except ImportError: from cgi import escape rather than importing the whole cgi module as "html" just to use the escape function. |
|||
| msg158011 - (view) | Author: Georg Brandl (georg.brandl) * (Python committer) | Date: 2012年04月11日 06:50 | |
"html" is a package. The "html.parser" module, which was already in 3.0, cannot be importable without a "html" package, so in all 3.x versions there was at least an empty html/__init__.py. That said, I have no objection to Ezio's suggestion. |
|||
| msg158014 - (view) | Author: Chris Jerdonek (chris.jerdonek) * (Python committer) | Date: 2012年04月11日 09:23 | |
Ezio, I appreciate the suggestion/tip. Thanks. Regarding Georg's clarification that '"html" is a package,' I don't know if that was intended to correct my comment, Ezio's comment, the docs, or all of the above. In any case, that point should also be corrected in the docs as the docs currently say about html, "This *module* defines utilities to manipulate HTML." |
|||
| msg158016 - (view) | Author: Georg Brandl (georg.brandl) * (Python committer) | Date: 2012年04月11日 09:38 | |
The comment that "html" was a package was not meant as a correction, but as an explanation why it already exists previous to its status as an official "module" in 3.2. No correction to "package"is needed. |
|||
| msg158050 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年04月11日 16:36 | |
New changeset 2776ccf003cc by Georg Brandl in branch '3.2': Closes #14545: make clearer what was added. http://hg.python.org/cpython/rev/2776ccf003cc New changeset f5f8a7fd881c by Georg Brandl in branch 'default': #14545: merge 3.2 http://hg.python.org/cpython/rev/f5f8a7fd881c |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:29 | admin | set | github: 58750 |
| 2012年04月11日 16:36:48 | python-dev | set | status: open -> closed nosy: + python-dev messages: + msg158050 resolution: fixed stage: needs patch -> resolved |
| 2012年04月11日 09:38:51 | georg.brandl | set | messages: + msg158016 |
| 2012年04月11日 09:23:37 | chris.jerdonek | set | messages: + msg158014 |
| 2012年04月11日 06:50:44 | georg.brandl | set | nosy:
+ georg.brandl messages: + msg158011 |
| 2012年04月11日 06:01:21 | ezio.melotti | set | assignee: docs@python components: + Documentation, - None versions: + Python 3.2, Python 3.3, - Python 3.1 keywords: + easy nosy: + ezio.melotti, docs@python messages: + msg158009 stage: needs patch |
| 2012年04月11日 05:26:11 | chris.jerdonek | create | |