refactor(playout): prefer datetime.now(timezone.utc) over datetime.utcnow() (#3167)

### Description

`datetime.utcnow()` is deprecated in favor of
`datetime.now(timezone.utc)`.

See
https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow
This commit is contained in:
Jonas L. 2025-06-14 13:55:26 +02:00 committed by GitHub
parent d7987bb4ef
commit 8bd2db1661
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 15 additions and 15 deletions

View File

@ -1,6 +1,6 @@
import logging
from dataclasses import dataclass
from datetime import datetime
from datetime import datetime, timezone
from threading import Thread
from time import sleep
from typing import Any, Dict, List, Optional, Union
@ -92,7 +92,7 @@ class StatsCollector:
_timestamp: Optional[datetime] = None,
) -> None:
if _timestamp is None:
_timestamp = datetime.utcnow()
_timestamp = datetime.now(timezone.utc)
stats: List[Dict[str, Any]] = []
stats_timestamp = _timestamp.strftime("%Y-%m-%d %H:%M:%S")

View File

@ -6,7 +6,7 @@ import logging
import os
import sys
import time
from datetime import datetime
from datetime import datetime, timezone
from pathlib import Path
from queue import Queue
from typing import Any, Dict, Optional
@ -98,7 +98,7 @@ def cli(
# the local machine is, so that we have a reference for what time the actual
# log entries were made
logger.info("Timezone: %s", time.tzname)
logger.info("UTC time: %s", datetime.utcnow())
logger.info("UTC time: %s", datetime.now(timezone.utc))
api_client = ApiClient(
base_url=config.general.public_url,

View File

@ -1,4 +1,4 @@
from datetime import datetime
from datetime import datetime, timezone
from enum import Enum
from pathlib import Path
from typing import Dict, Literal, Optional, Union
@ -54,7 +54,7 @@ class BaseEvent(BaseModel):
return datetime_to_event_key(self.end)
def ended(self) -> bool:
return datetime.utcnow() > self.end
return datetime.now(timezone.utc) > self.end
class FileEvent(BaseEvent):

View File

@ -1,6 +1,6 @@
import logging
import time
from datetime import datetime, timedelta
from datetime import datetime, timedelta, timezone
from typing import Dict, List, Optional, Set
from ..liquidsoap.client import LiquidsoapClient
@ -317,7 +317,7 @@ class Liquidsoap:
def modify_cue_point(self, file_event: FileEvent) -> None:
assert file_event.type == EventKind.FILE
lateness = seconds_between(file_event.start, datetime.utcnow())
lateness = seconds_between(file_event.start, datetime.now(timezone.utc))
if lateness > 0:
logger.debug("media item was supposed to start %ss ago", lateness)

View File

@ -1,7 +1,7 @@
import logging
import math
import time
from datetime import datetime
from datetime import datetime, timezone
from queue import Queue
from threading import Thread
from typing import List, Tuple
@ -64,7 +64,7 @@ class PypoPush(Thread):
loops += 1
def separate_present_future(self, events: Events) -> Tuple[List[AnyEvent], Events]:
now = datetime.utcnow()
now = datetime.now(timezone.utc)
present: List[AnyEvent] = []
future: Events = {}

View File

@ -1,6 +1,6 @@
import logging
from collections import deque
from datetime import datetime
from datetime import datetime, timezone
from queue import Empty, Queue
from threading import Thread
from typing import Any, Dict
@ -48,7 +48,7 @@ class PypoLiqQueue(Thread):
self.liquidsoap.play(media_item)
if len(schedule_deque):
time_until_next_play = seconds_between(
datetime.utcnow(),
datetime.now(timezone.utc),
schedule_deque[0].start,
)
else:
@ -65,7 +65,7 @@ class PypoLiqQueue(Thread):
if len(keys):
time_until_next_play = seconds_between(
datetime.utcnow(),
datetime.now(timezone.utc),
media_schedule[keys[0]].start,
)

View File

@ -1,4 +1,4 @@
from datetime import datetime, time, timedelta
from datetime import datetime, time, timedelta, timezone
from operator import itemgetter
from typing import Dict
@ -37,7 +37,7 @@ def insert_event(events: Events, event_key: str, event: AnyEvent) -> None:
def get_schedule(api_client: ApiClient) -> Events:
stream_preferences = StreamPreferences(**api_client.get_stream_preferences().json())
current_time = datetime.utcnow()
current_time = datetime.now(timezone.utc)
end_time = current_time + timedelta(days=1)
current_time_str = current_time.isoformat(timespec="seconds")