Ejemplo n.º 1
0
def apply_precommit_file(prefix, precommit_file, all_files, gpk_path):
    precommit_obj = gcl.load(precommit_file,
                             loader=gcl.loader_with_search_path([path.join(gpk_path, 'checks')]))
    try:
        validate_precommit(precommit_obj)
    except RuntimeError, e:
        raise RuntimeError('Error parsing %s: %s' % (precommit_file, e))
Ejemplo n.º 2
0
Archivo: to_json.py Proyecto: pjjw/gcl
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)
Ejemplo n.º 3
0
Archivo: printer.py Proyecto: mnuhn/gcl
def main(argv=None, stdin=None):
  parser = argparse.ArgumentParser(description='Print a GCL model file.')
  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 print')
  parser.add_argument('-e', '--errors-only', dest='errors_only', action='store_true', default=False,
                      help='Only show errors')
  parser.add_argument('-q', '--qualified-paths', dest='qualified_paths', action='store_true', default=False,
                      help='Show qualified paths')
  parser.add_argument('-l', '--lowercase', dest='lowercase', action='store_true', default=False,
                      help='Don\'t recurse into variables starting with capital letters.')

  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>')
  except gcl.ParseError as e:
    print(e)
    sys.exit(1)
  else:
    printer = qualified_print if args.qualified_paths else pretty_print_model
    print_selectors(model, args.selectors, printer, lowercase=args.lowercase, errors_only=args.errors_only)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
def apply_precommit_file(prefix, precommit_file, all_files, gpk_path):
    precommit_obj = gcl.load(precommit_file,
                             loader=gcl.loader_with_search_path(
                                 [path.join(gpk_path, 'checks')]))
    try:
        validate_precommit(precommit_obj)
    except RuntimeError, e:
        raise RuntimeError('Error parsing %s: %s' % (precommit_file, e))
Ejemplo n.º 6
0
Archivo: doc.py Proyecto: rix0rrr/gcl
def main():
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s [%(levelname)s] %(message)s')

    parser = argparse.ArgumentParser(
        description='Generate sphinx-compatible documentation')
    parser.add_argument('--title',
                        '-T',
                        default='Documentation',
                        help='Documentation title')
    parser.add_argument('--only-documented',
                        '-d',
                        action='store_true',
                        default=False,
                        help='Only export documented bindings')
    parser.add_argument('--output-dir',
                        '-o',
                        required=True,
                        help='Directory to write output files')
    parser.add_argument('--no-index',
                        '-I',
                        action='store_true',
                        default=False,
                        help='Skip Sphinx index file')
    parser.add_argument('--search-path',
                        '-s',
                        action='append',
                        default=[],
                        help='Resolve GCL files against these paths')
    parser.add_argument('file',
                        metavar='FILE',
                        nargs='+',
                        help='Files to generate documentation for')

    args = parser.parse_args()

    doc = Documentation(args)
    for f in args.file:
        logger.info('Loading %s', f)
        node = gcl.load(f)
        relative_name = resolve_file(f, args.search_path)
        logger.info('Adding as %s', relative_name)
        doc.add_file(relative_name, node)

    if not path.isdir(args.output_dir):
        logger.info('Creating directory %s', args.output_dir)
        os.makedirs(args.output_dir)

    doc.write_dir(args.output_dir)
    logger.info('Done')
Ejemplo n.º 7
0
def main(argv=None, stdin=None):
    parser = argparse.ArgumentParser(description='Print a GCL model file.')
    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 print')
    parser.add_argument('-e',
                        '--errors-only',
                        dest='errors_only',
                        action='store_true',
                        default=False,
                        help='Only show errors')
    parser.add_argument('-q',
                        '--qualified-paths',
                        dest='qualified_paths',
                        action='store_true',
                        default=False,
                        help='Show qualified paths')
    parser.add_argument(
        '-l',
        '--lowercase',
        dest='lowercase',
        action='store_true',
        default=False,
        help='Don\'t recurse into variables starting with capital letters.')

    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>')
    except gcl.ParseError as e:
        print(e)
        sys.exit(1)
    else:
        printer = qualified_print if args.qualified_paths else pretty_print_model
        print_selectors(model,
                        args.selectors,
                        printer,
                        lowercase=args.lowercase,
                        errors_only=args.errors_only)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)