コード例 #1
0
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)
コード例 #2
0
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)
コード例 #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,
})
コード例 #4
0
        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(),
})
コード例 #5
0
def surround(m):
    delimiters = delimiters_map[m['delimiters']]
    insert(delimiters)
    for _i in range(len(delimiters) // 2):
        press('Left')
コード例 #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(),
})
コード例 #7
0
def operators(m):
    op = operators_map[m['operators']]
    insert(f' {op} ')
コード例 #8
0
def camel_case(m):
    phrase = m['phrase']
    formatter = lambda i, word: word if i == 0 else word.capitalize()
    formatted = format(phrase, formatter)
    insert(formatted)
コード例 #9
0

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(),
})
コード例 #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,
})
コード例 #11
0
def code_block(m):
    insert('```')
    press('Enter')
    press('Enter')
    insert('```')
    press('Up')
コード例 #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,
})
コード例 #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(),
})
コード例 #14
0
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,
})