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)