BUG: DatetimeIndex() constructor with mixed timezones gives confusing TypeError · Issue #50974 · pandas-dev/pandas (original) (raw)

Passing strings with different timezone offsets correctly raises an error, but the error message is wrong / confusing:

In [2]: pd.DatetimeIndex(["2013-11-02 22:00-05:00", "2013-11-03 22:00-06:00"], ambiguous=True)
...
File ~/scipy/pandas/pandas/core/arrays/datetimes.py:2176, in objects_to_datetime64ns(data, dayfirst, yearfirst, utc, errors, allow_object)
   2174     if allow_object:
   2175         return result, tz_parsed
-> 2176     raise TypeError(result)
   2177 else:  # pragma: no cover
   2178     # GH#23675 this TypeError should never be hit, whereas the TypeError
   2179     #  in the object-dtype branch above is reachable.
   2180     raise TypeError(result)

TypeError: [datetime.datetime(2013, 11, 2, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400)))
 datetime.datetime(2013, 11, 3, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800)))]

This happens on current main (2.0.0dev), but I see the same behaviour on released pandas (1.5.3)