]> granicus.if.org Git - esp-idf/commitdiff
examples, tools: Fix Python3 deprecation warning for the imp module
authorRoland Dobai <dobai.roland@gmail.com>
Fri, 14 Dec 2018 16:37:43 +0000 (17:37 +0100)
committerRoland Dobai <dobai.roland@gmail.com>
Thu, 20 Dec 2018 11:44:33 +0000 (12:44 +0100)
examples/protocols/http_server/advanced_tests/http_server_advanced_test.py
examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py
examples/protocols/http_server/simple/http_server_simple_test.py
tools/esp_prov/proto/__init__.py
tools/tiny-test-fw/Utility/CaseConfig.py
tools/tiny-test-fw/Utility/SearchCases.py
tools/tiny-test-fw/Utility/__init__.py

index 5730b438553d9d7368e96127a89b8072e2bf1594..f4ed79bafad6427386cb14648073493c44fb9d1d 100644 (file)
@@ -17,7 +17,6 @@
 from __future__ import division
 from __future__ import print_function
 from __future__ import unicode_literals
-import imp
 import re
 import os
 import sys
@@ -41,7 +40,7 @@ import Utility
 
 # Import client module
 expath = os.path.dirname(os.path.realpath(__file__))
-client = imp.load_source("client", expath + "/scripts/test.py")
+client = Utility.load_source("client", expath + "/scripts/test.py")
 
 
 # Due to connectivity issues (between runner host and DUT) in the runner environment,
index 2cdd4cf204effa82033743abdfcc7d770721f18a..dae81814e2af83996bbbf11b1f1f88dfa7fcdbdf 100644 (file)
@@ -19,7 +19,6 @@ from __future__ import print_function
 from __future__ import unicode_literals
 from builtins import str
 from builtins import range
-import imp
 import re
 import os
 import sys
@@ -43,7 +42,7 @@ import Utility
 
 # Import client module
 expath = os.path.dirname(os.path.realpath(__file__))
-client = imp.load_source("client", expath + "/scripts/adder.py")
+client = Utility.load_source("client", expath + "/scripts/adder.py")
 
 
 @IDF.idf_example_test(env_tag="Example_WIFI")
index 143f708cab7d5d476a9b6f1d326774060cecafc8..38d8c319e022e0da4da553a3cd52cc931880e414 100644 (file)
@@ -18,7 +18,6 @@ from __future__ import division
 from __future__ import print_function
 from __future__ import unicode_literals
 from builtins import range
-import imp
 import re
 import os
 import sys
@@ -44,7 +43,7 @@ import Utility
 
 # Import client module
 expath = os.path.dirname(os.path.realpath(__file__))
-client = imp.load_source("client", expath + "/scripts/client.py")
+client = Utility.load_source("client", expath + "/scripts/client.py")
 
 
 @IDF.idf_example_test(env_tag="Example_WIFI")
index 0e5047b6160ce9c1a6b0683e13a72844aecd0c60..c0292bb771c524e4c86576afa63691a1482b53d3 100644 (file)
 # limitations under the License.
 #
 
-import imp
 import os
 
+
+def _load_source(name, path):
+    try:
+        from importlib.machinery import SourceFileLoader
+        return SourceFileLoader(name, path).load_module()
+    except ImportError:
+        # importlib.machinery doesn't exists in Python 2 so we will use imp (deprecated in Python 3)
+        import imp
+        return imp.load_source(name, path)
+
+
 idf_path = os.environ['IDF_PATH']
 
 # protocomm component related python files generated from .proto files
-constants_pb2 = imp.load_source("constants_pb2", idf_path + "/components/protocomm/python/constants_pb2.py")
-sec0_pb2      = imp.load_source("sec0_pb2",      idf_path + "/components/protocomm/python/sec0_pb2.py")
-sec1_pb2      = imp.load_source("sec1_pb2",      idf_path + "/components/protocomm/python/sec1_pb2.py")
-session_pb2   = imp.load_source("session_pb2",   idf_path + "/components/protocomm/python/session_pb2.py")
+constants_pb2 = _load_source("constants_pb2", idf_path + "/components/protocomm/python/constants_pb2.py")
+sec0_pb2      = _load_source("sec0_pb2",      idf_path + "/components/protocomm/python/sec0_pb2.py")
+sec1_pb2      = _load_source("sec1_pb2",      idf_path + "/components/protocomm/python/sec1_pb2.py")
+session_pb2   = _load_source("session_pb2",   idf_path + "/components/protocomm/python/session_pb2.py")
 
 # wifi_provisioning component related python files generated from .proto files
-wifi_constants_pb2 = imp.load_source("wifi_constants_pb2", idf_path + "/components/wifi_provisioning/python/wifi_constants_pb2.py")
-wifi_config_pb2    = imp.load_source("wifi_config_pb2",    idf_path + "/components/wifi_provisioning/python/wifi_config_pb2.py")
+wifi_constants_pb2 = _load_source("wifi_constants_pb2", idf_path + "/components/wifi_provisioning/python/wifi_constants_pb2.py")
+wifi_config_pb2    = _load_source("wifi_config_pb2",    idf_path + "/components/wifi_provisioning/python/wifi_config_pb2.py")
 
 # custom_provisioning component related python files generated from .proto files
-custom_config_pb2  = imp.load_source("custom_config_pb2", idf_path +
-                                     "/examples/provisioning/custom_config/components/custom_provisioning/python/custom_config_pb2.py")
+custom_config_pb2  = _load_source("custom_config_pb2",  idf_path +
+                                  "/examples/provisioning/custom_config/components/custom_provisioning/python/custom_config_pb2.py")
index 1e3895cb74523709990cf4aec088170ec2b2d1e0..ee6234da8e6f9fd647ca63a3d9f57d2a87c5eff3 100644 (file)
@@ -43,13 +43,12 @@ Template Config File::
       - name: xxx
 """
 
-# TODO: add a function to use suitable import lib for python2 and python3
-import imp
-
 import yaml
 
 import TestCase
 
+from Utility import load_source
+
 
 def _convert_to_lower_case_bytes(item):
     """
@@ -169,8 +168,7 @@ class Parser(object):
         output = dict()
         for key in overwrite:
             _path = overwrite[key]["path"]
-            # TODO: add a function to use suitable import lib for python2 and python3
-            _module = imp.load_source(str(hash(_path)), overwrite[key]["path"])
+            _module = load_source(str(hash(_path)), overwrite[key]["path"])
             output[key] = _module.__getattribute__(overwrite[key]["class"])
         return output
 
index 431d195ec1caee6809b6faa1d2a45ea076feaaf3..a0930d307e704a4f6310908cb2fd3b9cceed4837 100644 (file)
@@ -17,8 +17,7 @@ import os
 import fnmatch
 import types
 import copy
-# TODO: add a function to use suitable import lib for python2 and python3
-import imp
+from Utility import load_source
 
 
 class Search(object):
@@ -31,8 +30,7 @@ class Search(object):
         print("Try to get cases from: " + file_name)
         test_functions = []
         try:
-            # TODO: add a function to use suitable import lib for python2 and python3
-            mod = imp.load_source(str(hash(file_name)), file_name)
+            mod = load_source(str(hash(file_name)), file_name)
             for func in [mod.__getattribute__(x) for x in dir(mod)
                          if isinstance(mod.__getattribute__(x), types.FunctionType)]:
                 try:
index 47d3e1b826bab78d1c7deca91683259fd7d3cee7..2a0759a7bcf8a907c17884fd5534965d51cf9748 100644 (file)
@@ -36,3 +36,13 @@ def console_log(data, color="white", end="\n"):
         # reset color to white for later logs
         print(_COLOR_CODES["white"] + u"\r")
     sys.stdout.flush()
+
+
+def load_source(name, path):
+    try:
+        from importlib.machinery import SourceFileLoader
+        return SourceFileLoader(name, path).load_module()
+    except ImportError:
+        # importlib.machinery doesn't exists in Python 2 so we will use imp (deprecated in Python 3)
+        import imp
+        return imp.load_source(name, path)