def vocab(m):
    vocab = vocab_map[m['vocab']]
    if m['subcommands']:
        subcommand = subcommands[m['subcommands']]
        vocab = subcommand(vocab)
    if 'dotted' in m['transcript']:
        vocab = '.'.join(vocab) + '.'
    insert(vocab)
def formatters(m):
    phrase = m['phrase']
    if 'title' in m['formatters']:
        phrase = formatters_map['title'](phrase)
        m['formatters'].remove('title')
    for formatter in m['formatters']:
        phrase = formatters_map[formatter](phrase)
    insert(phrase)
Beispiel #3
0
    'copy': 'cp ',
    'link': 'ln ',
    'list': 'ls ',
    'make dir': 'mkdir ',
    'move': 'mv ',
    'p grep': 'pgrep ',
    'p kill': 'pkill ',
    'remove': 'rm ',
    'remove dir': 'rmdir ',
    'symbolic link': 'ln -s ',
    'all': '-a ',
    'force': '-f ',
    'interactive': '-i ',
    'long': '-l ',
    'recursive': '-r ',
    'silent': '-s ',
    'verbose': '-v ',
    'flag': '--',
    'help': '--help',
    'version': '--version',
    'parent': '../',
}

ctx = Context('cli')
ctx.set_commands({
    '<cli>': lambda m: insert(cli_map[m['cli']]),
})
ctx.set_choices({
    'cli': cli_map,
})
        suffix = 'th'
    return suffix


def format_number(n, separator):
    n = str(n)
    if not separator:
        return n
    n = list(n)
    for i in range(3, len(n), 4):
        n.insert(len(n) - i, separator)
    return ''.join(n)


def number(m):
    n = m['n']
    separator = separators_map[m['separators']] if m['separators'] else None
    return format_number(n, separator)


ctx = Context('numbers')
ctx.set_commands({
    'number <n> [with <separators>]':
    lambda m: insert(number(m)),
    'ordinal <n> [with <separators>]':
    lambda m: insert(number(m) + ordinal_suffix(m['n'])),
})
ctx.set_choices({
    'separators': separators_map.keys(),
})
Beispiel #5
0
def surround(m):
    delimiters = delimiters_map[m['delimiters']]
    insert(delimiters)
    for _i in range(len(delimiters) // 2):
        press('Left')
Beispiel #6
0
delimiters_map = normalize_keys({
    'tick': '``',
    'quote': '\'\'',
    'square|bracket': '[]',
    'angle': '<>',
    'double quote|double quotes': '""',
    'brace|curly': '{}',
    'paren': '()',
    'double under': '____',
    'space': '  ',
})


def surround(m):
    delimiters = delimiters_map[m['delimiters']]
    insert(delimiters)
    for _i in range(len(delimiters) // 2):
        press('Left')


ctx = Context('delimiters')
ctx.set_commands({
    'surround <delimiters>':
    surround,
    'pair <delimiters>':
    lambda m: insert(delimiters_map[m['delimiters']]),
})
ctx.set_choices({
    'delimiters': delimiters_map.keys(),
})
def operators(m):
    op = operators_map[m['operators']]
    insert(f' {op} ')
def camel_case(m):
    phrase = m['phrase']
    formatter = lambda i, word: word if i == 0 else word.capitalize()
    formatted = format(phrase, formatter)
    insert(formatted)

def formatters(m):
    phrase = m['phrase']
    if 'title' in m['formatters']:
        phrase = formatters_map['title'](phrase)
        m['formatters'].remove('title')
    for formatter in m['formatters']:
        phrase = formatters_map[formatter](phrase)
    insert(phrase)


ctx = Context('formatters')
ctx.set_commands({
    'word <word>':
    lambda m: insert(uppercase_i(m['word'])),
    'upper <word>':
    lambda m: insert(m['word'].capitalize()),
    'lower <word>':
    lambda m: insert(m['word'].lower()),
    'phrase <phrase>':
    lambda m: insert(uppercase_i(m['phrase'])),
    'sentence <phrase>':
    lambda m: insert(uppercase_i(m['phrase'].capitalize())),
    'camel <phrase>':
    camel_case,
    '<formatters>+ <phrase>':
    formatters,
    'undo insert':
    lambda m: undo_insert(),
})
Beispiel #10
0
"""
This module is used for typing out words that are already in the model vocabulary but are difficult
for the engine to identify because they get confused with other words.
"""

from osprey.voice import Context, insert

fix_list = [
    'add',
    'and',
    'bin',
    'crate',
    'desk',
    'git',
    'man',
]

ctx = Context('fix')
ctx.set_commands({
    'fix <fix>': lambda m: insert(m['fix']),
    'fix upper <fix>': lambda m: insert(m['fix'].capitalize()),
})
ctx.set_choices({
    'fix': fix_list,
})
Beispiel #11
0
def code_block(m):
    insert('```')
    press('Enter')
    press('Enter')
    insert('```')
    press('Up')
Beispiel #12
0
from osprey.voice import Context, insert, press


def code_block(m):
    insert('```')
    press('Enter')
    press('Enter')
    insert('```')
    press('Up')


ctx = Context('markdown')
ctx.set_commands({
    'check box': lambda m: insert('- [ ] '),
    'code block': code_block,
})
Beispiel #13
0
    'June': 'Jun',
    'July': 'Jul',
    'August': 'Aug',
    'September': 'Sept',
    'October': 'Oct',
    'November': 'Nov',
    'December': 'Dec',

    # days of the week
    'Sunday': 'Sun',
    'Monday': 'Mon',
    'Tuesday': 'Tue',
    'Wednesday': 'Wed',
    'Thursday': 'Thu',
    'Friday': 'Fri',
    'Saturday': 'Sat',
}

ctx = Context('shrink')
ctx.set_commands({
    'shrink <shrink>':
    lambda m: insert(shrink_map[m['shrink']]),
    'shrink upper <shrink>':
    lambda m: insert(shrink_map[m['shrink']].capitalize()),
    'shrink lower <shrink>':
    lambda m: insert(shrink_map[m['shrink']].lower()),
})
ctx.set_choices({
    'shrink': shrink_map.keys(),
})
from osprey.voice import Context, insert

symbols_map = {
    'arrow': '->',
    'wide arrow': '=>',
    'ellipsis': '...',
    'degree': '°',
}

ctx = Context('symbols')
ctx.set_commands({
    'symbol <symbols>':
    lambda m: insert(symbols_map[m['symbols']]),
})
ctx.set_choices({
    'symbols': symbols_map,
})