/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
contrib/python/ipython/py3/IPython/utils/module_paths.py
72 строки
2 KB
wilytiger
support building opensource nbs with ya make
09 окт 2023, 17:33
09 окт 2023, 17:33
759d542
Код
Авторство
О чём код?
"""Utility functions for finding modules Utility functions for finding modules on sys.path. """ #----------------------------------------------------------------------------- # Copyright (c) 2011, the IPython Development Team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file COPYING.txt, distributed with this software. #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # Imports #----------------------------------------------------------------------------- # Stdlib imports import importlib import sys # Third-party imports # Our own imports #----------------------------------------------------------------------------- # Globals and constants #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # Local utilities #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # Classes and functions #----------------------------------------------------------------------------- def find_mod(module_name): """ Find module `module_name` on sys.path, and return the path to module `module_name`. * If `module_name` refers to a module directory, then return path to `__init__` file. * If `module_name` is a directory without an __init__file, return None. * If module is missing or does not have a `.py` or `.pyw` extension, return None. * Note that we are not interested in running bytecode. * Otherwise, return the fill path of the module. Parameters ---------- module_name : str Returns ------- module_path : str Path to module `module_name`, its __init__.py, or None, depending on above conditions. """ spec = importlib.util.find_spec(module_name) module_path = spec.origin if module_path is None: if spec.loader in sys.meta_path: return spec.loader return None else: split_path = module_path.split(".") if split_path[-1] in ["py", "pyw"]: return module_path else: return None