Use for/else in custom_module_finder

This commit is contained in:
Eren Dogan 2023-04-25 12:50:39 -07:00
parent b884fb36c3
commit 5fe784ab14
1 changed files with 15 additions and 15 deletions

View File

@ -60,26 +60,26 @@ class custom_module_finder(MetaPathFinder):
# Skip if the package is not openram # Skip if the package is not openram
if package_name != "openram": if package_name != "openram":
return None return None
customizable = False
# Search for the module name in customizable modules # Search for the module name in customizable modules
from openram import OPTS from openram import OPTS
for k, v in OPTS.__dict__.items(): for k, v in OPTS.__dict__.items():
if module_name == v: if module_name == v:
customizable = True break
else:
return None
# Search for the custom module # Search for the custom module
if customizable: import sys
import sys # Try to find the module in sys.path
# Try to find the module in sys.path for path in sys.path:
for path in sys.path: # Skip this path if not directory
# Skip this path if not directory if not os.path.isdir(path):
if not os.path.isdir(path): continue
continue for file in os.listdir(path):
for file in os.listdir(path): # If there is a script matching the custom module name,
# If there is a script matching the custom module name, # import it with the default module name
# import it with the default module name if file == (module_name + ".py"):
if file == (module_name + ".py"): from importlib.util import spec_from_file_location
from importlib.util import spec_from_file_location return spec_from_file_location(module_name, "{0}/{1}.py".format(path, module_name))
return spec_from_file_location(module_name, "{0}/{1}.py".format(path, module_name))
return None return None
# Python calls meta path finders and asks them to handle the module import if # Python calls meta path finders and asks them to handle the module import if
# they can # they can