dell/omsdk

python-future is now deprecated

Opened this issue · 2 comments

Details

python-future is now deprecated and does not work with python 3.12. From gentoo's package notes:

# Deprecated, doesn't work with python 3.12. Unmaintained with last
# serious release in 2019, and another release in 2024 that claims
# to support python 3.12 but fails tests if you actually do. No
# route to making it work with python 3.13 at all, and upstream
# explicitly states that future "like Python 2, is now done". The
# package is entirely redundant to packages not supporting python
# 2 anymore, and the ones that do support it should be using
# dev-python/six instead, anyways.  Bug #888271
# Removal on 2024-04-13.

Impact

If this project does depend on future (as stated in requirements-python3x.txt), it will stop working or present with issues starting with python 3.12.

NeedBy

future library should be purged from this project before distributions ship with python 3.12 or potentially 3.13 as the default. Until fixed, users should be instructed to use a virtualenv with <python-3.12.

Severity

Moderate.

I'm no python expert, but it appears python-future is not really used anywhere.

The only reference is in omsdk/sdkprint.py:

from __future__ import print_function

Additionally, the print function is not used in that file (pprint is used instead).

So if my analysis is correct, the following diff should be enough to purge python-future from this package:

diff -Naur a/omsdk/sdkprint.py b/omsdk/sdkprint.py
--- a/omsdk/sdkprint.py 2023-06-26 13:56:53.000000000 +0300
+++ b/omsdk/sdkprint.py 2024-04-06 15:37:36.124727639 +0300
@@ -20,7 +20,6 @@
 #
 # Authors: Vaideeswaran Ganesan
 #
-from __future__ import print_function
 import io
 import logging
 import threading
diff -Naur a/requirements-python2x.txt b/requirements-python2x.txt
--- a/requirements-python2x.txt 2023-06-26 13:56:53.000000000 +0300
+++ b/requirements-python2x.txt 2024-04-06 15:37:46.611362341 +0300
@@ -3,5 +3,4 @@
 enum34>=1.1.6
 requests>=2.12.3
 PyYAML>=3.12
-future>=0.16.0
 pysnmp_mibs>=0
\ No newline at end of file
diff -Naur a/requirements-python3x.txt b/requirements-python3x.txt
--- a/requirements-python3x.txt 2023-06-26 13:56:53.000000000 +0300
+++ b/requirements-python3x.txt 2024-04-06 15:37:50.418017411 +0300
@@ -1,5 +1,4 @@
 pysnmp>=4.4.1
 requests>=2.12.3
 PyYAML>=3.12
-future>=0.16.0
 pysnmp_mibs>=0
\ No newline at end of file
diff -Naur a/setup-omsdk.py b/setup-omsdk.py
--- a/setup-omsdk.py    2023-06-26 13:56:53.000000000 +0300
+++ b/setup-omsdk.py    2024-04-06 15:38:03.627977191 +0300
@@ -107,7 +107,6 @@
         "enum34; python_version<'3.4'",
         "requests>=2.12.3",
         "PyYAML>=3.12",
-        "future>=0.16.0",
         "pysnmp_mibs>=0",
         "ipaddress>=0"
     ],
diff -Naur a/setup.py b/setup.py
--- a/setup.py  2023-06-26 13:56:53.000000000 +0300
+++ b/setup.py  2024-04-06 15:38:10.161290647 +0300
@@ -30,7 +30,6 @@
         'python_version<3.4',
         'requests>=2.12.3',
         'PyYAML>=3.12',
-        'future>=0.16.0',
         'pysnmp_mibs>=0',
         'ipaddress>=0'
     ]

I haven't checked whether it's needed by any dependencies, though. In any case, I would say purging python2 support entirely in future versions would be a welcome change.

Fedora is tracking this bug downstream https://bugzilla.redhat.com/show_bug.cgi?id=2276615 as it is failing our Python 3.13 pre-release checks. If I get time, I'll try to do a PR for this.