timezone inherits from tzinfo, so using tzinfo is more general (and e.g.
pytz types inherit directly from tzinfo).
This is the correct type, as quoted from astimezone's code:
elif not isinstance(tz, tzinfo):
raise TypeError("tz argument must be an instance of tzinfo")