Повторение лишнего при использовании Dragonfly CompoundRule - PullRequest
1 голос
/ 26 сентября 2019

Используя dragonfly2 , систему голосовых команд, вы можете создать грамматику следующим образом:

chrome_rules = MappingRule(
    name='chrome',
    mapping={
        'down [<n>]': actions.Key('space:%(n)d'),
    },
    extras=[
        IntegerRef("n", 1, 100)
    ],
    defaults={
        "n": 1
    }
)

Это позволяет мне нажимать пробел n раз, где n - это некотороецелое число.Но что мне делать, если я хочу использовать одну и ту же переменную (n) несколько раз в одной и той же грамматике?Если я повторю это в грамматике, например, 'down <n> <n>', а затем произнесу что-то вроде «вниз на три четыре», Dragonfly правильно проанализирует его, но выполнит только actions.Key('space:%(n)d') с n=3, используя первое значение n.Как я могу заставить его выполнить его 3 раза, а затем 4 раза, используя одну и ту же переменную?

В идеале я не хочу дублировать переменную n в дополнительных и стандартных значениях, потому что этопохоже на избыточный код.

...