Skip to content

Commit 2981bd5

Browse files
author
Andrei Neagu
committed
refactor and using protocol
1 parent 2bbf0e7 commit 2981bd5

File tree

4 files changed

+13
-10
lines changed

4 files changed

+13
-10
lines changed

packages/service-library/src/servicelib/fastapi/lifespan_utils.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
from collections.abc import AsyncIterator, Callable
2-
from typing import TypeAlias
1+
from collections.abc import AsyncIterator
2+
from typing import Protocol
33

44
from fastapi import FastAPI
55
from fastapi_lifespan_manager import LifespanManager, State
66

7-
SetupGenerator: TypeAlias = Callable[[FastAPI], AsyncIterator[State]]
87

8+
class LifespanGenerator(Protocol):
9+
def __call__(self, app: FastAPI) -> AsyncIterator["State"]:
10+
...
911

10-
def combine_lifespans(*generators: SetupGenerator) -> LifespanManager:
12+
13+
def combine_lifespans(*generators: LifespanGenerator) -> LifespanManager:
1114

1215
manager = LifespanManager()
1316

packages/service-library/src/servicelib/fastapi/tracing.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from opentelemetry.sdk.resources import Resource
1818
from opentelemetry.sdk.trace import TracerProvider
1919
from opentelemetry.sdk.trace.export import BatchSpanProcessor
20-
from servicelib.fastapi.lifespan_utils import SetupGenerator
20+
from servicelib.fastapi.lifespan_utils import LifespanGenerator
2121
from servicelib.logging_utils import log_context
2222
from settings_library.tracing import TracingSettings
2323
from yarl import URL
@@ -136,7 +136,7 @@ def setup_tracing(
136136

137137
def get_lifespan_tracing(
138138
tracing_settings: TracingSettings, service_name: str
139-
) -> SetupGenerator:
139+
) -> LifespanGenerator:
140140
async def _(app: FastAPI) -> AsyncIterator[State]:
141141
setup_tracing(app, tracing_settings, service_name)
142142
yield {}

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/core/application.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from fastapi import FastAPI
44
from fastapi_lifespan_manager import State
5-
from servicelib.fastapi.lifespan_utils import SetupGenerator, combine_lifespans
5+
from servicelib.fastapi.lifespan_utils import LifespanGenerator, combine_lifespans
66
from servicelib.fastapi.openapi import override_fastapi_openapi_method
77
from servicelib.fastapi.profiler import initialize_profiler
88
from servicelib.fastapi.prometheus_instrumentation import (
@@ -43,7 +43,7 @@ async def _lifespan_banner(_: FastAPI) -> AsyncIterator[State]:
4343
def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
4444
app_settings = settings or ApplicationSettings.create_from_envs()
4545

46-
lifespans: list[SetupGenerator] = [
46+
lifespans: list[LifespanGenerator] = [
4747
lifespan_director_v2,
4848
lifespan_director_v0,
4949
lifespan_rabbitmq,
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from servicelib.fastapi.lifespan_utils import SetupGenerator
1+
from servicelib.fastapi.lifespan_utils import LifespanGenerator
22

33
from . import _notifier, _socketio
44

55

6-
def get_notifier_lifespans() -> list[SetupGenerator]:
6+
def get_notifier_lifespans() -> list[LifespanGenerator]:
77
return [_socketio.lifespan, _notifier.lifespan]

0 commit comments

Comments
 (0)