Exemplo n.º 1
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("src", nargs="?", default=None)
    parser.add_argument("--package", default=None)
    parser.add_argument("--position", default=None)
    parser.add_argument("--writer", default="goaway.writer:Writer")
    parser.add_argument("--emitter", default="goaway.emitter:Emitter")

    args = parser.parse_args()

    logging.basicConfig(level=logging.INFO)
    loading.setup()

    r = get_repository(
        writer_cls=import_symbol(args.writer),
        emitter_cls=import_symbol(args.emitter),
    )

    data = loading.loadfile(args.src)
    package = r.package(args.package or "main")
    walk(data, package, r)

    d = r.resolve_package_path(args.position, package)
    r.emitter.emit_package(package, d=d)
Exemplo n.º 2
0
def main():
    import argparse
    # import logging

    loading.setup()
    # logging.basicConfig(level=logging.DEBUG)

    parser = argparse.ArgumentParser()
    parser.add_argument("filename")

    args = parser.parse_args()
    return run(**vars(args))
Exemplo n.º 3
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("src", nargs="?", default=None)
    parser.add_argument("--package", default="autogenerated")
    args = parser.parse_args()

    loading.setup()
    data = loading.loadfile(args.src)
    m = go.Module()
    m.package(args.package)
    emit(data, m)
    print(m)
Exemplo n.º 4
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("src", nargs="?", default=None)
    parser.add_argument("--package", default="autogenerated")
    args = parser.parse_args()

    loading.setup()
    data = loading.loadfile(args.src)
    m = go.Module()
    m.package(args.package)
    emit(data, m)
    print(m)
Exemplo n.º 5
0
def main():
    from dictknife import loading
    import argparse
    # import logging

    loading.setup()
    # logging.basicConfig(level=logging.DEBUG)

    parser = argparse.ArgumentParser()
    parser.add_argument("filename")

    args = parser.parse_args()

    loader = Loader()
    data = loader.load(args.filename)
    loading.dumpfile(data)
Exemplo n.º 6
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("--data", action="append", help="support yaml, json, toml", default=[])
    parser.add_argument("template")
    parser.add_argument("--input-format", default=None)
    parser.add_argument("--output-format", default="raw")
    parser.add_argument("--dst", default=None)

    args = parser.parse_args()
    loading.setup()
    data = deepmerge(*[loadfile(d) for d in args.data], override=True)
    if args.input_format is not None:
        data = deepmerge(data, loading.load(sys.stdin, format=args.input_format), override=True)
    result = run(args.template, data)
    loading.dumpfile(result, args.dst, format=args.output_format)
Exemplo n.º 7
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("--data", action="append", help="support yaml, json, toml", default=[])
    parser.add_argument("template")
    parser.add_argument("--input-format", default=None)
    parser.add_argument("--output-format", default="raw")
    parser.add_argument("--dst", default=None)

    args = parser.parse_args()
    loading.setup()

    data = deepmerge(*[loading.loadfile(d) for d in args.data], override=True)
    if args.input_format is not None:
        data = deepmerge(data, loading.load(sys.stdin, format=args.input_format), override=True)
    result = run(args.template, data)
    loading.dumpfile(result, args.dst, format=args.output_format)
Exemplo n.º 8
0
def main():
    import argparse
    from colorama import init
    init()
    parser = argparse.ArgumentParser()
    parser.add_argument("-m", "--module", default="zenmai.actions")
    parser.add_argument("--driver", default="zenmai.driver:Driver")
    parser.add_argument("--debug", action="store_true")
    parser.add_argument("--logging", default="INFO", choices=list(logging._nameToLevel.keys()))
    parser.add_argument("-f", "--format", default=None, choices=loading.get_formats())
    parser.add_argument("--data", action="append")
    parser.add_argument("--select", default=None)
    parser.add_argument("file", default=None)

    loading.setup()
    args = parser.parse_args()

    module = import_module(args.module)
    data = [loadfile_with_jsonref(path) for path in args.data or []]

    def wrap(d):
        if args.select is None:
            return d
        return access_by_json_pointer(d, args.select.split("#")[-1])

    driver_cls = import_symbol(args.driver, ns="zenmai.driver")
    driver = driver_cls(module, args.file, format=args.format, data=data)

    # todo: option
    logging.basicConfig(
        format="%(levelname)5s:%(name)30s:%(message)s",
        level=logging._nameToLevel[args.logging]
    )
    try:
        if args.file is None:
            driver.run(sys.stdin, sys.stdout, wrap=wrap)
        else:
            with open(args.file) as rf:
                driver.run(rf, sys.stdout, wrap=wrap)
    except Exception as e:
        if args.debug:
            raise
        print("{errcolor}{e.__class__.__name__}:{reset} {e}".format(e=e, errcolor=colorama.Fore.YELLOW, reset=colorama.Style.RESET_ALL))
Exemplo n.º 9
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("--name", type=str, default="top")
    parser.add_argument("--annotations",
                        type=argparse.FileType('r'),
                        default=None)
    parser.add_argument("--show-minimap", action="store_true")
    parser.add_argument("--logging",
                        default="INFO",
                        choices=sorted(logging._nameToLevel.keys()))
    parser.add_argument("--emit", default="schema", choices=["schema", "info"])
    parser.add_argument("--dst", type=argparse.FileType('w'), default=None)
    parser.add_argument("src",
                        type=argparse.FileType('r'),
                        default=sys.stdin,
                        nargs="?")

    args = parser.parse_args()

    logging.basicConfig(level=args.logging)
    annotations = {}
    if args.annotations:
        annotations = loading.load(args.annotations)

    detector = Detector()
    emitter = Emitter(annotations)

    loading.setup()
    data = loading.load(args.src)
    info = detector.detect(data, args.name)

    if args.emit == "info":
        loading.dumpfile(info, filename=args.dst)
    else:
        m = Module(indent="  ")
        m.stmt(args.name)
        emitter.emit(info, m)
        if args.show_minimap:
            print("# minimap ###")
            print("# *", end="")
            print("\n# ".join(str(m).split("\n")))
        loading.dumpfile(emitter.doc, filename=args.dst)
Exemplo n.º 10
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("src", nargs="?", default=None)
    parser.add_argument("--format",
                        choices=loading.get_formats(),
                        default=None)
    parser.add_argument("--dst",
                        default=sys.stdout,
                        type=argparse.FileType("w"))
    parser.add_argument("--ref", default=None)
    parser.add_argument("--package", default=None)
    parser.add_argument("--file", default="main.go")
    parser.add_argument("--position", default=None)
    parser.add_argument("--walker",
                        default="goaway.commands.swagger2go:Walker")
    parser.add_argument("--writer", default="goaway.writer:Writer")
    parser.add_argument("--emitter", default="goaway.emitter:Emitter")
    args = parser.parse_args()

    logging.basicConfig(level=logging.INFO)
    loading.setup()

    r = get_repository(
        writer_cls=import_symbol(args.writer),
        emitter_cls=import_symbol(args.emitter),
    )

    doc = loading.loadfile(args.src)
    package = r.package(args.package or "main")
    walker_cls = import_symbol(args.walker)
    walker = walker_cls(doc, package.file(args.file), r)
    if args.ref:
        walker.walk_ref(args.ref)
    else:
        walker.walk_all()

    d = r.resolve_package_path(args.position, package)
    r.emitter.emit_package(package, d=d)
Exemplo n.º 11
0
def run(src):
    loading.setup()
    d = loading.loadfile(src)
    store = collect(d["package"])
    r = arrange(store)
    loading.dumpfile(r, format="toml")
Exemplo n.º 12
0
 def load(self, src):
     loading.setup()
     return loading.load(src)
Exemplo n.º 13
0
    parser.add_argument("--logging", default="INFO", choices=list(logging._nameToLevel.keys()))
    parser.add_argument("--emit", default="schema", choices=["schema", "info"])
    parser.add_argument("--dst", type=argparse.FileType('w'), default=None)
    parser.add_argument("src", type=argparse.FileType('r'))

    args = parser.parse_args()

    logging.basicConfig(level=args.logging)
    annotations = {}
    if args.annotations:
        annotations = loading.load(args.annotations)

    detector = Detector()
    emitter = Emitter(annotations)

    loading.setup()
    data = loading.load(args.src)
    info = detector.detect(data, args.name)

    if args.emit == "info":
        loading.dumpfile(info, filename=args.dst)
    else:
        m = Module(indent="  ")
        m.stmt(args.name)
        emitter.emit(info, m)
        if args.show_minimap:
            print("# minimap ###")
            print("# *", end="")
            print("\n# ".join(str(m).split("\n")))
        loading.dumpfile(emitter.doc, filename=args.dst)
Exemplo n.º 14
0
def setup():
    loading.setup()
    loading.dispather.dumper.add_format(loading.unknown, loading.raw.dump)
Exemplo n.º 15
0
import unittest
import difflib
import textwrap
from dictknife import loading
loading.setup()  # xxx


class DiffTestCase(unittest.TestCase):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.addTypeEqualityFunc(str, 'assertDiff')

    def assertDiff(self, first, second, msg=None):
        self.assertIsInstance(first, str, 'First argument is not a string')
        self.assertIsInstance(second, str, 'Second argument is not a string')

        msg = msg or "{} != {}".format(repr(first)[:40], repr(second)[:40])

        if first != second:
            # don't use difflib if the strings are too long
            if (len(first) > self._diffThreshold
                    or len(second) > self._diffThreshold):
                self._baseAssertEqual(first, second, msg)

            firstlines = first.splitlines(keepends=True)
            secondlines = second.splitlines(keepends=True)
            if not firstlines[-1].endswith("\n"):
                firstlines[-1] = firstlines[-1] + "\n"
            if not secondlines[-1].endswith("\n"):
                secondlines[-1] = secondlines[-1] + "\n"
            diff = '\n' + ''.join(
Exemplo n.º 16
0
 def dump(self, data, filename, format):
     loading.setup(loading.json.load, loading.json.dump)
     loading.dumpfile(data, filename, format=format, sort_keys=True)
Exemplo n.º 17
0
from dictknife import loading, pp
from schema import Top

loading.setup()
data = loading.loadfile("./sample.yaml")
data, err = Top().load(data)
if err:
    pp(err)
else:
    loading.dumpfile(data)
Exemplo n.º 18
0
def run(src):
    loading.setup()
    d = loading.loadfile(src)
    store = collect(d["package"])
    r = arrange(store)
    loading.dumpfile(r, format="toml")