예제 #1
0
파일: main.py 프로젝트: alexandershov/lsql
def run_query(query_string, directory):
    assert isinstance(query_string, unicode)
    tokens = tokenize(query_string)
    # TODO(aershov182): check that user hasn't passed both FROM and directory
    # TODO: b'.'? Handle TaggedStr issues inside of the ast.DirectoryWalker
    cwd_context = Context({'cwd': (directory or b'.')})
    query = parse(tokens)
    return query.get_value(CombinedContext(cwd_context, BUILTIN_CONTEXT))
예제 #2
0
def run_query(query_string, directory):
    assert isinstance(query_string, unicode)
    tokens = tokenize(query_string)
    # TODO(aershov182): check that user hasn't passed both FROM and directory
    # TODO: b'.'? Handle TaggedStr issues inside of the ast.DirectoryWalker
    cwd_context = Context({'cwd': (directory or b'.')})
    query = parse(tokens)
    return query.get_value(CombinedContext(cwd_context, BUILTIN_CONTEXT))
예제 #3
0
def assert_tokenizes_to(string, expected_tokens):
    actual_tokens = list(parser.tokenize(string))
    assert len(actual_tokens) == len(expected_tokens)
    for actual, expected in zip(actual_tokens, expected_tokens):
        assert same_tokens(actual, expected)
예제 #4
0
def test_bad_queries(string):
    with pytest.raises(parser.CantTokenizeError):
        list(parser.tokenize(string))
예제 #5
0
def test_whitespace(string, expected_token_classes):
    assert_classes_equal(
        list(parser.tokenize(string)),
        expected_token_classes
    )
예제 #6
0
def test_full_query(string, expected_token_classes):
    assert_classes_equal(
        list(parser.tokenize(string)),
        expected_token_classes
    )
예제 #7
0
def assert_tokenizes_to(string, expected_tokens):
    actual_tokens = list(parser.tokenize(string))
    assert len(actual_tokens) == len(expected_tokens)
    for actual, expected in zip(actual_tokens, expected_tokens):
        assert same_tokens(actual, expected)
예제 #8
0
def test_bad_queries(string):
    with pytest.raises(parser.CantTokenizeError):
        list(parser.tokenize(string))
예제 #9
0
def test_whitespace(string, expected_token_classes):
    assert_classes_equal(list(parser.tokenize(string)), expected_token_classes)
예제 #10
0
def test_full_query(string, expected_token_classes):
    assert_classes_equal(list(parser.tokenize(string)), expected_token_classes)