Skip to content

Commit 63a658f

Browse files
authored
fix: pickling DateTime
Pickling pendulum DateTimes doesn't preserve before vs after DST effects. See #908
1 parent 2adcc02 commit 63a658f

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/pendulum/datetime.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1338,7 +1338,7 @@ def __getnewargs__(self) -> tuple[Self]:
13381338

13391339
def _getstate(
13401340
self, protocol: SupportsIndex = 3
1341-
) -> tuple[int, int, int, int, int, int, int, datetime.tzinfo | None]:
1341+
) -> tuple[int, int, int, int, int, int, int, datetime.tzinfo | None, int]:
13421342
return (
13431343
self.year,
13441344
self.month,
@@ -1348,6 +1348,7 @@ def _getstate(
13481348
self.second,
13491349
self.microsecond,
13501350
self.tzinfo,
1351+
self.fold,
13511352
)
13521353

13531354
def __reduce__(
@@ -1364,7 +1365,7 @@ def __reduce_ex__(
13641365
type[Self],
13651366
tuple[int, int, int, int, int, int, int, datetime.tzinfo | None],
13661367
]:
1367-
return self.__class__, self._getstate(protocol)
1368+
return self.create, self._getstate(protocol)
13681369

13691370
def __deepcopy__(self, _: dict[int, Self]) -> Self:
13701371
return self.__class__(

0 commit comments

Comments
 (0)