summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2019-04-12 09:01:26 +0200
committerIlya Etingof <etingof@gmail.com>2019-04-12 09:01:26 +0200
commitb7971b98a5448e735184339c99f3401bb12630de (patch)
treec981868915e45e5c91cd7ad094cb15d8dc72f471
parentc3d6619176a108758e1c7f0622cb64766471b27d (diff)
downloadpysnmp-git-b7971b98a5448e735184339c99f3401bb12630de.tar.gz
Fix `importlib` use on Py27
Also fixes bug in `imp`-based initialization
-rw-r--r--pysnmp/smi/builder.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/pysnmp/smi/builder.py b/pysnmp/smi/builder.py
index 2f55b8eb..a71c8a2c 100644
--- a/pysnmp/smi/builder.py
+++ b/pysnmp/smi/builder.py
@@ -14,16 +14,22 @@ import traceback
try:
import importlib
- PY_MAGIC_NUMBER = importlib.util.MAGIC_NUMBER
- SOURCE_SUFFIXES = importlib.machinery.SOURCE_SUFFIXES
- BYTECODE_SUFFIXES = importlib.machinery.BYTECODE_SUFFIXES
+ try:
+ PY_MAGIC_NUMBER = importlib.util.MAGIC_NUMBER
+ SOURCE_SUFFIXES = importlib.machinery.SOURCE_SUFFIXES
+ BYTECODE_SUFFIXES = importlib.machinery.BYTECODE_SUFFIXES
+
+ except Exception:
+ raise ImportError()
except ImportError:
import imp
PY_MAGIC_NUMBER = imp.get_magic()
- SOURCE_SUFFIXES = [imp.PY_SOURCE]
- BYTECODE_SUFFIXES = [imp.PY_COMPILED]
+ SOURCE_SUFFIXES = [s[0] for s in imp.get_suffixes()
+ if s[2] == imp.PY_SOURCE]
+ BYTECODE_SUFFIXES = [s[0] for s in imp.get_suffixes()
+ if s[2] == imp.PY_COMPILED]
PY_SUFFIXES = SOURCE_SUFFIXES + BYTECODE_SUFFIXES