コード例 #1
0
def get_config_options(
    config: Dict[str, str], configurable_options: Type[ConfigurableOptions]
) -> Dict[str, common_pb2.ConfigOption]:
    """
    Retrieve configuration options in a form that is used by the grpc server.

    :param config: configuration
    :param configurable_options: configurable options
    :return: mapping of configuration ids to configuration options
    """
    results = {}
    for configuration in configurable_options.configurations():
        value = config[configuration.id]
        config_option = common_pb2.ConfigOption(
            label=configuration.label,
            name=configuration.id,
            value=value,
            type=configuration.type.value,
            select=configuration.options,
        )
        results[configuration.id] = config_option
    for config_group in configurable_options.config_groups():
        start = config_group.start - 1
        stop = config_group.stop
        options = list(results.values())[start:stop]
        for option in options:
            option.group = config_group.name
    return results
コード例 #2
0
 def to_proto(self) -> common_pb2.ConfigOption:
     config_type = self.type.value if self.type is not None else None
     return common_pb2.ConfigOption(
         label=self.label,
         name=self.name,
         value=self.value,
         type=config_type,
         select=self.select,
         group=self.group,
     )