standardize packaging, tooling, docs, CI, and licensing
This commit is contained in:
@@ -24,8 +24,8 @@ Credential validation, refresh, rotation, and acquisition remain the
|
||||
responsibility of authentication provider implementations.
|
||||
"""
|
||||
|
||||
|
||||
from typing import Optional, TypeVar, Callable
|
||||
from collections.abc import Callable
|
||||
from typing import TypeVar
|
||||
|
||||
from mail_intake.credentials.store import CredentialStore
|
||||
|
||||
@@ -61,7 +61,7 @@ class RedisCredentialStore(CredentialStore[T]):
|
||||
key: str,
|
||||
serialize: Callable[[T], bytes],
|
||||
deserialize: Callable[[bytes], T],
|
||||
ttl_seconds: Optional[int] = None,
|
||||
ttl_seconds: int | None = None,
|
||||
):
|
||||
"""
|
||||
Initialize a Redis-backed credential store.
|
||||
@@ -88,7 +88,7 @@ class RedisCredentialStore(CredentialStore[T]):
|
||||
self.deserialize = deserialize
|
||||
self.ttl_seconds = ttl_seconds
|
||||
|
||||
def load(self) -> Optional[T]:
|
||||
def load(self) -> T | None:
|
||||
"""
|
||||
Load credentials from Redis.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user