pyats.utils.import_utils package¶
Submodules¶
- class pyats.utils.import_utils.flex.FlexImporter(module_prefix='')¶
Bases:
object
- Flexible module loader, overloading the load() api to be able to load from:
arbitrary file directly
absolute module name (imported or not)
module object
- Parameters
(str) (module_prefix) – only used when the loading is done arbitrarily from file outside of PYTHONPATH.
- load(obj)¶
Load object into module
API to load user supplied object to a python module.
- Parameters
(obj) (job) – Could be a file, a ModuleType, name of a loaded module, or an absolute module path
- Returns
- Return type
- load_module_from_file(target)¶
load module from file
Loads a target file outside of PYTHONPATH into a python module object. This api allows the loading of arbitrary python files and update the sys.path list with the given module location.
- Parameters
(str) (target) –
- Returns
- Return type
python module
- class pyats.utils.import_utils.legacy.LegacyImporter¶
Bases:
importlib.abc.MetaPathFinder
Python import hook, enabling users with legacy imports in their code to continue leveraging legacy imports (eg, translate old import calls into newer import calls)
Example
# translate from legacy.package.path import X
# into from new_package.path import X
Warning
black magic -
do not tamper with -
- classmethod find_spec(name, path=None, target=None)¶
undocumented, do not use
- classmethod install()¶
undocumented, do not use
- classmethod invalidate_caches()¶
undocumented, do not use
- classmethod register(*args, **kwargs)¶
registers a new import mapping. Accepts a legacy name in string or regex, and maps to a new string/repl (in the case of regex)
- Parameters
(str/regex) (legacy) –
(str) (current) – name is provided as a regex object)
Examples
LegacyImporter.register(old = ‘new’)
# assuming old_to_new translates old name to new name # and new_to_old translates from new name to old name LegacyImporter.register(old_to_new, new_to_old)
- classmethod reverse_translate(name)¶
translates a new import string to an old import string
- classmethod translate(name)¶
translates an old import string to a new import string
- class pyats.utils.import_utils.legacy.LegacyLoader(module_name)¶
Bases:
importlib._abc.Loader
Import Loader, ditches the old module creation process and replaces it with actual new module
- create_module(spec)¶
undocumented, do not use
- exec_module(legacy_module)¶
undocumented, do not use
- pyats.utils.import_utils.misc.import_from_name(name)¶
Translate a ‘x.y.z’ style string into ‘from x.y import z’, and return z. Allows users to import using string names instead of calling importer.
Example
>>> obj = import_from_name('imporlib.reload')
- Parameters
(str) (name) –
- Returns
- Return type
Object imported
- Raises
- pyats.utils.import_utils.misc.on_import(f)¶
decorator, invokes given function when it is imported
Example
@on_import def print_msg():
print(‘message to print’)
- pyats.utils.import_utils.misc.str_or_list(value)¶
check_file
translates str/list into list.
- pyats.utils.import_utils.misc.translate_host(hostname)¶
translates a host name or address to a string representation of an IPv4/IPv6 address.
Example
>>> host = translate_host('asg-lnx-1')
- Parameters
(str) (hostname) – representation of an IPv4/v6 address
- Returns
- Return type
Returns an IPv4/v6 address as a string, such as ‘10.85.87.95’
- Raises
socket.gaierror (getaddrerror – given host name is invalid):