Skip to content

Commit b1f8782

Browse files
committed
Fix pickling of tzoffset
Fixes#650
1 parent 43564d2 commit b1f8782

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

‎git/objects/util.py‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ def __init__(self, secs_west_of_utc, name=None):
105105
self._offset=timedelta(seconds=-secs_west_of_utc)
106106
self._name=nameor'fixed'
107107

108+
def__reduce__(self):
109+
returntzoffset, (-self._offset.total_seconds(), self._name)
110+
108111
defutcoffset(self, dt):
109112
returnself._offset
110113

‎git/test/test_util.py‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,3 +280,9 @@ def test_from_timestamp(self):
280280
# Wrong offset: UTC-9000, should return datetime + tzoffset(UTC)
281281
altz=utctz_to_altz('-9000')
282282
self.assertEqual(datetime.fromtimestamp(1522827734, tzoffset(0)), from_timestamp(1522827734, altz))
283+
284+
deftest_pickle_tzoffset(self):
285+
t1=tzoffset(555)
286+
t2=pickle.loads(pickle.dumps(t1))
287+
self.assertEqual(t1._offset, t2._offset)
288+
self.assertEqual(t1._name, t2._name)

0 commit comments

Comments
(0)