Skip to content

is_subject_match_wildcard

faststream.nats.schemas.js_stream.is_subject_match_wildcard #

is_subject_match_wildcard(subject, pattern)
Source code in faststream/nats/schemas/js_stream.py
def is_subject_match_wildcard(subject: str, pattern: str) -> bool:
    subject_parts = subject.split(".")
    pattern_parts = pattern.split(".")

    for subject_part, pattern_part in zip(
        subject_parts,
        pattern_parts,
        strict=False,
    ):
        if pattern_part == ">":
            return True

        if pattern_part == "*":
            if subject_part == ">":
                return False

        elif subject_part != pattern_part:
            return False

    return len(subject_parts) == len(pattern_parts)