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 2014年01月09日 12:47 by serhiy.storchaka, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| tkinter_typespecs.patch | serhiy.storchaka, 2014年01月09日 12:47 | Workaround for the _tkinter module | review | |
| type_from_spec_module.patch | serhiy.storchaka, 2015年02月01日 12:26 | review | ||
| Messages (12) | |||
|---|---|---|---|
| msg207733 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2014年01月09日 12:47 | |
In 3.4 pydoc fails for the TkappType and TkttType names in the _tkinter module. $ ./python -m pydoc _tkinter.TkappType Traceback (most recent call last): File "/home/serhiy/py/cpython/Lib/runpy.py", line 189, in _run_module_as_main "__main__", mod_spec) File "/home/serhiy/py/cpython/Lib/runpy.py", line 87, in _run_code exec(code, run_globals) File "/home/serhiy/py/cpython/Lib/pydoc.py", line 2593, in <module> cli() File "/home/serhiy/py/cpython/Lib/pydoc.py", line 2558, in cli help.help(arg) File "/home/serhiy/py/cpython/Lib/pydoc.py", line 1840, in help elif request: doc(request, 'Help on %s:', output=self._output) File "/home/serhiy/py/cpython/Lib/pydoc.py", line 1578, in doc pager(render_doc(thing, title, forceload)) File "/home/serhiy/py/cpython/Lib/pydoc.py", line 1555, in render_doc module = inspect.getmodule(object) File "/home/serhiy/py/cpython/Lib/inspect.py", line 610, in getmodule file = getabsfile(object, _filename) File "/home/serhiy/py/cpython/Lib/inspect.py", line 593, in getabsfile _filename = getsourcefile(object) or getfile(object) File "/home/serhiy/py/cpython/Lib/inspect.py", line 569, in getsourcefile filename = getfile(object) File "/home/serhiy/py/cpython/Lib/inspect.py", line 519, in getfile object = sys.modules.get(object.__module__) AttributeError: __module__ And same for _tkinter.TkttType. This issue can be easy fixed for the _tkinter module, but general solution is needed, because pydoc in 3.4 still can be broken for third-party code. |
|||
| msg208989 - (view) | Author: Yury Selivanov (yselivanov) * (Python committer) | Date: 2014年01月23日 20:26 | |
See issue #20372 -- fix for the 'inspect.getfile' function. |
|||
| msg209003 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2014年01月23日 21:47 | |
With issue #20372 patch pydoc no longer raise an exception, but it also doesn't produce useful output. In 3.3 it prints more details. |
|||
| msg231674 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2014年11月25日 17:43 | |
The problem not in pydoc or inspect itself. In Python 3.3 _tkinter.TkappType has the __module__ attribute: >>> import _tkinter >>> _tkinter.TkappType.__module__ 'builtins' Something was changed in 3.4 and builtin classes without dot in qualified name no longer have the __module__ attribute. |
|||
| msg231695 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2014年11月26日 07:48 | |
_tkinter.TkappType.__flags__ is different. In 3.3: 0b1000001000000000000 In 3.4: 0b1000001001000000000 The difference is Py_TPFLAGS_HEAPTYPE. This is the consequence of the change made in issue15721. |
|||
| msg234269 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2015年01月18日 20:11 | |
I think we should add a check to ensure than heap types have the __module__ attribute. |
|||
| msg235165 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2015年02月01日 12:26 | |
Here is a patch which adds a warning to PyType_FromSpec and PyType_FromSpecWithBases if type spec name doesn't contain module name. In conjunction with tkinter_typespecs.patch it should fix the issue. |
|||
| msg236871 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2015年02月28日 09:04 | |
What type of warning is more preferable here? It will be emitted at import. E.g.: $ ./python -Wall Python 3.5.0a1+ (default:28ba862036cc+, Feb 28 2015, 11:01:23) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tkinter _frozen_importlib:321: SyntaxWarning: builtin type tkapp has no the __module__ attribute _frozen_importlib:321: SyntaxWarning: builtin type tktimertoken has no the __module__ attribute DeprecationWarning? RuntimeWarning? |
|||
| msg236879 - (view) | Author: Alyssa Coghlan (ncoghlan) * (Python committer) | Date: 2015年02月28日 11:44 | |
The case for RuntimeWarning: the object isn't necessarily *broken* as such (most things will still work), but pickling and some introspection features may not work properly. The case for DeprecationWarning: breaking picking and introspection is bad when the fix (setting __module__) is straightforward, so this should eventually become an AttributeError: AttributeError: __module__ not set on builtin type tkapp My own preference is for the latter - eventually making it a hard requirement to specify the module name properly. Even true builtins officially live in the builtins module: >>> str.__module__ 'builtins' |
|||
| msg236919 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2015年02月28日 22:18 | |
It also can be ImportWarning (warnings triggered during the process of importing a module (ignored by default)). |
|||
| msg236936 - (view) | Author: Alyssa Coghlan (ncoghlan) * (Python committer) | Date: 2015年03月01日 06:34 | |
ImportWarning is slightly different - it's aimed at issues that happen during the operation of the import machinery itself. This isn't that - it's a warning related to the extension module actually initialising itself, so it's akin to a warning issued due to the behaviour of top level module source code, rather than by the import system. |
|||
| msg236941 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2015年03月01日 08:04 | |
New changeset a192cc5a63be by Serhiy Storchaka in branch '3.4': Issue #20204: Added the __module__ attribute to _tkinter classes. https://hg.python.org/cpython/rev/a192cc5a63be New changeset 3244142eeafb by Serhiy Storchaka in branch 'default': Issue #20204: Added the __module__ attribute to _tkinter classes. https://hg.python.org/cpython/rev/3244142eeafb New changeset d6dff5a5290a by Serhiy Storchaka in branch 'default': Issue #20204: Deprecation warning is now raised for builtin type without the https://hg.python.org/cpython/rev/d6dff5a5290a |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:56 | admin | set | github: 64403 |
| 2015年03月19日 07:25:59 | serhiy.storchaka | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2015年03月01日 11:58:22 | Arfrever | set | nosy:
+ Arfrever |
| 2015年03月01日 08:04:30 | python-dev | set | nosy:
+ python-dev messages: + msg236941 |
| 2015年03月01日 06:34:37 | ncoghlan | set | messages: + msg236936 |
| 2015年02月28日 22:18:31 | serhiy.storchaka | set | messages: + msg236919 |
| 2015年02月28日 11:44:43 | ncoghlan | set | messages: + msg236879 |
| 2015年02月28日 09:04:24 | serhiy.storchaka | set | priority: high -> normal nosy: + ezio.melotti messages: + msg236871 |
| 2015年02月21日 05:58:22 | serhiy.storchaka | set | nosy:
+ benjamin.peterson |
| 2015年02月01日 12:26:57 | serhiy.storchaka | set | files:
+ type_from_spec_module.patch messages: + msg235165 stage: needs patch -> patch review |
| 2015年01月18日 20:11:08 | serhiy.storchaka | set | assignee: serhiy.storchaka messages: + msg234269 stage: needs patch |
| 2014年11月26日 07:48:17 | serhiy.storchaka | set | versions:
+ Python 3.5 nosy: + loewis, amaury.forgeotdarc, pitrou, ned.deily, asvetlov, Robin.Schreiber messages: + msg231695 components: + Interpreter Core, Tkinter |
| 2014年11月25日 17:43:34 | serhiy.storchaka | set | messages: + msg231674 |
| 2014年01月23日 21:47:19 | serhiy.storchaka | set | messages: + msg209003 |
| 2014年01月23日 20:26:51 | yselivanov | set | messages: + msg208989 |
| 2014年01月23日 19:58:12 | serhiy.storchaka | set | nosy:
+ yselivanov |
| 2014年01月09日 12:51:23 | pitrou | set | priority: normal -> high nosy: + brett.cannon, ncoghlan, eric.snow |
| 2014年01月09日 12:47:35 | serhiy.storchaka | create | |