A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/protocolbuffers/protobuf/commit/fff783ef874ed6b1f88e567a610757933516f21e below:

-Add '+' and '-' annotations for Timestamp and Duration in Python · protocolbuffers/protobuf@fff783e · GitHub

File tree Expand file treeCollapse file tree 3 files changed

+55

-2

lines changed

Filter options

Expand file treeCollapse file tree 3 files changed

+55

-2

lines changed Original file line number Diff line number Diff line change

@@ -65,6 +65,32 @@ def test_duration_construction(self):

65 65

)

66 66

self.assertEqual(expected_td, message.optional_duration.ToTimedelta())

67 67 68 +

def test_duration_sub_annotation(self):

69 +

dt = datetime.datetime.now()

70 +

dr = duration_pb2.Duration()

71 +

td = datetime.timedelta(microseconds=123)

72 +

# datetime - Duration

73 +

self.assertEqual(dt - dr, dt - duration.to_timedelta(dr))

74 +

# timedelta - Duration and Duration - Duration

75 +

self.assertEqual(td - dr, duration.from_timedelta(td) - dr)

76 +

# Duration - timedelta

77 +

self.assertEqual(dr - td, dr - duration.from_timedelta(td))

78 + 79 +

def test_duration_add_annotation(self):

80 +

dt = datetime.datetime.now()

81 +

dr = duration_pb2.Duration()

82 +

dr2 = duration_pb2.Duration(seconds=100)

83 +

# datetime + Duration and Duration + datetime

84 +

self.assertEqual(dt + dr, dr + dt)

85 +

message = well_known_types_test_pb2.WKTMessage(optional_timestamp=dt)

86 +

# Duration + Timestamp

87 +

self.assertEqual(dr + message.optional_timestamp, dr + dt)

88 +

td = datetime.timedelta(microseconds=123)

89 +

# Duration + timedelta and timedelta + Duration

90 +

self.assertEqual(dr + td, td + dr)

91 +

# Duration + Duration

92 +

self.assertEqual(dr + dr2, dr2 + dr)

93 + 68 94 69 95

if __name__ == '__main__':

70 96

unittest.main()

Original file line number Diff line number Diff line change

@@ -64,6 +64,30 @@ def test_timstamp_construction(self):

64 64

optional_timestamp=datetime.datetime.today()

65 65

)

66 66 67 +

def test_timestamp_sub_annotation(self):

68 +

t1 = timestamp_pb2.Timestamp()

69 +

t2 = timestamp_pb2.Timestamp()

70 +

dt = datetime.datetime.now()

71 +

td = datetime.timedelta(hours=0)

72 +

msg = well_known_types_test_pb2.WKTMessage(optional_duration=td)

73 +

# Timestamp - datetime

74 +

self.assertEqual(t1 - dt, t2 - dt)

75 +

# Timestamp - Timestamp

76 +

self.assertEqual(t1 - t2, t2 - t1)

77 +

# datetime - Timestamp

78 +

self.assertEqual(dt - t1, dt - t2)

79 +

# Timestamp - timedelta and Timestamp - Duration

80 +

self.assertEqual(t1 - td, t2 - msg.optional_duration)

81 + 82 +

def test_timestamp_add_annotation(self):

83 +

ts = timestamp_pb2.Timestamp()

84 +

td = datetime.timedelta(hours=0)

85 +

msg = well_known_types_test_pb2.WKTMessage(optional_duration=td)

86 +

# Timestamp + timedelta and timedelta + Timestamp

87 +

self.assertEqual(ts + td, td + ts)

88 +

# Timestamp + Duration and Duration + Timestamp

89 +

self.assertEqual(ts + msg.optional_duration, msg.optional_duration + ts)

90 + 67 91 68 92

if __name__ == '__main__':

69 93

unittest.main()

Original file line number Diff line number Diff line change

@@ -475,8 +475,11 @@ def __add__(self, value) -> Union[datetime.datetime, datetime.timedelta]:

475 475 476 476

__radd__ = __add__

477 477 478 -

def __rsub__(self, dt) -> Union[datetime.datetime, datetime.timedelta]:

479 -

return dt - self.ToTimedelta()

478 +

def __sub__(self, value) -> datetime.timedelta:

479 +

return self.ToTimedelta() - value

480 + 481 +

def __rsub__(self, value) -> Union[datetime.datetime, datetime.timedelta]:

482 +

return value - self.ToTimedelta()

480 483 481 484 482 485

def _CheckDurationValid(seconds, nanos):

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4