def count_vowels(s: str) -> int:
"""
Count the number of vowels in a given string.
:param s: Input string to count vowels in.
:return: Number of vowels in the input string.
Examples:
>>> count_vowels("hello world")
3
>>> count_vowels("HELLO WORLD")
3
>>> count_vowels("123 hello world")
3
>>> count_vowels("")
0
>>> count_vowels("a quick brown fox")
5
>>> count_vowels("the quick BROWN fox")
5
>>> count_vowels("PYTHON")
1
"""
if not isinstance(s, str):
raise ValueError("Input must be a string")
vowels = "aeiouAEIOU"
return sum(1 for char in s if char in vowels)
if __name__ == "__main__":
from doctest import testmod
testmod()