Skip to content

Commit 97aa066

Browse files
committed
use timezone.utc instead for back-compat
1 parent b819fad commit 97aa066

File tree

3 files changed

+17
-20
lines changed

3 files changed

+17
-20
lines changed

sqs_workers/memory_sqs.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
1616
Ref: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html
1717
"""
18-
import datetime
1918
import logging
2019
import uuid
20+
from datetime import datetime, timedelta, timezone
2121
from typing import Any, Dict, List
2222

2323
import attr
@@ -141,8 +141,8 @@ def receive_messages(self, WaitTimeSeconds="0", MaxNumberOfMessages="10", **kwar
141141
ready_messages = []
142142
push_back_messages = []
143143

144-
now = datetime.datetime.now(tz=datetime.UTC)
145-
threshold = now + datetime.timedelta(seconds=wait_seconds)
144+
now = datetime.now(tz=timezone.utc)
145+
threshold = now + timedelta(seconds=wait_seconds)
146146

147147
# before retrieving messages, go through in_flight and return any
148148
# messages whose "invisible" timeout has expired back to the pool
@@ -197,14 +197,14 @@ def change_message_visibility_batch(self, Entries):
197197
found_entries = []
198198
not_found_entries = []
199199

200-
now = datetime.datetime.now(tz=datetime.UTC)
200+
now = datetime.now(tz=timezone.utc)
201201

202202
for e in Entries:
203203
if e["Id"] in self.in_flight:
204204
found_entries.append(e)
205205
in_flight_message = self.in_flight[e["Id"]]
206206
sec = int(e["VisibilityTimeout"])
207-
visible_at = now + datetime.timedelta(seconds=sec)
207+
visible_at = now + timedelta(seconds=sec)
208208
updated_message = attr.evolve(in_flight_message, visible_at=visible_at)
209209
self.in_flight[e["Id"]] = updated_message
210210
else:
@@ -247,9 +247,7 @@ class MemoryMessage:
247247
attributes: Dict[str, Any] = attr.ib(factory=dict)
248248

249249
# Internal attribute which contains the execution time.
250-
visible_at: datetime.datetime = attr.ib(
251-
factory=lambda: datetime.datetime.now(tz=datetime.UTC)
252-
)
250+
visible_at: datetime = attr.ib(factory=lambda: datetime.now(tz=timezone.utc))
253251

254252
# A unique identifier for the message
255253
message_id: str = attr.ib(factory=lambda: uuid.uuid4().hex)
@@ -277,20 +275,20 @@ def from_kwargs(cls, queue_impl, kwargs):
277275
if "MessageGroupId" in kwargs:
278276
attributes["MessageGroupId"] = kwargs["MessageGroupId"]
279277

280-
visible_at = datetime.datetime.now(tz=datetime.UTC)
278+
visible_at = datetime.now(tz=timezone.utc)
281279
if "DelaySeconds" in kwargs:
282280
delay_seconds_int = int(kwargs["DelaySeconds"])
283-
visible_at += datetime.timedelta(seconds=delay_seconds_int)
281+
visible_at += timedelta(seconds=delay_seconds_int)
284282

285283
return MemoryMessage(
286284
queue_impl, body, message_atttributes, attributes, visible_at
287285
)
288286

289287
def change_visibility(self, VisibilityTimeout="0", **kwargs):
290288
if self.message_id in self.queue_impl.in_flight:
291-
now = datetime.datetime.now(tz=datetime.UTC)
289+
now = datetime.now(tz=timezone.utc)
292290
sec = int(VisibilityTimeout)
293-
visible_at = now + datetime.timedelta(seconds=sec)
291+
visible_at = now + timedelta(seconds=sec)
294292
updated_message = attr.evolve(self, visible_at=visible_at)
295293
self.queue_impl.in_flight[self.message_id] = updated_message
296294
else:

sqs_workers/shutdown_policies.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import datetime
1+
from datetime import datetime, timedelta, timezone
22
from typing import Protocol
33

44

@@ -28,23 +28,22 @@ class IdleShutdown:
2828

2929
def __init__(self, idle_seconds: int) -> None:
3030
self.idle_seconds = idle_seconds
31-
self._idle_delta = datetime.timedelta(seconds=idle_seconds)
31+
self._idle_delta = timedelta(seconds=idle_seconds)
3232
self._is_idle = False
33-
self._last_seen = datetime.datetime.now(tz=datetime.UTC)
33+
self._last_seen = datetime.now(tz=timezone.utc)
3434

3535
def update_state(self, batch_processing_result) -> None:
3636
"""Update internal state of the shutdown policy"""
3737
if batch_processing_result.total_count() == 0:
3838
self._is_idle = True
3939
else:
4040
self._is_idle = False
41-
self._last_seen = datetime.datetime.now(tz=datetime.UTC)
41+
self._last_seen = datetime.now(tz=timezone.utc)
4242

4343
def need_shutdown(self) -> bool:
4444
if not self._is_idle:
4545
return False
46-
now = datetime.datetime.now(tz=datetime.UTC)
47-
return (now - self._last_seen) >= self._idle_delta
46+
return (datetime.now(tz=timezone.utc) - self._last_seen) >= self._idle_delta
4847

4948
def __repr__(self) -> str:
5049
return f"IdleShutdown({self.idle_seconds})"

tests/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import random
22
import string
3-
from datetime import UTC, datetime
3+
from datetime import datetime, timezone
44

55
import boto3
66
import localstack_client.session
@@ -22,7 +22,7 @@ def sqs_session(request):
2222

2323
@pytest.fixture
2424
def sqs(sqs_session):
25-
queue_prefix = f"sqs_workers_tests_{datetime.now(tz=UTC):%Y%m%d}_"
25+
queue_prefix = f"sqs_workers_tests_{datetime.now(tz=timezone.utc):%Y%m%d}_"
2626
sqs = SQSEnv(session=sqs_session, queue_prefix=queue_prefix)
2727
return sqs
2828

0 commit comments

Comments
 (0)