Exemple #1
0
def interface(trace, arch, mode):
    '''
    Arguments:
    Trace - Log_file_path
    Arch -  Architecture
    Mode - Execution trace format

    '''
    parser_pm = pluggy.PluginManager("parser")
    decoder_pm = pluggy.PluginManager("decoder")
    parser_pm.add_hookspecs(ParserSpec)
    decoder_pm.add_hookspecs(DecoderSpec)

    parserfile = importlib.import_module("riscv_isac.plugins." + mode)
    parserclass = getattr(parserfile, "mode_" + mode)
    parser_pm.register(parserclass())
    parser = parser_pm.hook
    parser.setup(trace=trace, arch=arch)

    instructionObjectfile = importlib.import_module(
        "riscv_isac.plugins.internalDecoder")
    decoderclass = getattr(instructionObjectfile, "disassembler")
    decoder_pm.register(decoderclass())
    decoder = decoder_pm.hook
    decoder.setup(arch=arch)

    iterator = iter(parser.__iter__()[0])

    for instr, mnemonic, addr, commitvalue in iterator:
        if instr is not None:
            instrObj = decoder.decode(instr=instr, addr=addr)
Exemple #2
0
def start(config: Settings):

    backbones = pluggy.PluginManager("threatbus.backbone")
    backbones.add_hookspecs(backbonespecs)

    apps = pluggy.PluginManager("threatbus.app")
    apps.add_hookspecs(appspecs)

    tb_logger = logger.setup(config.logging, "threatbus")

    installed_apps = set(list_installed("threatbus.app"))
    configured_apps = set(config.plugins.apps.keys())
    for app in configured_apps:
        apps.load_setuptools_entrypoints("threatbus.app", app)

    installed_backbones = set(list_installed("threatbus.backbone"))
    configured_backbones = set(config.plugins.backbones.keys())
    for backbone in configured_backbones:
        backbones.load_setuptools_entrypoints("threatbus.backbone", backbone)

    ## Notify user about configuration mismatches between installed and
    ## configured plugins.
    for unwanted_app in installed_apps - configured_apps:
        tb_logger.info(
            f"Ignoring installed, but unconfigured app '{unwanted_app}'")

    for unwanted_backbones in installed_backbones - configured_backbones:
        tb_logger.info(
            f"Ignoring installed, but unconfigured backbones '{unwanted_backbones}'"
        )
    for unconfigured_app in (configured_apps -
                             installed_apps).union(configured_backbones -
                                                   installed_backbones):
        tb_logger.warn(
            f"Found configuration for '{unconfigured_app}' but no corresponding plugin is installed."
        )

    ## Validate all plugins that are both installed and configured
    for validators in apps.hook.config_validators():
        config.validators.register(*validators)
    for validators in backbones.hook.config_validators():
        config.validators.register(*validators)
    try:
        config.validators.validate()
    except Exception as e:
        sys.exit(f"Invalid config: {e}")

    bus_thread = ThreatBus(backbones.hook, apps.hook, tb_logger, config)
    signal.signal(signal.SIGINT, bus_thread.stop_signal)
    bus_thread.start()
    return bus_thread
Exemple #3
0
def create_manager(logger=None):
    manager = pluggy.PluginManager(PROJECT_NAME)
    if logger is not None:
        manager.trace.root.setwriter(logger.debug)
    manager.enable_tracing()
    manager.add_hookspecs(HookSpecs)
    # Pluggy will skip loading a plugin if it throws a DistributionNotFound exception.
    # However we don't all plugins to have to catch ImportError and re-throw.
    # So here we'll filter out any entry points that throw ImportError,
    # assuming one or more of their dependencies isn't present.
    for entry_point in pkg_resources.iter_entry_points(PROJECT_NAME):
        try:
            entry_point.load()
        except ImportError as e:
            if logger is not None:
                logger.warning(
                    "Failed to load %s entry point '%s': %s",
                    PROJECT_NAME,
                    entry_point.name,
                    e,
                )
            manager.set_blocked(entry_point.name)

    # Load the entry points into pluggy, having blocked any failing ones
    manager.load_setuptools_entrypoints(PROJECT_NAME)

    if logger is not None:
        for name, plugin in manager.list_name_plugin():
            if plugin is not None:
                logger.info("Loaded %s plugin %s from %s", PROJECT_NAME, name,
                            plugin)

    return manager
Exemple #4
0
def get_plugin_manager():
    pm = pluggy.PluginManager("eggsample")
    pm.add_hookspecs(hookspecs)
    count = pm.load_setuptools_entrypoints("eggsample")  # 注册插件: 根据 setuptools中的entrypoint名称
    print(count)
    pm.register(lib)
    return pm
Exemple #5
0
def setup_plugin_manager():
    plugin_manager = pluggy.PluginManager("derex.runner")
    plugin_manager.add_hookspecs(plugin_spec)
    plugin_manager.load_setuptools_entrypoints("derex.runner")
    plugin_manager.register(config.LocalOpenEdX)
    plugin_manager.register(config.BaseServices)
    return plugin_manager
Exemple #6
0
def get_plugin_manager():
    pm = pluggy.PluginManager(project_name='guttenberg-search')
    pm.add_hookspecs(hookspecs)
    pm.register(json_output)
    pm.load_setuptools_entrypoints('guttenberg-search')

    return pm
Exemple #7
0
def create_app(*, plugins=(), template_paths=(), **plugin_kwargs):

    api = fastapi.FastAPI()
    api.mount("/static",
              StaticFiles(directory=ijik_path("static")),
              name="static")

    pluginmanager = pluggy.PluginManager("ijik")
    pluginmanager.add_hookspecs(Hooks)
    pluginmanager.add_hookspecs(EntityHooks)
    pluginmanager.add_hookspecs(FormHooks)

    for p in itertools.chain(core_plugins(**plugin_kwargs), plugins):
        pluginmanager.register(p)

    @api.exception_handler(Exception)
    async def api_error(request, exc):
        pluginmanager.hook.ijik_uncaught_exception(exc=exc)
        return PlainTextResponse("Internal Server Error", status_code=500)

    ijik = Ijik(api=api,
                templates=Jinja2Templates(
                    directory=[*template_paths,
                               ijik_path("templates")]),
                pluginmanager=pluginmanager,
                registry=sa_registry(),
                sessionmanager=SessionManager(),
                entitymanager=EntityManager(pluginmanager),
                mixins=Mixins(),
                form_renderer=FormRenderer(pluginmanager))

    ijik.init()
    ijik.setup()

    return api
Exemple #8
0
def get_plugin_manager() -> pluggy.PluginManager:
    """Get the plugin manager."""
    pm = pluggy.PluginManager("pytask")
    pm.add_hookspecs(hookspecs)
    pm.load_setuptools_entrypoints("pytask")

    return pm
    def test_correlate_management_grp_data(self):

        parquet_file = "TestingCorrelation.parquet"
        xlsx_file = "TestingCorrelation.xlsx"
        with change_dir(OPERATIONSPATH):
            if os.path.isfile(parquet_file):
                os.remove(parquet_file)

        subscription = os.environ["SUB"]
        management_grp = os.environ["MANGRP"]

        credentials = AzureConnections().get_authenticated_client()
        df = EvaluatePolicies(credentials).correlate_management_grp_data(
            management_grp=management_grp, subscription=subscription)

        df = df.drop(columns=['serialize', 'timestamp'])
        df.to_excel(xlsx_file)

        pm = pluggy.PluginManager("Analysis")
        pm.add_hookspecs(DatbasePlugins)
        pm.register(SQLServerDatabase())
        engine_list = pm.hook.get_db_engine(
            driver=self.driver,
            server=self.server,
            database=self.database,
            user=self.user,
            password=self.password,
        )
        engine = engine_list[0]

        df.to_sql('test_noncompliant_002',
                  con=engine,
                  if_exists='append',
                  chunksize=1000)
Exemple #10
0
    def __init__(self) -> None:
        self.actions: List[Action] = []
        try:
            self.repo = Repo(".", search_parent_directories=True)
        except GitError:
            logging.fatal("Current version of mk works only within git repos.")
            self.repo = None
            return

        self.root = Path(self.repo.working_dir)

        self.pm = pluggy.PluginManager("mk_tools")
        self.pm.load_setuptools_entrypoints("mk_tools")
        for _, cls_name in self.pm.list_name_plugin():
            # for c in Tool:
            c = cls_name()
            if c.is_present(self.root):
                logging.debug("Detected %s !", c)
                self.actions.extend(c.actions())
            else:
                logging.debug("%s not detected !", c)

        if self.repo.is_dirty():
            logging.warning("Repo is dirty on %s", self.repo.active_branch)

        # expos up command
        self.actions.append(
            Action(
                name="up",
                description=
                "Upload current change by creating or updating a CR/PR.",
                tool=GitTool(),
                runner=self,
            ))
Exemple #11
0
def get_plugin_manager() -> pluggy.PluginManager:
    from . import hookspecs

    pm = pluggy.PluginManager("nixops")
    pm.add_hookspecs(hookspecs)
    pm.load_setuptools_entrypoints("nixops")
    return pm
Exemple #12
0
    def test_pandas_dataframe_policy_states_summarize_for_subscription_pluggy(
            self):

        pm = pluggy.PluginManager("Analysis")
        pm.add_hookspecs(DatbasePlugins)
        pm.register(SQLServerDatabase())
        engine_list = pm.hook.get_db_engine(
            driver=self.db_driver,
            server=self.server,
            database=self.database,
            user=self.user,
            password=self.password,
        )

        subscriptionId = self.config["DEFAULT"]["subscription_id"]
        df = subscription_policy_compliance(subscriptionId)

        self.assertTrue(len(df.index) > 0)

        engine = engine_list[0]

        df.to_sql('test_policy_compliance_ratios',
                  index=False,
                  con=engine,
                  if_exists='append',
                  chunksize=1000)
Exemple #13
0
def get_plugin_manager():
    """Fetch pluggy's plugin manager for our library."""
    pm = pluggy.PluginManager("bitex")
    pm.add_hookspecs(AnnouncePluginHookSpec)
    pm.load_setuptools_entrypoints("bitex")
    pm.register(AnnouncePluginHookImpl)
    return pm
Exemple #14
0
    def __init__(self) -> None:
        self.manager = pluggy.PluginManager(NAME)  # type:pluggy.PluginManager
        self.manager.add_hookspecs(spec)

        internal_plugins = (
            provision,
            core_config,
            runner,
            sdist,
            wheel,
            dev,
            parallel,
            sequential,
            list_env,
            version_flag,
            show_config,
        )

        for plugin in internal_plugins:
            self.manager.register(plugin)
        self.manager.load_setuptools_entrypoints(NAME)
        self.manager.register(builder)

        REGISTER.populate(self)
        self.manager.check_pending()
Exemple #15
0
def get_plugin_manager():
    """Fetch pluggy's plugin manager for our library."""
    pm = pluggy.PluginManager("bitex")
    pm.add_hookspecs(specs)
    pm.load_setuptools_entrypoints("bitex")
    pm.register(base)
    return pm
Exemple #16
0
    def test_pandas_dataframe_to_sql_pluggy(self):

        pm = pluggy.PluginManager("Analysis")
        pm.add_hookspecs(DatbasePlugins)
        pm.register(SQLServerDatabase())
        engine_list = pm.hook.get_db_engine(
            driver=self.db_driver,
            server=self.server,
            database=self.database,
            user=self.user,
            password=self.password,
        )
        engine = engine_list[0]
        # Create dataframe
        data = pd.DataFrame({
            'book_id': [uuid.uuid1(), uuid.uuid1(),
                        uuid.uuid1()],
            'title': [
                'Python Programming for Freaks', 'Learn Something',
                'Data Science for the Masses'
            ],
            'price': [32, 22, 29]
        })

        data.to_sql('book_details',
                    con=engine,
                    if_exists='append',
                    chunksize=1000)
Exemple #17
0
    def __init__(self) -> None:
        self.pm: pluggy.PluginManager = pluggy.PluginManager(
            "python_plugin_example")
        self.pm.add_hookspecs(PluginExampleHookSpec)

        self.pm.register(ChuckNorrisPlugin())
        self.pm.register(ICanHazDadJokePlugin())
Exemple #18
0
    def __init__(self, root_uri, init_opts):
        self._root_path = uris.to_fs_path(root_uri)
        self._root_uri = root_uri
        self._init_opts = init_opts

        self._disabled_plugins = []
        self._settings = {}
        self._plugin_settings = {}

        self._config_sources = {
            'flake8': Flake8Config(self._root_path),
            'pycodestyle': PyCodeStyleConfig(self._root_path)
        }

        self._pm = pluggy.PluginManager(PYLS)
        self._pm.trace.root.setwriter(log.debug)
        self._pm.enable_tracing()
        self._pm.add_hookspecs(hookspecs)
        self._pm.load_setuptools_entrypoints(PYLS)

        for name, plugin in self._pm.list_name_plugin():
            log.info("Loaded pyls plugin %s from %s", name, plugin)

        for plugin_conf in self._pm.hook.pyls_settings(config=self):
            self._plugin_settings = _utils.merge_dicts(self._plugin_settings, plugin_conf)
Exemple #19
0
def getNewPluginManager() -> pluggy.PluginManager:
    """
    Return a new plugin manager with all of the hookspecs pre-registered.
    """
    pm = pluggy.PluginManager("armi")
    pm.add_hookspecs(ArmiPlugin)
    return pm
Exemple #20
0
def get_plugin_manager() -> pluggy.PluginManager:
    from pyfileconf.plugin import hookspecs, default_hooks

    plm = pluggy.PluginManager("pyfileconf")
    plm.add_hookspecs(hookspecs)
    plm.load_setuptools_entrypoints("pyfileconf")
    plm.register(default_hooks)
    return plm
Exemple #21
0
 def get_plugin_manager(self) -> pluggy.PluginManager:
     logger.debug('Creating plugin manager')
     pm = pluggy.PluginManager('awsume')
     pm.add_hookspecs(hookspec)
     logger.debug('Loading plugins')
     pm.register(default_plugins)
     pm.load_setuptools_entrypoints('awsume')
     return pm
Exemple #22
0
def get_plugin_manager(plugins=()):
    pm = pluggy.PluginManager("pyrandall")
    # add default implementations
    pm.add_hookspecs(sys.modules[__name__])
    pm.register(pyrandall.behaviors)
    pm.load_setuptools_entrypoints("pyrandallX")
    pm.check_pending()
    return pm
Exemple #23
0
def get_plugin_manager():
    """Get dropdata plugin manager.  """
    plugin_manager = pluggy.PluginManager(core.PROJECT_NAME)
    plugin_manager.add_hookspecs(spec)
    for module in plugins.ALL:
        plugin_manager.register(module)
    plugin_manager.load_setuptools_entrypoints(core.PROJECT_NAME)
    return plugin_manager
    def __init__(self, root_path, init_opts):
        self._root_path = root_path
        self._init_opts = init_opts

        self._pm = pluggy.PluginManager(PYLS)
        self._pm.trace.root.setwriter(log.debug)
        self._pm.enable_tracing()
        self._pm.add_hookspecs(hookspecs)
        self._pm.load_setuptools_entrypoints(PYLS)
Exemple #25
0
    def load_plugins(self):
        pm = pluggy.PluginManager("jupyterhub_configurator")
        pm.add_hookspecs(hooks)
        pm.load_setuptools_entrypoints("jupyterhub_configurator")

        for fields in pm.hook.jupyterhub_configurator_fields():
            self.available_fields.update(fields)

        return pm
Exemple #26
0
 def __init__(self, plugins=None, entry_point_group=None):
     """Initialize resolver with various plugins and entry point group."""
     self.pm = pluggy.PluginManager('jsonresolver')
     self.pm.add_hookspecs(hookspec)
     for plugin in plugins or []:
         self.pm.register(importlib.import_module(plugin))
     if entry_point_group:
         self.pm.load_setuptools_entrypoints(entry_point_group)
     self.url_map = None
def get_plugin_manager():
    # initialize plugin manager
    pm = pluggy.PluginManager("tox")
    pm.add_hookspecs(hookspecs)
    pm.register(tox.config)
    pm.register(tox.interpreters)
    pm.load_setuptools_entrypoints("tox")
    pm.check_pending()
    return pm
Exemple #28
0
def get_plugin_manager(setup_plugins, events, logger=_logger):
    logger.info('Loading Plugins')
    pm = pluggy.PluginManager('zgres')
    pm.add_hookspecs(events)
    setup_plugins = list(setup_plugins)
    setup_plugins.reverse()
    for name, plugin in setup_plugins:
        pm.register(plugin, name=name)
    return pm
Exemple #29
0
def setup_plugin_manager():
    plugin_manager = pluggy.PluginManager("derex.runner")
    plugin_manager.add_hookspecs(plugin_spec)
    plugin_manager.load_setuptools_entrypoints("derex.runner")
    plugin_manager.register(compose_generation.LocalOpenEdX)
    plugin_manager.register(compose_generation.BaseServices)
    plugin_manager.register(compose_generation.LocalUser)
    plugin_manager.register(compose_generation.LocalRunmodeOpenEdX)
    return plugin_manager
Exemple #30
0
def _init_plugin_manager() -> pluggy.PluginManager:
    pm = pluggy.PluginManager("crib")
    pm.add_hookspecs(CribSpec)
    pm.load_setuptools_entrypoints("crib")
    pm.register(config)
    pm.register(properties)
    pm.register(user)
    pm.register(directions)
    pm.register(dirrepo)
    return pm