Esempio n. 1
0
def parse(source):
    task = Task()

    get_value = lambda x: x.value
    value_of = lambda t: some(lambda x: x.type == t) >> get_value

    keyword = lambda s: skip(value_of(s))
    make_rule = lambda x: task.add_rule(Rule(**{x[0]: x[1][1:-1]}))
    set_root = lambda value: task.set_root_dir(value[1:-1])
    set_mask = lambda value: task.set_mask(value[1:-1])

    root = keyword('In') + value_of('Value') >> set_root
    mask = keyword('With') + value_of('Value') >> set_mask
    rule = keyword('Set') + \
           value_of('Attribute') + \
           keyword('Equals') + \
           value_of('Value') \
           >> make_rule
    parser = maybe(mask) + root + many(rule)
    parser.parse(source)
    return task
Esempio n. 2
0
from model import Task, Rule

ROOT_DIR = '../tests/music'
MASK = '.*\.mp3'
task = Task()
task.set_root_dir(ROOT_DIR)
task.set_mask(MASK)
task.add_rule(Rule(Artist='Metallica'))
task.add_rule(Rule(Genre='Rock'))
task.process_rules()
Esempio n. 3
0
def test_task_setters():
    task = Task()
    task.set_mask('.*')
    assert task.file_mask == '.*'
    task.set_root_dir('./')
    assert task.root_dir == './'