def main(): t = librpc.Typing() t.load_types_dir('.') Struct1 = librpc.build('com.test.Struct1') Struct2 = librpc.build('com.test.Struct2') s1 = Struct1(number1=1, number2=2) s2 = Struct2(string='test', struct=s1) s1.number1 = 10 print(repr(s1)) print(repr(s2)) print("Test passed" if s1.number1 == s2.struct.number1 else "Test failed")
def main(): parser = argparse.ArgumentParser() parser.add_argument('--system', action='store_true', help='Use system types') parser.add_argument('-f', metavar='FILE', action='append', help='IDL file') parser.add_argument('-d', metavar='DIRECTORY', action='append', help='IDL directory') args = parser.parse_args() typing = librpc.Typing(load_system_types=False) paths = [] if args.system: for p in ('/usr/share/idl', '/usr/local/share/idl', '/opt/local/share/idl'): for f in glob.iglob('{0}/*.yaml'.format(p)): typing.read_file(f) paths.append(f) for f in args.f or []: typing.read_file(f) paths.append(f) for d in args.d or []: for f in glob.iglob('{0}/**/*.yaml'.format(d), recursive=True): try: typing.read_file(f) paths.append(f) except librpc.LibException as err: print('error: {0}: {1}'.format(f, err.message)) continue for p in paths: try: typing.load_types(p) except librpc.RpcException as err: print('error: loading {0}: {1}'.format(p, err.message)) for typ in typing.types: if not typ.description: print('warning: {0}: description missing'.format(typ.name)) for member in typ.members: if not member.description: print('warning: {0}: description missing for member "{1}"'. format(typ.name, member.name))
def main(): parser = argparse.ArgumentParser() parser.add_argument('--uri', help='Server URI') args = parser.parse_args() t = librpc.Typing() context = librpc.Context() server = librpc.Server(args.uri, context) context.register_instance(ExampleServer()) def sigint(signo, frame): server.close() signal.signal(signal.SIGINT, sigint) server.resume() signal.pause()
def main(): parser = argparse.ArgumentParser() parser.add_argument('--lang', metavar='NAME', help='Language name', required=True) parser.add_argument('--system', action='store_true', help='Use system types') parser.add_argument('-f', metavar='FILE', action='append', help='IDL file') parser.add_argument('-d', metavar='DIRECTORY', action='append', help='IDL directory') parser.add_argument('-o', metavar='FILE', help='Output file', required=True) args = parser.parse_args() typing = librpc.Typing() outdir = args.o paths = [] if args.system: for p in ('/usr/share/idl', '/usr/local/share/idl'): for f in glob.iglob('{0}/*.yaml'.format(p)): typing.read_file(f) paths.append(f) for f in args.f or []: typing.read_file(f) paths.append(f) for d in args.d or []: for f in glob.iglob('{0}/**/*.yaml'.format(d), recursive=True): try: typing.read_file(f) paths.append(f) except librpc.LibException as err: print('Processing {0} failed: {1}'.format(f, str(err))) continue for p in paths: typing.load_types(p) gen_func = globals().get('generate_{0}'.format(args.lang)) generate_file(args.o, gen_func(typing))
def main(): parser = argparse.ArgumentParser() parser.add_argument('--name', metavar='NAME', help='Project name', required=True) parser.add_argument('--system', action='store_true', help='Use system types') parser.add_argument('-f', metavar='FILE', action='append', help='IDL file') parser.add_argument('-d', metavar='DIRECTORY', action='append', help='IDL directory') parser.add_argument('-o', metavar='DIRECTORY', help='Output directory', required=True) args = parser.parse_args() typing = librpc.Typing() outdir = args.o paths = [] if args.system: for p in ('/usr/share/idl', '/usr/local/share/idl'): for f in glob.iglob('{0}/*.yaml'.format(p)): typing.read_file(f) paths.append(f) for f in args.f or []: typing.read_file(f) paths.append(f) for d in args.d or []: for f in glob.iglob('{0}/**/*.yaml'.format(d), recursive=True): try: typing.read_file(f) paths.append(f) except librpc.LibException as err: print('Processing {0} failed: {1}'.format(f, str(err))) continue for p in paths: typing.load_types(p) if not os.path.exists(args.o): os.makedirs(args.o, exist_ok=True) # Copy the CSS file shutil.copy(os.path.join(curdir, 'assets/main.css'), outdir) for t in typing.types: generate_file(outdir, 'type-{0}.html'.format(t.name), generate_type(args.name, t)) for i in typing.interfaces: generate_file(outdir, 'interface-{0}.html'.format(i.name), generate_interface(args.name, i)) generate_file(outdir, 'index.html', generate_index(args.name, typing))