Skip to content

Commit

Permalink
pythongh-116349: Deprecate platform.java_ver function (python#116471)
Browse files Browse the repository at this point in the history
Co-authored-by: Alex Waygood <[email protected]>
  • Loading branch information
sobolevn and AlexWaygood authored Mar 8, 2024
1 parent 4d95273 commit 0b64714
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 4 deletions.
4 changes: 4 additions & 0 deletions Doc/library/platform.rst
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,10 @@ Java Platform
``(os_name, os_version, os_arch)``. Values which cannot be determined are set to
the defaults given as parameters (which all default to ``''``).

.. deprecated-removed:: 3.13 3.15
It was largely untested, had a confusing API,
and was only useful for Jython support.


Windows Platform
----------------
Expand Down
9 changes: 9 additions & 0 deletions Doc/whatsnew/3.13.rst
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,10 @@ Deprecated
* The undocumented and unused ``tarfile`` attribute of :class:`tarfile.TarFile`
is deprecated and scheduled for removal in Python 3.16.

* :func:`platform.java_ver` is deprecated and will be removed in 3.15.
It was largely untested, had a confusing API,
and was only useful for Jython support.
(Contributed by Nikita Sobolev in :gh:`116349`.)

Pending Removal in Python 3.14
------------------------------
Expand Down Expand Up @@ -973,6 +977,11 @@ Pending Removal in Python 3.15
They will be removed in Python 3.15.
(Contributed by Victor Stinner in :gh:`105096`.)

* :func:`platform.java_ver` is deprecated and will be removed in 3.15.
It was largely untested, had a confusing API,
and was only useful for Jython support.
(Contributed by Nikita Sobolev in :gh:`116349`.)

Pending Removal in Python 3.16
------------------------------

Expand Down
4 changes: 3 additions & 1 deletion Lib/platform.py
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,7 @@ def mac_ver(release='', versioninfo=('', '', ''), machine=''):
return release, versioninfo, machine

def _java_getprop(name, default):

"""This private helper is deprecated in 3.13 and will be removed in 3.15"""
from java.lang import System
try:
value = System.getProperty(name)
Expand All @@ -525,6 +525,8 @@ def java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', '')):
given as parameters (which all default to '').
"""
import warnings
warnings._deprecated('java_ver', remove=(3, 15))
# Import the needed APIs
try:
import java.lang
Expand Down
10 changes: 7 additions & 3 deletions Lib/test/test_platform.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,9 +318,13 @@ def raises_oserror(*a):
platform._uname_cache = None

def test_java_ver(self):
res = platform.java_ver()
if sys.platform == 'java': # Is never actually checked in CI
self.assertTrue(all(res))
import re
msg = re.escape(
"'java_ver' is deprecated and slated for removal in Python 3.15"
)
with self.assertWarnsRegex(DeprecationWarning, msg):
res = platform.java_ver()
self.assertEqual(len(res), 4)

def test_win32_ver(self):
res = platform.win32_ver()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:func:`platform.java_ver` is deprecated and will be removed in 3.15.
It was largely untested, had a confusing API,
and was only useful for Jython support.

0 comments on commit 0b64714

Please sign in to comment.