Example #1
0
def main():
    services = sunlight.available_services()
    service = services.get(args.get(0), None)

    if service is not None:
        available_methods = [
            m for m in dir(service) if not m.startswith('_') and m != 'get'
        ]
        if args.get(1) in available_methods:

            params = dict([
                (g[0][2:], g[1].get(0)) for g in args.grouped.items()[1:] if
                g[0].startswith('--')
            ])
            fn_args = [g.split(',') for g in args.grouped.get('_')[2:]]
            fn_args = list(itertools.chain.from_iterable(fn_args))
            resp = getattr(service, args.get(1))(*fn_args, **params)
            if isinstance(resp, EntityList) or isinstance(resp, EntityDict):
                resp = resp.data
            sys.stdout.write(json.dumps(resp, indent=2) + '\n')

        else:
            help(methods=available_methods)  # missing or invalid method param

    else:
        help(services=services)  # missing or invalid service parameter
Example #2
0
def main():
    services = sunlight.available_services()
    service = services.get(args.get(0), None)

    if service is not None:
        available_methods = [
            m for m in dir(service) if not m.startswith('_') and m != 'get'
        ]
        if args.get(1) in available_methods:

            params = dict([(g[0][2:], g[1].get(0))
                           for g in args.grouped.items()[1:]
                           if g[0].startswith('--')])
            fn_args = [g.split(',') for g in args.grouped.get('_')[2:]]
            fn_args = list(itertools.chain.from_iterable(fn_args))
            resp = getattr(service, args.get(1))(*fn_args, **params)
            if isinstance(resp, EntityList) or isinstance(resp, EntityDict):
                resp = resp.data
            sys.stdout.write(json.dumps(resp, indent=2) + '\n')

        else:
            help(methods=available_methods)  # missing or invalid method param

    else:
        help(services=services)  # missing or invalid service parameter
Example #3
0
def main():
    services = sunlight.available_services()
    service = services.get(args.get(0), None)

    if service is not None:
        available_methods = [m for m in dir(service) if not m.startswith("_") and m != "get"]
        if args.get(1) in available_methods:

            params = {g[0][2:]: g[1].get(0) for g in args.grouped.items()[1:] if g[0].startswith("--")}
            resp = getattr(service, args.get(1))(**params)
            sys.stdout.write(json.dumps(resp, indent=2) + "\n")

        else:
            help(methods=available_methods)  # missing or invalid method param

    else:
        help(services=services)  # missing or invalid service parameter
Example #4
0
def main():
    args = arguments.Args()
    services = sunlight.available_services()
    service = services.get(args.get(0), None)

    def is_exposable_method(object, m):
        return (not m.startswith('_') and m != 'get'
                and callable(getattr(service, m, None)))

    if service is not None:
        available_methods = [
            m for m in dir(service) if is_exposable_method(service, m)
        ]
        if args.get(1) in available_methods:

            params = dict([(f.strip('--'), args.value_after(f))
                           for f in args.flags.all])
            fn_args = [g.split(',') for g in args.grouped.get('_')[2:]]
            fn_args = list(itertools.chain.from_iterable(fn_args))
            try:
                resp = getattr(service, args.get(1))(*fn_args, **params)
            except Exception as e:
                error_name = e.__class__.__name__ if e.__class__.__name__ != 'type' else 'Error'
                puts_err(colored.red("{}:".format(error_name)))
                with indent(4):
                    puts_err(colored.yellow(e.message.decode()))
                return
            meta = getattr(resp, '_meta', None)
            if meta:
                puts(colored.yellow(json.dumps(meta, indent=2)))
            puts(colored.blue(json.dumps(resp, indent=2) + '\n'))
        else:
            help(methods=available_methods)  # missing or invalid method param

    else:
        help(services=services)  # missing or invalid service parameter
Example #5
0
def main():
    args = arguments.Args()
    services = sunlight.available_services()
    service = services.get(args.get(0), None)

    def is_exposable_method(object, m):
        return (not m.startswith('_') and m != 'get' and callable(getattr(service, m, None)))

    if service is not None:
        available_methods = [
            m for m in dir(service) if is_exposable_method(service, m)
        ]
        if args.get(1) in available_methods:

            params = dict([
                (f.strip('--'), args.value_after(f)) for f in args.flags.all
            ])
            fn_args = [g.split(',') for g in args.grouped.get('_')[2:]]
            fn_args = list(itertools.chain.from_iterable(fn_args))
            try:
                resp = getattr(service, args.get(1))(*fn_args, **params)
            except Exception as e:
                error_name = e.__class__.__name__ if e.__class__.__name__ != 'type' else 'Error'
                puts_err(colored.red("{}:".format(error_name)))
                with indent(4):
                    puts_err(colored.yellow(e.message.decode()))
                return
            meta = getattr(resp, '_meta', None)
            if meta:
                puts(colored.yellow(json.dumps(meta, indent=2)))
            puts(colored.blue(json.dumps(resp, indent=2) + '\n'))
        else:
            help(methods=available_methods)  # missing or invalid method param

    else:
        help(services=services)  # missing or invalid service parameter