def main(argv=None, stdin=None): parser = argparse.ArgumentParser(description='Convert (parts of) a GCL model file to JSON.') parser.add_argument('file', metavar='FILE', type=str, nargs='?', help='File to parse') parser.add_argument('selectors', metavar='SELECTOR', type=str, nargs='*', help='Select nodes to include in the JSON.') parser.add_argument('--root', '-r', metavar='PATH', type=str, default='', help='Use the indicated root path as the root of the output JSON object (like a.b.c but without wildcards)') args = parser.parse_args(argv or sys.argv[1:]) try: if args.file and args.file != '-': model = gcl.load(args.file) else: model = gcl.loads((stdin or sys.stdin).read(), filename='<stdin>') sels = query.GPath(args.selectors) if not sels.everything(): model = sels.select(model).deep() plain = util.to_python(model) selectors = args.root.split('.') if args.root else [] selected = select(plain, selectors) sys.stdout.write(json.dumps(selected)) except (gcl.ParseError, RuntimeError) as e: sys.stderr.write(str(e) + '\n') sys.exit(1)
def main(argv=None, stdin=None): parser = argparse.ArgumentParser( description='Convert (parts of) a GCL model file to JSON.') parser.add_argument('file', metavar='FILE', type=str, nargs='?', help='File to parse') parser.add_argument( 'selectors', metavar='SELECTOR', type=str, nargs='*', help= 'Subnodes to convert. The first selector will be treated as the root of the printed output.' ) args = parser.parse_args(argv or sys.argv[1:]) try: if args.file and args.file != '-': model = gcl.load(args.file) else: model = gcl.loads((stdin or sys.stdin).read(), filename='<stdin>') sels = query.GPath(args.selectors) if not sels.everything(): model = sels.select(model).deep() plain = util.to_python(model) sys.stdout.write(json.dumps(plain)) except (gcl.ParseError, RuntimeError) as e: sys.stderr.write(str(e) + '\n') sys.exit(1)
def main(argv=None, stdin=None): parser = argparse.ArgumentParser( description='Convert (parts of) a GCL model file to JSON.') parser.add_argument('file', metavar='FILE', type=str, nargs='?', help='File to parse') parser.add_argument('selectors', metavar='SELECTOR', type=str, nargs='*', help='Select nodes to include in the JSON.') parser.add_argument( '--root', '-r', metavar='PATH', type=str, default='', help= 'Use the indicated root path as the root of the output JSON object (like a.b.c but without wildcards)' ) args = parser.parse_args(argv or sys.argv[1:]) try: if args.file and args.file != '-': model = gcl.load(args.file) else: model = gcl.loads((stdin or sys.stdin).read(), filename='<stdin>') sels = query.GPath(args.selectors) if not sels.everything(): model = sels.select(model).deep() plain = util.to_python(model) selectors = args.root.split('.') if args.root else [] selected = select(plain, selectors) sys.stdout.write(json.dumps(selected, indent=2)) except (gcl.ParseError, RuntimeError) as e: sys.stderr.write(str(e) + '\n') sys.exit(1)
def main(argv=None, stdin=None): parser = argparse.ArgumentParser(description='Convert (parts of) a GCL model file to JSON.') parser.add_argument('file', metavar='FILE', type=str, nargs='?', help='File to parse') parser.add_argument('selectors', metavar='SELECTOR', type=str, nargs='*', help='Subnodes to convert. The first selector will be treated as the root of the printed output.') args = parser.parse_args(argv or sys.argv[1:]) try: if args.file and args.file != '-': model = gcl.load(args.file) else: model = gcl.loads((stdin or sys.stdin).read(), filename='<stdin>') sels = query.GPath(args.selectors) if not sels.everything(): model = sels.select(model).deep() plain = util.to_python(model) sys.stdout.write(json.dumps(plain)) except (gcl.ParseError, RuntimeError) as e: sys.stderr.write(str(e) + '\n') sys.exit(1)
def testNoExportFieldFromTupleComposedWithDict(self): obj = gcl.loads("x = { x : private = 3 } Y", env={'Y': {'y': 5}}) x = util.to_python(obj['x']) self.assertEquals({'y': 5}, x)
def testNoExportFieldFromCompositeTupleWithPrivateOverride(self): obj = gcl.loads("x = { x = 3; y = 5 } { x : private }") x = util.to_python(obj['x']) self.assertEquals({'y': 5}, x)
def testNoExportFieldFromCompositeTuple(self): obj = gcl.loads("x = { x : private = 3 } { y = 5 }") x = util.to_python(obj['x']) self.assertEquals({'y': 5}, x)
def testNoExportFieldFromTuple(self): obj = gcl.loads("x : private = 3; y = 5") x = util.to_python(obj) self.assertEquals({'y': 5}, x)