def find_user_modules(match=None, ignore=[]): from sys import modules echo(__prefix + gb("Tracking python dependencies")) for name, module in list(modules.items()): try: fn = module.__file__ except AttributeError: # Builtins continue # Don't worry about system modules # TODO: check for Linux/Windows patterns if has_any(fn, __file_ignores): continue # Get rid of explicitly ignored modules __sys_ignores = ['__main__', '__mp_main__'] if has_any(name, __sys_ignores): continue if has_any(name, ignore): echo(" " + style("ignored ", fg='red') + name) continue # If we specify patterns to match, then we must # find the string within these if not (match is None or has_any(name, match)): continue echo(" " + name) yield fn
def reload_module(modulename: str): """Reload a module and it's submodules""" from importlib import reload from sys import modules for k, v in modules.items(): if k.startswith(modulename): reload(v)
def delete_module(modname): from sys import modules del_keys = [] for mod_key, mod_value in modules.items(): if modname in mod_key: del_keys.append(mod_key) elif modname in str(mod_value): del_keys.append(mod_key) for key in del_keys: del modules[key]
def reload_views(): mods = [ module[1] for module in modules.items() if isinstance(module[1], ModuleType) ] for mod in mods: try: if basename(dirname(mod.__file__)) == "views": reload(mod) yield mod.__name__ except: pass
def try_all(excludes = [], excluded_paths=[]): """ tests all imported modules takes an optional list of module names and/or module objects to skip over. modules from files under under any of excluded_paths are also skipped. """ failed = [] for modulename, module in modules.items(): # skip builtins if not hasattr(module, '__file__'): continue # skip modules under any of excluded_paths if [p for p in excluded_paths if module.__file__.startswith(p)]: continue if modulename not in excludes and module not in excludes: try_module(module, modulename, failed) print_failed(failed)
def find_config_class(class_name): """ Return the set of PyText classes matching that name. Handles fully-qualified `class_name` including module. """ module_part = None if "." in class_name: m = class_name.split(".") class_name = m[-1] module_part = ".".join(m[:-1]) ret = set() for mod_name, mod in modules.items(): if not mod_name.startswith("pytext"): continue for name, obj in getmembers(mod, isclass): if name == class_name: if not module_part or obj.__module__ == module_part: ret.add(obj) return ret
def find_config_class(class_name): """ Return the set of PyText classes matching that name. Handles fully-qualified `class_name` including module. """ module_part = None if "." in class_name: m = class_name.split(".") class_name = m[-1] module_part = ".".join(m[:-1]) ret = set() for _, mod in list(modules.items()): try: for name, obj in getmembers(mod, isclass): if name == class_name: if not module_part or obj.__module__ == module_part: ret.add(obj) except ModuleNotFoundError: continue return ret
CREATE TABLE python_modules ( module_name VARCHAR2(50) NOT NULL, file_path VARCHAR2(300) NOT NULL, t_id INT NOT NULL ) """ # 执行创建表 create_flag = ora.execute(create_table) # 得到表所有列 print(ora.get_columns('python_modules')) # 添加模块信息 M = [] count = 1 for m_name, m_info in modules.items(): try: M.append((m_name, m_info.__file__, count)) count += 1 except AttributeError: pass print(len(M)) print( ora.insertMany('python_modules', ['module_name', 'file_path', 't_id'], M)) ora.commit() from prettytable import from_db_cursor
# Using Sys Module from sys import argv from sys import path from sys import modules scriptName = argv[0] scriptDirectory = path[0] print "Script Name - argv[0]: {}".format(scriptName) print "script Directory - path[0]: {}".format(scriptDirectory) print "Modules used in the script:\n" for module in modules.items(): print "module Name: {}".format(module)
# This section is dedicated to make the "Reload Scripts" operator of # Blender truly work to be able to update the add-on while developping. # This feature only reloads this __init__ file, so we force reloading all # other files here. # When loaded is already in local, we know this is called by "Reload plugins" if locals().get('loaded') or True: loaded = False from importlib import reload from sys import modules import os for i in range(3): # Try up to three times, in case of ordering errors err = False modules[__name__] = reload(modules[__name__]) submodules = list(modules.items()) for name, module in submodules: if name.startswith(f"{__package__}."): if module.__file__ is None: # This is a namespace, no need to do anything continue elif not os.path.isfile(module.__file__): # File has been removed del modules[name] del globals()[name] else: print(f"Reloading: {module}") try: globals()[name] = reload(module) except Exception as e: print(e)