(original) (raw)
changeset: 96014:9c606c573ec0 user: Berker Peksag berker.peksag@gmail.com date: Wed May 13 12:32:20 2015 +0300 files: Doc/library/platform.rst Doc/whatsnew/3.5.rst Lib/platform.py Lib/test/test_platform.py Misc/NEWS description: Issue #1322: platform.dist() and platform.linux_distribution() functions are now deprecated. Initial patch by Vajrasky Kok. diff -r bde652ae05fd -r 9c606c573ec0 Doc/library/platform.rst --- a/Doc/library/platform.rst Wed May 13 12:16:27 2015 +0300 +++ b/Doc/library/platform.rst Wed May 13 12:32:20 2015 +0300 @@ -247,6 +247,8 @@ This is another name for :func:`linux_distribution`. + .. deprecated-removed:: 3.5 3.7 + .. function:: linux_distribution(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake',...), full_distribution_name=1) Tries to determine the name of the Linux OS distribution name. @@ -263,6 +265,8 @@ parameters. ``id`` is the item in parentheses after the version number. It is usually the version codename. + .. deprecated-removed:: 3.5 3.7 + .. function:: libc_ver(executable=sys.executable, lib='', version='', chunksize=2048) Tries to determine the libc version against which the file executable (defaults diff -r bde652ae05fd -r 9c606c573ec0 Doc/whatsnew/3.5.rst --- a/Doc/whatsnew/3.5.rst Wed May 13 12:16:27 2015 +0300 +++ b/Doc/whatsnew/3.5.rst Wed May 13 12:32:20 2015 +0300 @@ -700,6 +700,11 @@ :meth:`~string.Formatter.format` method of the :class:`string.Formatter` class has been deprecated. +* :func:`platform.dist` and :func:`platform.linux_distribution` functions are + now deprecated and will be removed in Python 3.7. Linux distributions use + too many different ways of describing themselves, so the functionality is + left to a package. + (Contributed by Vajrasky Kok and Berker Peksag in :issue:`1322`.) Deprecated functions and types of the C API ------------------------------------------- diff -r bde652ae05fd -r 9c606c573ec0 Lib/platform.py --- a/Lib/platform.py Wed May 13 12:16:27 2015 +0300 +++ b/Lib/platform.py Wed May 13 12:32:20 2015 +0300 @@ -297,6 +297,15 @@ supported_dists=_supported_dists, full_distribution_name=1): + import warnings + warnings.warn("dist() and linux_distribution() functions are deprecated " + "in Python 3.5 and will be removed in Python 3.7", + PendingDeprecationWarning, stacklevel=2) + return _linux_distribution(distname, version, id, supported_dists, + full_distribution_name) + +def _linux_distribution(distname, version, id, supported_dists, + full_distribution_name): """ Tries to determine the name of the Linux OS distribution name. @@ -363,9 +372,13 @@ args given as parameters. """ - return linux_distribution(distname, version, id, - supported_dists=supported_dists, - full_distribution_name=0) + import warnings + warnings.warn("dist() and linux_distribution() functions are deprecated " + "in Python 3.5 and will be removed in Python 3.7", + PendingDeprecationWarning, stacklevel=2) + return _linux_distribution(distname, version, id, + supported_dists=supported_dists, + full_distribution_name=0) def popen(cmd, mode='r', bufsize=-1): diff -r bde652ae05fd -r 9c606c573ec0 Lib/test/test_platform.py --- a/Lib/test/test_platform.py Wed May 13 12:16:27 2015 +0300 +++ b/Lib/test/test_platform.py Wed May 13 12:32:20 2015 +0300 @@ -311,10 +311,24 @@ self.assertEqual(version, '19') self.assertEqual(distid, 'Schr\xf6dinger\u2019s Cat') -def test_main(): - support.run_unittest( - PlatformTest - ) + +class DeprecationTest(unittest.TestCase): + + def test_dist_deprecation(self): + with self.assertWarns(PendingDeprecationWarning) as cm: + platform.dist() + self.assertEqual(str(cm.warning), + 'dist() and linux_distribution() functions are ' + 'deprecated in Python 3.5 and will be removed in ' + 'Python 3.7') + + def test_linux_distribution_deprecation(self): + with self.assertWarns(PendingDeprecationWarning) as cm: + platform.linux_distribution() + self.assertEqual(str(cm.warning), + 'dist() and linux_distribution() functions are ' + 'deprecated in Python 3.5 and will be removed in ' + 'Python 3.7') if __name__ == '__main__': - test_main() + unittest.main() diff -r bde652ae05fd -r 9c606c573ec0 Misc/NEWS --- a/Misc/NEWS Wed May 13 12:16:27 2015 +0300 +++ b/Misc/NEWS Wed May 13 12:32:20 2015 +0300 @@ -45,6 +45,9 @@ Library ------- +- Issue #1322: platform.dist() and platform.linux_distribution() functions are + now deprecated. Initial patch by Vajrasky Kok. + - Issue #22486: Added the math.gcd() function. The fractions.gcd() function now is deprecated. Based on patch by Mark Dickinson. /berker.peksag@gmail.com