示例#1
0
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
示例#2
0
文件: utils.py 项目: asifr/armisc
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)
示例#3
0
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
示例#5
0
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)
示例#6
0
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
示例#8
0
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
示例#9
0
        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)



示例#11
0
# 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)