예제 #1
0
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)
예제 #2
0
    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')
예제 #3
0

# 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')