示例#1
0
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")
示例#2
0
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))
示例#3
0
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()
示例#4
0
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))
示例#5
0
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))