inkonsistenz beim Umschalten zwischen Zeitzonen in python

Ich habe ein datetime-Objekt wie folgt erstellt:

tm = datetime.datetime.strptime('2010 Aug 04 14:15:16', '%Y %b %d %H:%M:%S')
>>> tm
datetime.datetime(2010, 8, 4, 14, 15, 16)

Ich stelle dann die Zeitzone so ein:

tm.replace(tzinfo=pytz.timezone('UTC'))
>>> tm
datetime.datetime(2010, 8, 4, 14, 15, 16, tzinfo=<UTC>)

Eventuell ändere ich die Zeitzone wie folgt in US / Pacific:

>>> tm = tm.astimezone(pytz.timezone('US/Pacific'))
>>> tm
datetime.datetime(2010, 8, 4, 7, 15, 16, tzinfo=<DstTzInfo 'US/Pacific' PDT-1 day, 17:00:00 DST>)

Das ist richtig. Aber wenn ich in die andere Richtung gehen würde:

>>> tm = tm.replace(tzinfo =pytz.timezone('US/Pacific'))
>>> tm
datetime.datetime(2010, 8, 4, 14, 15, 16, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>)

Wie Sie sehen, wird bei Verwendung von replace () mit der PST-Zeitzone fälschlicherweise davon ausgegangen, dass es sich nicht um die Sommerzeit handelt. Wenn ich in UTC konvertiere, werden daher 8 anstatt 7 Stunden hinzugefügt.

Warum macht es das und wie ändere ich es, damit es das tut, was ich will (DST richtig erkennen oder nicht)?