def engine(monkeypatch): FakeMachine.instance = None registry = Registry() registry.update() registry.register_plugin('machine', 'Fake', FakeMachine) monkeypatch.setattr('plover.config.registry', registry) monkeypatch.setattr('plover.engine.registry', registry) kbd = FakeKeyboardEmulation() cfg_file = tempfile.NamedTemporaryFile(prefix='plover', suffix='config', delete=False) try: cfg_file.close() cfg = Config(cfg_file.name) cfg['dictionaries'] = [] cfg['machine_type'] = 'Fake' cfg['system_keymap'] = [(k, k) for k in system.KEYS] cfg.save() yield FakeEngine(cfg, kbd) finally: os.unlink(cfg_file.name)
return sorted(requirements, key=lambda r: str(r).lower()) # Find all available distributions. all_requirements = [ dist.as_requirement() for dist in pkg_resources.working_set ] # Find Plover requirements. plover_deps = set() for dist in pkg_resources.require('plover'): plover_deps.add(dist.as_requirement()) # Load plugins. registry = Registry(suppress_errors=False) registry.update() # Find plugins requirements. plugins = OrderedDict() plugins_deps = set() for plugin_dist in registry.list_distributions(): if plugin_dist.dist.project_name != 'plover': plugins[plugin_dist.dist.as_requirement()] = set() for requirement, deps in plugins.items(): for dist in pkg_resources.require(str(requirement)): if dist.as_requirement() not in plover_deps: deps.add(dist.as_requirement()) plugins_deps.update(deps) # List requirements. print('# plover')
# Find all available distributions. all_requirements = [ dist.as_requirement() for dist in pkg_resources.working_set ] # Find Plover requirements. plover_deps = set() for dist in pkg_resources.require('plover'): plover_deps.add(dist.as_requirement()) # Load plugins. registry = Registry(suppress_errors=False) registry.update() # Find plugins requirements. plugins = OrderedDict() plugins_deps = set() for plugin_dist in registry.list_distributions(): if plugin_dist.dist.project_name != 'plover': plugins[plugin_dist.dist.as_requirement()] = set() for requirement, deps in plugins.items(): for dist in pkg_resources.require(str(requirement)): if dist.as_requirement() not in plover_deps: deps.add(dist.as_requirement()) plugins_deps.update(deps) # List requirements. print('# plover')