def import_these(*pkg_args):
return [import_this(pkg_str) for pkg_str in pkg_args]
def import_this(pkg_str: str):
import importlib
try:
return importlib.import_module(pkg_str)
except ModuleNotFoundError:
print(f"The '{pkg_str}' module wasn't found."
"Probably, it's not installed or it may not be in the path.")
raise
except AttributeError:
print("Only strings are supported for import."
f"'{type(pkg_str).__name__}' isn't supported.")
raise
- Importing a single module
pathlib = import_this('pathlib')
Similar to
import pathlib
- Importing a module from package
keras_datasets = import_these('keras' '.' 'datasets')
Similar to
from keras import datasets as keras_datasets
- Importing multiple packages/modules
keras, sklearn, np, pd, pplot = import_these('keras', 'sklearn', 'numpy', 'pandas', 'matplotlib.pyplot')
Similar to:
import keras
import sklearn
import numpy as np
import pandas as pd
from matplotlib import pyplot as pplot
- Oops, I don't need all at present.
keras, _, np, pd, plot = import_these('keras', 'sklearn', 'numpy', 'pandas', 'matplotlib.pyplot')
Similar to not importing at all. :P
- Importing from a tuple/list of to be imported packages/modules
to_import = ['sys', 'time', 'os', 'pprint']
sys, time, os, pprint = import_these(*to_import)
pprint
Similar to
import sys, time, os, pprint
- Importing from a string separated by space
to_import = 'sys time os pprint'.split(' ')
import_these(*to_import)
Similar to
import sys, time, os, pprint
But, 5 and 6 are a lot powerful. You can import dynamicallly (even from user's input).