Exemplo n.º 1
0
def make_enum_pb2(name: str, *values: typing.Sequence[str],
                  **kwargs) -> desc.EnumDescriptorProto:
    enum_value_pbs = [
        desc.EnumValueDescriptorProto(name=n, number=i)
        for i, n in enumerate(values)
    ]
    enum_pb = desc.EnumDescriptorProto(name=name,
                                       value=enum_value_pbs,
                                       **kwargs)
    return enum_pb
def make_enum_pb2(name: str, values: Tuple[str, int],
                  **kwargs) -> desc.EnumDescriptorProto:
    """Mock an EnumDescriptorProto that is used to create wrappers.Enum"""
    enum_value_pbs = [
        make_enum_value_pb2(name=i[0], number=i[1]) for i in values
    ]
    enum_pb = desc.EnumDescriptorProto(name=name,
                                       value=enum_value_pbs,
                                       **kwargs)
    return enum_pb
Exemplo n.º 3
0
def enum_factory(name: str, variants: Iterable[str]) -> wrappers.EnumType:
    enum_pb = descriptor_pb2.EnumDescriptorProto(
        name=name,
        value=tuple(
            descriptor_pb2.EnumValueDescriptorProto(name=v, number=i)
            for i, v in enumerate(variants)))

    enum = wrappers.EnumType(enum_pb=enum_pb,
                             values=[
                                 wrappers.EnumValueType(enum_value_pb=v)
                                 for v in enum_pb.value
                             ])

    return enum