В настоящее время я использую оператор assert с isinstance. Поскольку datetime является подклассом date, мне также нужно проверить, что он не является экземпляром datetime. Наверняка есть лучший способ?
from datetime import date, datetime
def some_func(arg):
assert isinstance(arg, date) and not isinstance(arg, datetime),\
'arg must be a datetime.date object'
# ...