File tree Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change 1
1
from __future__ import annotations
2
2
3
+ import copy
3
4
import operator
4
5
5
6
from datetime import date
6
7
from datetime import datetime
7
8
from datetime import timedelta
8
9
from typing import TYPE_CHECKING
10
+ from typing import Any
9
11
from typing import Generic
10
12
from typing import TypeVar
11
13
from typing import cast
@@ -409,3 +411,10 @@ def __eq__(self, other: object) -> bool:
409
411
410
412
def __ne__ (self , other : object ) -> bool :
411
413
return not self .__eq__ (other )
414
+
415
+ def __deepcopy__ (self , memo : dict [int , Any ]) -> Self :
416
+ return self .__class__ (
417
+ copy .deepcopy (self .start , memo ),
418
+ copy .deepcopy (self .end , memo ),
419
+ self ._absolute ,
420
+ )
Original file line number Diff line number Diff line change 1
1
from __future__ import annotations
2
2
3
+ import copy
3
4
import pickle
4
5
5
6
from datetime import timedelta
@@ -65,3 +66,18 @@ def test_inequality():
65
66
66
67
assert interval1 != interval2
67
68
assert interval1 != interval3
69
+
70
+
71
+ def test_deepcopy ():
72
+ dt1 = pendulum .datetime (2016 , 11 , 18 )
73
+ dt2 = pendulum .datetime (2016 , 11 , 20 )
74
+
75
+ interval = dt2 - dt1
76
+
77
+ interval2 = copy .deepcopy (interval )
78
+
79
+ assert interval == interval2
80
+ # make sure it's a deep copy
81
+ assert interval is not interval2
82
+ assert interval .start is not interval2 .start
83
+ assert interval .end is not interval2 .end
You can’t perform that action at this time.
0 commit comments