47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
From 923c498fd2c3c9805c613f8ac33e5572b9a784e2 Mon Sep 17 00:00:00 2001
|
|
From: Scott Johnson <scottjohnsoninsf@gmail.com>
|
|
Date: Sat, 22 Jun 2019 05:16:23 -0700
|
|
Subject: [PATCH] Fix deprecation warning in Python 3.7 (#231)
|
|
|
|
$SITE_PYTHON/lib/python3.7/site-packages/elftools/construct/lib/container.py:5
|
|
Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
|
|
|
|
This change is compatible with Python 3.3 and up, when the ABCs were
|
|
moved to collections.abc. Backward compatibility is retained through
|
|
the try/except block.
|
|
---
|
|
elftools/construct/lib/container.py | 2 +-
|
|
elftools/construct/lib/py3compat.py | 5 +++++
|
|
2 files changed, 6 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/elftools/construct/lib/container.py b/elftools/construct/lib/container.py
|
|
index 2f89b2dc..5a580fac 100644
|
|
--- a/elftools/construct/lib/container.py
|
|
+++ b/elftools/construct/lib/container.py
|
|
@@ -2,8 +2,8 @@
|
|
Various containers.
|
|
"""
|
|
|
|
-from collections import MutableMapping
|
|
from pprint import pformat
|
|
+from .py3compat import MutableMapping
|
|
|
|
def recursion_lock(retval, lock_name = "__recursion_lock__"):
|
|
def decorator(func):
|
|
diff --git a/elftools/construct/lib/py3compat.py b/elftools/construct/lib/py3compat.py
|
|
index 4a52c293..1cbae81d 100644
|
|
--- a/elftools/construct/lib/py3compat.py
|
|
+++ b/elftools/construct/lib/py3compat.py
|
|
@@ -6,6 +6,11 @@
|
|
import sys
|
|
PY3 = sys.version_info[0] == 3
|
|
|
|
+try:
|
|
+ from collections.abc import MutableMapping # python >= 3.3
|
|
+except ImportError:
|
|
+ from collections import MutableMapping # python < 3.3
|
|
+
|
|
|
|
if PY3:
|
|
import io
|
|
|