Exemplo n.º 1
0
Arquivo: run.py Projeto: lightsey/yaql
def main():
    p = optparse.OptionParser()
    p.add_option("--data", "-d")
    p.add_option("-t", action="store_true", dest="tokens")
    p.add_option("--legacy", action="store_true", dest="legacy")

    options, arguments = p.parse_args()
    if options.data:
        try:
            with open(options.data) as f:
                data = json.load(f)
        except Exception:
            print("Unable to load data from " + options.data)
            return
    else:
        data = None

    engine_options = {"yaql.limitIterators": 100, "yaql.treatSetsAsLists": True, "yaql.memoryQuota": 10000}

    if options.legacy:
        factory = yaql.legacy.YaqlFactory()
        context = yaql.legacy.create_context()
        context["legacy"] = True
    else:
        factory = yaql.YaqlFactory()
        context = yaql.create_context()

    parser = factory.create(options=engine_options)
    cli_functions.register_in_context(context, parser)
    if options.tokens:
        parser("__main(true)").evaluate(data, context)
    else:
        parser("__main(false)").evaluate(data, context)
Exemplo n.º 2
0
def main():
    p = optparse.OptionParser()
    p.add_option('--data', '-d', help="input file")
    p.add_option('--string', '-s', action='store_true',
                 help="input is a string")
    p.add_option('--native', '-n', action='store_true',
                 help="output data in Python native format")
    p.add_option('--array', '-a', action='store_true',
                 help="read input line by line")
    p.add_option('--tokens', '-t', action='store_true', dest='tokens',
                 help="print lexical tokens info")
    p.add_option('--legacy', action='store_true', dest='legacy',
                 help="enable legacy v0.2 compatibility mode")

    options, arguments = p.parse_args()
    if options.data:
        try:
            if options.data == '-':
                data = read_data(sys.stdin, options)
            else:
                with open(options.data) as f:
                    data = read_data(f, options)
        except Exception:
            print('Unable to load data from ' + options.data, file=sys.stderr)
            exit(1)
    else:
        data = None

    engine_options = {
        'yaql.limitIterators': 1000,
        'yaql.convertSetsToLists': True,
        'yaql.memoryQuota': 100000
    }

    if options.legacy:
        factory = yaql.legacy.YaqlFactory()
        context = yaql.legacy.create_context()
        context['legacy'] = True
    else:
        factory = yaql.YaqlFactory()
        context = yaql.create_context()

    if options.native:
        context['#nativeOutput'] = True

    parser = factory.create(options=engine_options)
    cli_functions.register_in_context(context, parser)

    if len(arguments) > 0:
        for arg in arguments:
            cli_functions.evaluate(arg, parser, data, context)
    elif options.tokens:
        parser('__main(true)').evaluate(data, context)
    else:
        parser('__main(false)').evaluate(data, context)
Exemplo n.º 3
0
    def yaql_cli(self):
        """
        Spawns yaql interactive interface
        (Used for debugging)
        :return: 
        """
        self.init_parser()
        self.gen_rule_data()

        # CLI hack
        ctx = self.new_context()

        def print_output(v, context):
            if context['#nativeOutput']:
                print(v)
            else:
                print(json.dumps(v, indent=4, ensure_ascii=False, cls=util.AutoJSONEncoder))

        cli_functions.print_output = print_output
        cli_functions.register_in_context(ctx, self.engine)
        self.eval_expr('__main(false)', ctx)
Exemplo n.º 4
0
def main():
    p = optparse.OptionParser()
    p.add_option('--data', '-d')
    p.add_option('-t', action='store_true', dest='tokens')

    options, arguments = p.parse_args()
    if options.data:
        try:
            json_str = open(options.data).read()
            decoder = JSONDecoder()
            data = decoder.decode(json_str)
        except:
            print("Unable to load data from " + options.data)
            return
    else:
        data = None

    context = yaql.create_context()
    cli_functions.register_in_context(context)
    if options.tokens:
        yaql.parse('__main(true)').evaluate(data, context)
    else:
        yaql.parse('__main(false)').evaluate(data, context)
Exemplo n.º 5
0
def main():
    p = optparse.OptionParser()
    p.add_option('--data', '-d')
    p.add_option('-t', action='store_true', dest='tokens')
    p.add_option('--legacy', action='store_true', dest='legacy')

    options, arguments = p.parse_args()
    if options.data:
        try:
            with open(options.data) as f:
                data = json.load(f)
        except Exception:
            print('Unable to load data from ' + options.data)
            return
    else:
        data = None

    engine_options = {
        'yaql.limitIterators': 100,
        'yaql.convertSetsToLists': True,
        'yaql.memoryQuota': 10000
    }

    if options.legacy:
        factory = yaql.legacy.YaqlFactory()
        context = yaql.legacy.create_context()
        context['legacy'] = True
    else:
        factory = yaql.YaqlFactory()
        context = yaql.create_context()

    parser = factory.create(options=engine_options)
    cli_functions.register_in_context(context, parser)
    if options.tokens:
        parser('__main(true)').evaluate(data, context)
    else:
        parser('__main(false)').evaluate(data, context)
Exemplo n.º 6
0
def main():
    p = optparse.OptionParser()
    p.add_option('--data', '-d', help="input file")
    p.add_option('--string',
                 '-s',
                 action='store_true',
                 help="input is a string")
    p.add_option('--native',
                 '-n',
                 action='store_true',
                 help="output data in Python native format")
    p.add_option('--array',
                 '-a',
                 action='store_true',
                 help="read input line by line")
    p.add_option('--tokens',
                 '-t',
                 action='store_true',
                 dest='tokens',
                 help="print lexical tokens info")
    p.add_option('--legacy',
                 '-l',
                 action='store_true',
                 dest='legacy',
                 help="enable legacy v0.2 compatibility mode")
    p.add_option('--limit',
                 '--limit-iterators',
                 '-L',
                 type=int,
                 dest='limit_iterators',
                 default=1000,
                 help="limit iterators by the given number of "
                 "elements (-1 means infinity)")
    p.add_option('--sets-to-lists',
                 '-S',
                 action="store_true",
                 dest='sets_to_lists',
                 default=True,
                 help="convert all sets in results to lists")
    p.add_option('--tuples-to-lists',
                 '-T',
                 action="store_true",
                 dest='tuples_to_lists',
                 default=False,
                 help="convert all tuples in results to lists")
    p.add_option('--iterable-dicts',
                 '-D',
                 action="store_true",
                 dest='iterable_dicts',
                 default=False,
                 help="consider dictionaries to be iterable over their keys")
    p.add_option('--memory-quota',
                 '--mem',
                 '-m',
                 type=int,
                 dest='memory',
                 default=100000,
                 help="change memory usage quota (in bytes) "
                 "for all data produced by expressions "
                 "(-1 means infinity)")
    p.add_option('--keyword-operator',
                 '-k',
                 type=str,
                 dest='keyword_operator',
                 default="=>",
                 help="configure keyword/mapping symbol "
                 "(empty string means disabled)")
    p.add_option('--allow-delegates',
                 '-A',
                 action="store_true",
                 dest='allow_delegates',
                 default=False,
                 help="enable delegate expression parsing")

    options, arguments = p.parse_args()
    if options.data:
        try:
            if options.data == '-':
                data = read_data(sys.stdin, options)
            else:
                with open(options.data) as f:
                    data = read_data(f, options)
        except Exception:
            print('Unable to load data from ' + options.data, file=sys.stderr)
            exit(1)
    else:
        data = None

    engine_options = {
        'yaql.limitIterators': options.limit_iterators,
        'yaql.convertSetsToLists': options.sets_to_lists,
        'yaql.convertTuplesToLists': options.tuples_to_lists,
        'yaql.iterableDicts': options.iterable_dicts,
        'yaql.memoryQuota': options.memory
    }

    if options.legacy:
        factory = yaql.legacy.YaqlFactory(
            allow_delegates=options.allow_delegates)
        context = yaql.legacy.create_context()
        context['legacy'] = True
    else:
        factory = yaql.YaqlFactory(allow_delegates=options.allow_delegates,
                                   keyword_operator=options.keyword_operator)
        context = yaql.create_context()

    if options.native:
        context['#nativeOutput'] = True

    parser = factory.create(options=engine_options)
    cli_functions.register_in_context(context, parser)

    if len(arguments) > 0:
        for arg in arguments:
            cli_functions.evaluate(arg, parser, data, context)
    elif options.tokens:
        parser('__main(true)').evaluate(data, context)
    else:
        parser('__main(false)').evaluate(data, context)
Exemplo n.º 7
0
def main():
    p = optparse.OptionParser()
    p.add_option('--data', '-d', help="input file")
    p.add_option('--string', '-s', action='store_true',
                 help="input is a string")
    p.add_option('--native', '-n', action='store_true',
                 help="output data in Python native format")
    p.add_option('--array', '-a', action='store_true',
                 help="read input line by line")
    p.add_option('--tokens', '-t', action='store_true', dest='tokens',
                 help="print lexical tokens info")
    p.add_option('--legacy', '-l', action='store_true', dest='legacy',
                 help="enable legacy v0.2 compatibility mode")
    p.add_option('--limit', '--limit-iterators', '-L', type=int,
                 dest='limit_iterators',
                 default=1000, help="limit iterators by the given number of "
                                    "elements (-1 means infinity)")
    p.add_option('--sets-to-lists', '-S', action="store_true",
                 dest='sets_to_lists', default=True,
                 help="convert all sets in results to lists")
    p.add_option('--tuples-to-lists', '-T', action="store_true",
                 dest='tuples_to_lists', default=False,
                 help="convert all tuples in results to lists")
    p.add_option('--iterable-dicts', '-D', action="store_true",
                 dest='iterable_dicts', default=False,
                 help="consider dictionaries to be iterable over their keys")
    p.add_option('--memory-quota', '--mem', '-m', type=int, dest='memory',
                 default=100000, help="change memory usage quota (in bytes) "
                                      "for all data produced by expressions "
                                      "(-1 means infinity)")
    p.add_option('--keyword-operator', '-k', type=str, dest='keyword_operator',
                 default="=>", help="configure keyword/mapping symbol "
                                    "(empty string means disabled)")
    p.add_option('--allow-delegates', '-A', action="store_true",
                 dest='allow_delegates', default=False,
                 help="enable delegate expression parsing")

    options, arguments = p.parse_args()
    if options.data:
        try:
            if options.data == '-':
                data = read_data(sys.stdin, options)
            else:
                with open(options.data) as f:
                    data = read_data(f, options)
        except Exception:
            print('Unable to load data from ' + options.data, file=sys.stderr)
            exit(1)
    else:
        data = None

    engine_options = {
        'yaql.limitIterators': options.limit_iterators,
        'yaql.convertSetsToLists': options.sets_to_lists,
        'yaql.convertTuplesToLists': options.tuples_to_lists,
        'yaql.iterableDicts': options.iterable_dicts,
        'yaql.memoryQuota': options.memory
    }

    if options.legacy:
        factory = yaql.legacy.YaqlFactory(
            allow_delegates=options.allow_delegates
        )
        context = yaql.legacy.create_context()
        context['legacy'] = True
    else:
        factory = yaql.YaqlFactory(
            allow_delegates=options.allow_delegates,
            keyword_operator=options.keyword_operator
        )
        context = yaql.create_context()

    if options.native:
        context['#nativeOutput'] = True

    parser = factory.create(options=engine_options)
    cli_functions.register_in_context(context, parser)

    if len(arguments) > 0:
        for arg in arguments:
            cli_functions.evaluate(arg, parser, data, context)
    elif options.tokens:
        parser('__main(true)').evaluate(data, context)
    else:
        parser('__main(false)').evaluate(data, context)
Exemplo n.º 8
0
def main():
    p = optparse.OptionParser()
    p.add_option('--data', '-d', help="input file")
    p.add_option('--string',
                 '-s',
                 action='store_true',
                 help="input is a string")
    p.add_option('--native',
                 '-n',
                 action='store_true',
                 help="output data in Python native format")
    p.add_option('--array',
                 '-a',
                 action='store_true',
                 help="read input line by line")
    p.add_option('--tokens',
                 '-t',
                 action='store_true',
                 dest='tokens',
                 help="print lexical tokens info")
    p.add_option('--legacy',
                 action='store_true',
                 dest='legacy',
                 help="enable legacy v0.2 compatibility mode")

    options, arguments = p.parse_args()
    if options.data:
        try:
            if options.data == '-':
                data = read_data(sys.stdin, options)
            else:
                with open(options.data) as f:
                    data = read_data(f, options)
        except Exception:
            print('Unable to load data from ' + options.data, file=sys.stderr)
            exit(1)
    else:
        data = None

    engine_options = {
        'yaql.limitIterators': 1000,
        'yaql.convertSetsToLists': True,
        'yaql.memoryQuota': 100000
    }

    if options.legacy:
        factory = yaql.legacy.YaqlFactory()
        context = yaql.legacy.create_context()
        context['legacy'] = True
    else:
        factory = yaql.YaqlFactory()
        context = yaql.create_context()

    if options.native:
        context['#nativeOutput'] = True

    parser = factory.create(options=engine_options)
    cli_functions.register_in_context(context, parser)

    if len(arguments) > 0:
        for arg in arguments:
            cli_functions.evaluate(arg, parser, data, context)
    elif options.tokens:
        parser('__main(true)').evaluate(data, context)
    else:
        parser('__main(false)').evaluate(data, context)