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:55 +0200
commitcde062dd42f67dfd2d7686286a322d40e9c3a4b7 (patch)
treeadbf2f1ebcdde9d54e0f54425866af38f7b1e820
parenta22840d214f199fcbe5a6867bc69f390386fe0c8 (diff)
downloadpysnmp-git-cde062dd42f67dfd2d7686286a322d40e9c3a4b7.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 eb05d529..da03764d 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