From f178727aae9a0b05ec110fb03f4a0c30ac846505 Mon Sep 17 00:00:00 2001 From: Laukik Hase Date: Fri, 28 Jan 2022 15:51:50 +0530 Subject: [PATCH] esp_prov.py: Replaced deprecated function for loading modules --- tools/esp_prov/proto/__init__.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/tools/esp_prov/proto/__init__.py b/tools/esp_prov/proto/__init__.py index 4c1bd501bf..4800fd32dc 100644 --- a/tools/esp_prov/proto/__init__.py +++ b/tools/esp_prov/proto/__init__.py @@ -13,17 +13,20 @@ # limitations under the License. # +import importlib.util import os +import sys +from importlib.abc import Loader +from typing import Any -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) +def _load_source(name, path): # type: (str, str) -> Any + spec = importlib.util.spec_from_file_location(name, path) + module = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = module + assert isinstance(spec.loader, Loader) + spec.loader.exec_module(module) + return module idf_path = os.environ['IDF_PATH']