summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/library/platform.rst4
-rw-r--r--Doc/whatsnew/3.5.rst5
-rwxr-xr-xLib/platform.py19
-rw-r--r--Lib/test/test_platform.py24
-rw-r--r--Misc/NEWS3
5 files changed, 47 insertions, 8 deletions
diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst
index e27f2ad..679cc6b 100644
--- a/Doc/library/platform.rst
+++ b/Doc/library/platform.rst
@@ -247,6 +247,8 @@ Unix Platforms
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 @@ Unix Platforms
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 --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst
index a29ff10..b788365 100644
--- a/Doc/whatsnew/3.5.rst
+++ b/Doc/whatsnew/3.5.rst
@@ -700,6 +700,11 @@ Deprecated Python modules, functions and methods
: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 --git a/Lib/platform.py b/Lib/platform.py
index b1c659e..52a009a 100755
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -297,6 +297,15 @@ def linux_distribution(distname='', version='', id='',
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 @@ def dist(distname='', version='', id='',
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 --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py
index ededbdb..f4ce36d 100644
--- a/Lib/test/test_platform.py
+++ b/Lib/test/test_platform.py
@@ -311,10 +311,24 @@ class PlatformTest(unittest.TestCase):
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 --git a/Misc/NEWS b/Misc/NEWS
index 77e6f1d..b15d70f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -45,6 +45,9 @@ Core and Builtins
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.