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)
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))
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)
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)
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)
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)
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))
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)
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)
def run(src): loading.setup() d = loading.loadfile(src) store = collect(d["package"]) r = arrange(store) loading.dumpfile(r, format="toml")
def load(self, src): loading.setup() return loading.load(src)
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)
def setup(): loading.setup() loading.dispather.dumper.add_format(loading.unknown, loading.raw.dump)
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(
def dump(self, data, filename, format): loading.setup(loading.json.load, loading.json.dump) loading.dumpfile(data, filename, format=format, sort_keys=True)
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)