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 2020年06月30日 04:53 by methane, last changed 2022年04月11日 14:59 by admin. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 21273 | closed | methane, 2020年07月02日 04:38 | |
| PR 21276 | closed | methane, 2020年07月02日 06:24 | |
| PR 21309 | merged | methane, 2020年07月04日 01:07 | |
| PR 21345 | merged | miss-islington, 2020年07月06日 02:48 | |
| Messages (14) | |||
|---|---|---|---|
| msg372653 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年06月30日 04:53 | |
I don't think we need to remove them all at onece. But we can remove some of them for code health. c-api/module.rst .. c:function:: const char* PyModule_GetFilename(PyObject *module) .. deprecated:: 3.2 c-api/init.rst .. c:function:: void PyEval_AcquireLock() .. deprecated:: 3.2 .. c:function:: void PyEval_ReleaseLock() .. deprecated:: 3.2 unittest: .. deprecated:: 3.1 The fail* aliases listed in the second column have been deprecated. .. deprecated:: 3.2 The assert* aliases listed in the third column have been deprecated. .. deprecated:: 3.2 ``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to :meth:`.assertRegex` and :meth:`.assertRaisesRegex`. urllib.request: .. class:: URLopener(proxies=None, **x509) .. deprecated:: 3.3 .. class:: FancyURLopener(...) .. deprecated:: 3.3 turtle: .. function:: settiltangle(angle) .. deprecated:: 3.1 imp: .. function:: get_suffixes() .. function:: find_module(name[, path]) .. function:: load_module(name, file, pathname, description) .. data:: PY_SOURCE .. data:: PY_COMPILED .. data:: C_EXTENSION .. data:: PKG_DIRECTORY .. data:: C_BUILTIN .. data:: PY_FROZEN configparser: .. method:: readfp(fp, filename=None) .. deprecated:: 3.2 email.errors: * :class:`MalformedHeaderDefect` -- A header was found that was missing a colon, or was otherwise malformed. .. deprecated:: 3.3 pkgutil: .. class:: ImpImporter(dirname=None) .. deprecated:: 3.3 .. class:: ImpLoader(fullname, file, filename, etc) .. deprecated:: 3.3 zipfile: .. exception:: BadZipfile Alias of :exc:`BadZipFile`, for compatibility with older Python versions. .. deprecated:: 3.2 inspect: .. function:: getargspec(func) .. deprecated:: 3.0 asyncore: .. deprecated:: 3.2 importlib: .. class:: Finder .. deprecated:: 3.3 .. method:: path_mtime(path) .. deprecated:: 3.3 |
|||
| msg372654 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年06月30日 05:10 | |
PyModule_GetFilename, PyEval_AcquireLock, PyEval_ReleaseLock. Are they part of stable ABI? |
|||
| msg372804 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年07月02日 06:18 | |
Unittest aliases are deprecated in #9424. Can we remove them in Python 3.10? |
|||
| msg372814 - (view) | Author: Christian Heimes (christian.heimes) * (Python committer) | Date: 2020年07月02日 07:20 | |
I'm all in favor to remove deprecated things, but please set a tangible deadline first. A lot of these functions have been deprecated for like a decade. Users tend to forget about deprecations or assume that removal was never going to happen. For example the removal of xml.etree.cElementTree broke a bunch of stuff although it had been deprecated since 3.0. At a bare minimum you should list removed features in the 3.9 changelog and porting guide as "will be removed in 3.10". I would even argue to add deprecation warnings to the code in 3.9 (with permission from the RM). If the RM is against deprecation warnings, then it might be good idea to postpone removal to 3.11. |
|||
| msg372821 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年07月02日 08:00 | |
I don't propose adding DeprecationWarning in 3.9 in this issue. I don't propose removing functions that don't emit DeprecationWarning. My first message is just a starting point. I don't propose to remove them all. |
|||
| msg372823 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年07月02日 08:02 | |
For the record, I noticed DeprecationWarning is not shown by unittest.runner by default. For example, https://travis-ci.org/github/necaris/python3-openid/jobs/703119609 So deprecated aliases should be not removed in 3.10. |
|||
| msg372828 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年07月02日 08:55 | |
I found most of deprecated items in my first comment are aliving by difficult reasons. I grepped top 4000 packages and found some candidates to deprecate. ## turtle * settiltangle is not used anywhere. * tiltangle is also deprecated by docstring, but not in the document. * Both methods don't emit DeprecationWarning. TODO(easy): Update the document and emit DeprecationWarning ## email.errors MalformedHeaderDefect is not used anywhere in top4000 packages. But it is simple alias, and DeprecationWarning is not emit. TODO(easy): Emit DeprecationWarning using module __getattr__. ## importlib abc.SourceLoader.path_mtime is not used anywhere. TODO: Remove path_mtime from the ABC and raise DeprecationWarning if path_mtime is defined in subclass in path_stats. --- importlib should be checked by experts. I keep TODO(easy) for new contributors. |
|||
| msg372830 - (view) | Author: Karthikeyan Singaravelan (xtreak) * (Python committer) | Date: 2020年07月02日 09:02 | |
> For the record, I noticed DeprecationWarning is not shown by unittest.runner by default. There is an open issue for this but I think it's enabled by default https://bugs.python.org/issue39892 $ cat /tmp/test_bar.py import unittest import warnings class TestFoo(unittest.TestCase): def test_foo(self): self.assertEquals(1, 1) if __name__ == "__main__": unittest.main() $ python3.8 -m unittest test_bar /private/tmp/test_bar.py:8: DeprecationWarning: Please use assertEqual instead. self.assertEquals(1, 1) . ---------------------------------------------------------------------- Ran 1 test in 0.000s OK |
|||
| msg372901 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年07月03日 03:14 | |
Hmm. You are right. The warnings are shown by default. On the other hand, some project uses custom `setup.py test` command. It hides the DeprecationWarning. https://github.com/warner/python-ed25519/blob/master/setup.py https://github.com/warner/python-ed25519/blob/master/src/ed25519/test_ed25519.py#L42 How about emitting FutureWarning instead of DeprecationWarning? DeprecationWarning is hidden to avoid end users see noisy warnings. But test is for developers, not end users. |
|||
| msg372913 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年07月03日 09:07 | |
As we discussed in ML, PyEval_ReleaseLock is still used and removing may be not simple. Keep it as-is until Python 4.0. |
|||
| msg373034 - (view) | Author: Karthikeyan Singaravelan (xtreak) * (Python committer) | Date: 2020年07月05日 15:30 | |
Adding Miro since Fedora will be testing Python 3.10 and deprecated API removals here might potentially affect libraries like Python 3.9 testing. |
|||
| msg373066 - (view) | Author: Inada Naoki (methane) * (Python committer) | Date: 2020年07月06日 02:48 | |
New changeset 9ce8132e1f2339cfe116dfd4795574182c2245b4 by Inada Naoki in branch 'master': bpo-41165: Deprecate PyEval_ReleaseLock() (GH-21309) https://github.com/python/cpython/commit/9ce8132e1f2339cfe116dfd4795574182c2245b4 |
|||
| msg373067 - (view) | Author: miss-islington (miss-islington) | Date: 2020年07月06日 03:25 | |
New changeset 1ce59f0421d9550762977454bda22db750aa20aa by Miss Islington (bot) in branch '3.9': bpo-41165: Deprecate PyEval_ReleaseLock() (GH-21309) https://github.com/python/cpython/commit/1ce59f0421d9550762977454bda22db750aa20aa |
|||
| msg399825 - (view) | Author: Hugo van Kemenade (hugovk) * (Python triager) | Date: 2021年08月18日 09:27 | |
## unittest What's needed to move forward with removing the deprecated aliases? A deprecation warning is shown for `python3 -m unittest test_bar` and `python3 test_bar.py` (tested Python 3.6-3.10). No deprecation warning is shown for `python setup.py test`, however, both setuptools and pytest have deprecated/discouraged `python setup.py test`: https://github.com/pypa/setuptools/pull/1878 https://github.com/pytest-dev/pytest/pull/5546 https://github.com/pytest-dev/pytest/issues/5534 Docs already mention they are deprecated: https://docs.python.org/3/library/unittest.html#deprecated-aliases > At a bare minimum you should list removed features in the 3.9 changelog and porting guide as "will be removed in 3.10". I would even argue to add deprecation warnings to the code in 3.9 (with permission from the RM). If the RM is against deprecation warnings, then it might be good idea to postpone removal to 3.11. So at this stage (3.10 in RC), do we need to list them in the 3.11 changelog and porting guide as "will be removed in 3.12"? |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:59:33 | admin | set | github: 85337 |
| 2021年08月18日 09:27:28 | hugovk | set | nosy:
+ hugovk messages: + msg399825 |
| 2021年06月09日 10:11:22 | methane | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2020年07月06日 03:25:22 | miss-islington | set | messages: + msg373067 |
| 2020年07月06日 02:48:58 | miss-islington | set | nosy:
+ miss-islington pull_requests: + pull_request20493 |
| 2020年07月06日 02:48:38 | methane | set | messages: + msg373066 |
| 2020年07月05日 15:30:48 | xtreak | set | nosy:
+ hroncok messages: + msg373034 |
| 2020年07月04日 01:07:47 | methane | set | keywords:
+ patch pull_requests: + pull_request20461 |
| 2020年07月03日 09:07:40 | methane | set | messages: + msg372913 |
| 2020年07月03日 03:14:45 | methane | set | messages: + msg372901 |
| 2020年07月02日 09:02:26 | xtreak | set | messages: + msg372830 |
| 2020年07月02日 08:55:33 | methane | set | keywords:
- patch messages: + msg372828 |
| 2020年07月02日 08:31:24 | xtreak | set | nosy:
+ xtreak |
| 2020年07月02日 08:02:45 | methane | set | messages: + msg372823 |
| 2020年07月02日 08:00:04 | methane | set | messages: + msg372821 |
| 2020年07月02日 07:20:40 | christian.heimes | set | nosy:
+ christian.heimes messages: + msg372814 |
| 2020年07月02日 06:38:46 | methane | set | title: [Python 3.10] Remove APIs deprecated since Python 3.3 -> [Python 3.10] Remove APIs deprecated long enough |
| 2020年07月02日 06:24:40 | methane | set | pull_requests: + pull_request20425 |
| 2020年07月02日 06:21:33 | methane | set | keywords: + easy |
| 2020年07月02日 06:18:53 | methane | set | messages: + msg372804 |
| 2020年07月02日 04:38:46 | methane | set | keywords:
+ patch stage: patch review pull_requests: + pull_request20423 |
| 2020年06月30日 05:10:32 | methane | set | messages: + msg372654 |
| 2020年06月30日 04:53:16 | methane | create | |