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
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, )