summaryrefslogtreecommitdiff
path: root/tools/mpy-tool.py
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2025-08-08 10:09:13 -0500
committerDamien George <damien@micropython.org>2025-09-15 14:53:32 +1000
commitf0c6f16b9eeedc11f3b042704109fddb9aa3532f (patch)
tree49c6d1923e0f5f488ce589c300e6df19e0176226 /tools/mpy-tool.py
parentd441788975a6dfb277ad9a3d54d651ae48817d16 (diff)
all: Remove Python 2.7 support.
Python 2.7 has been EOL since January 2020. Ubuntu oldoldlts (Focal Fossa, 20.04) has Python 3.8. Debian oldoldstable (Buster, from 2019) has Python 3.7. RHEL 8 (from 2019) has Python 3.6. It's easier than ever to install a modern Python using uv. Given this, it seems like a fine idea to drop Python 2.7 support. Even though the build is not tested on Python as old as 3.3, I left comments stating that "3.3+" is the baseline Python version. However, it might make sense to bump this to e.g., 3.10, the oldest Python 3 version used during CI. Or, using uv or another method actually test on the oldest Python interpreter that is desirable to support (uv goes back to Python 3.7 easily; in October 2025, the oldest supported Python interpreter version will be 3.10) Signed-off-by: Jeff Epler <jepler@gmail.com>
Diffstat (limited to 'tools/mpy-tool.py')
-rwxr-xr-xtools/mpy-tool.py38
1 files changed, 9 insertions, 29 deletions
diff --git a/tools/mpy-tool.py b/tools/mpy-tool.py
index 5c63f5be6..c87c656ff 100755
--- a/tools/mpy-tool.py
+++ b/tools/mpy-tool.py
@@ -24,41 +24,21 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
-# Python 2/3/MicroPython compatibility code
-from __future__ import print_function
+import struct
import sys
+from binascii import hexlify
-if sys.version_info[0] == 2:
- from binascii import hexlify as hexlify_py2
-
- str_cons = lambda val, enc=None: str(val)
- bytes_cons = lambda val, enc=None: bytearray(val)
- is_str_type = lambda o: isinstance(o, str)
- is_bytes_type = lambda o: type(o) is bytearray
- is_int_type = lambda o: isinstance(o, int) or isinstance(o, long) # noqa: F821
-
- def hexlify_to_str(b):
- x = hexlify_py2(b)
- return ":".join(x[i : i + 2] for i in range(0, len(x), 2))
-
-elif sys.version_info[0] == 3: # Also handles MicroPython
- from binascii import hexlify
+str_cons = str
+bytes_cons = bytes
+is_str_type = lambda o: isinstance(o, str)
+is_bytes_type = lambda o: isinstance(o, bytes)
+is_int_type = lambda o: isinstance(o, int)
- str_cons = str
- bytes_cons = bytes
- is_str_type = lambda o: isinstance(o, str)
- is_bytes_type = lambda o: isinstance(o, bytes)
- is_int_type = lambda o: isinstance(o, int)
- def hexlify_to_str(b):
- return str(hexlify(b, ":"), "ascii")
+def hexlify_to_str(b):
+ return str(hexlify(b, ":"), "ascii")
-# end compatibility code
-
-import sys
-import struct
-
sys.path.append(sys.path[0] + "/../py")
import makeqstrdata as qstrutil