When you call enfold()
method on a datetime object it actually set its fold
attribute to 1 which means that this datetime is the one after the shifting has occurred.
Actually python wont make any special interpretation for this, but this is very useful when adjusting the datetime back to utc using <datetime-object>.astimezone(timezone.utc)
let's clarify with an example
from dateutil import tz
from datetime import datetime
first_1am = datetime(2017, 11, 5, 1, 0, 0, tzinfo=eastern) # Ambiguous datetime object
# tz.datetime_ambiguous(first_1am) # Outputs: True
second_1am = tz.enfold(first_1am)
# If you simply try to subtract both
(second_1am - first_1am).total_seconds # outputs: 0.0
# However try shifting both to utc
(second_1am.astimezone(timezone.utc) - first_1am.astimezone(timezone.utc)).total_seconds()
# outputs: 3600.0