def resolve_one_name()

in src/services/rule_meta_service.py [0:0]


    def resolve_one_name(self, name: str) -> Generator[Payload, None, None]:
        resolved = set()
        for sample in self._available_ids:
            if name not in sample:
                continue
            resolved.add(sample)
            if self._allow_ambiguous and not self._allow_multiple:
                # allow ambiguous means that even if the provided name
                # to resolve is too fuzzy and can be interpreted as
                # multiple different rules, we anyway resolve the first
                # similar. If allow_ambiguous is False, we resolve the
                # name only if it represents only one rule without doubt.
                break
        if not resolved:
            _LOG.warning(f'Could not resolve any rule from: {name}')
            yield name, False
            return
        # resolved rules exist
        if self._allow_multiple:
            _LOG.debug(f'Multiple rules from one name are allowed. '
                       f'Resolving all from {name}')
            for rule in resolved:
                yield rule, True
            return
        # multiple not allowed. But something is resolved.
        # Either one ambiguous or just one certain. Anyway yielding
        if len(resolved) == 1:
            _LOG.debug(f'One rule resolved from {name}')
            yield resolved.pop(), True
            return
        # multiple not allowed
        _LOG.warning(f'Cannot certainly resolve name: {name}')
        yield name, False