Python should use different types to represent datetimes with a timezone and those without.
class Datetime:
pass
class NaiveDatetime:
pass
That way you can annotate functions properly. def timezone(datetime: Datetime) -> ...:
This is how Elixir does it. So much easier to understand as a newcomer.https://hexdocs.pm/elixir/DateTime.html https://hexdocs.pm/elixir/NaiveDateTime.html