feat: drop python 3.10 support

dropped python3.10, updated pyproject and dependencies, and also removed some blocks of code with special handling for enum.StrEnum

Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
Charlie Doern 2025-06-18 10:16:27 -04:00
parent 7d812e3bf0
commit 12d860744d
32 changed files with 63 additions and 104 deletions

View file

@ -87,9 +87,7 @@ class RefreshableBotoSession:
"access_key": session_credentials.access_key,
"secret_key": session_credentials.secret_key,
"token": session_credentials.token,
"expiry_time": datetime.datetime.fromtimestamp(
time() + self.session_ttl, datetime.timezone.utc
).isoformat(),
"expiry_time": datetime.datetime.fromtimestamp(time() + self.session_ttl, datetime.UTC).isoformat(),
}
return credentials

View file

@ -5,7 +5,7 @@
# the root directory of this source tree.
from collections.abc import AsyncIterator
from datetime import datetime, timezone
from datetime import UTC, datetime
from typing import Any
from llama_stack.apis.inference import (
@ -122,7 +122,7 @@ async def stream_and_store_openai_completion(
final_response = OpenAIChatCompletion(
id=id,
choices=assembled_choices,
created=created or int(datetime.now(timezone.utc).timestamp()),
created=created or int(datetime.now(UTC).timestamp()),
model=model,
object="chat.completion",
)

View file

@ -9,7 +9,7 @@ import asyncio
import functools
import threading
from collections.abc import Callable, Coroutine, Iterable
from datetime import datetime, timezone
from datetime import UTC, datetime
from enum import Enum
from typing import Any, TypeAlias
@ -61,7 +61,7 @@ class Job:
self._handler = handler
self._artifacts: list[JobArtifact] = []
self._logs: list[LogMessage] = []
self._state_transitions: list[tuple[datetime, JobStatus]] = [(datetime.now(timezone.utc), JobStatus.new)]
self._state_transitions: list[tuple[datetime, JobStatus]] = [(datetime.now(UTC), JobStatus.new)]
@property
def handler(self) -> JobHandler:
@ -77,7 +77,7 @@ class Job:
raise ValueError(f"Job is already in a completed state ({self.status})")
if self.status == status:
return
self._state_transitions.append((datetime.now(timezone.utc), status))
self._state_transitions.append((datetime.now(UTC), status))
@property
def artifacts(self) -> list[JobArtifact]:
@ -215,7 +215,7 @@ class Scheduler:
self._backend = _get_backend_impl(backend)
def _on_log_message_cb(self, job: Job, message: str) -> None:
msg = (datetime.now(timezone.utc), message)
msg = (datetime.now(UTC), message)
# At least for the time being, until there's a better way to expose
# logs to users, log messages on console
logger.info(f"Job {job.id}: {message}")

View file

@ -11,7 +11,7 @@ import queue
import random
import threading
from collections.abc import Callable
from datetime import datetime, timezone
from datetime import UTC, datetime
from functools import wraps
from typing import Any
@ -121,7 +121,7 @@ class TraceContext:
span_id=generate_span_id(),
trace_id=self.trace_id,
name=name,
start_time=datetime.now(timezone.utc),
start_time=datetime.now(UTC),
parent_span_id=current_span.span_id if current_span else None,
attributes=attributes,
)
@ -239,7 +239,7 @@ class TelemetryHandler(logging.Handler):
UnstructuredLogEvent(
trace_id=span.trace_id,
span_id=span.span_id,
timestamp=datetime.now(timezone.utc),
timestamp=datetime.now(UTC),
message=self.format(record),
severity=severity(record.levelname),
)