Skip to content

Commit

Permalink
Upgrade mypy to 1.13.0
Browse files Browse the repository at this point in the history
Signed-off-by: Sergey Vasilyev <[email protected]>
  • Loading branch information
nolar committed Nov 19, 2024
1 parent 64e3bec commit 6260e59
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 8 deletions.
4 changes: 2 additions & 2 deletions kopf/_core/intents/callbacks.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
IndexingFn = Callable[..., invocation.SyncOrAsync[Optional[object]]]
WatchingFn = Callable[..., invocation.SyncOrAsync[Optional[object]]]
ChangingFn = Callable[..., invocation.SyncOrAsync[Optional[object]]]
WebhookFn = Callable[..., invocation.SyncOrAsync[None]]
WebhookFn = Callable[..., invocation.SyncOrAsync[Optional[object]]]
DaemonFn = Callable[..., invocation.SyncOrAsync[Optional[object]]]
TimerFn = Callable[..., invocation.SyncOrAsync[Optional[object]]]
WhenFilterFn = Callable[..., bool] # strictly sync, no async!
Expand Down Expand Up @@ -145,7 +145,7 @@
DefaultNamedArg(Any, "param"),
KwArg(Any),
],
invocation.SyncOrAsync[None]
invocation.SyncOrAsync[Optional[object]]
]

DaemonFn = Callable[
Expand Down
24 changes: 19 additions & 5 deletions kopf/_core/reactor/orchestration.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,12 @@
import functools
import itertools
import logging
from typing import Any, Collection, Container, Dict, Iterable, MutableMapping, NamedTuple, Optional
from typing import Any, Collection, Container, Dict, Iterable, \
MutableMapping, NamedTuple, Optional, Protocol

from kopf._cogs.aiokits import aiotasks, aiotoggles
from kopf._cogs.configs import configuration
from kopf._cogs.structs import references
from kopf._cogs.structs import bodies, references
from kopf._core.engines import peering
from kopf._core.reactor import queueing

Expand All @@ -43,6 +44,19 @@ class EnsembleKey(NamedTuple):
namespace: references.Namespace


# Differs from queueing.WatchStreamProcessor by the resource=… kwarg.
class ResourceWatchStreamProcessor(Protocol):
async def __call__(
self,
*,
resource: references.Resource,
raw_event: bodies.RawEvent,
stream_pressure: Optional[asyncio.Event] = None, # None for tests
resource_indexed: Optional[aiotoggles.Toggle] = None, # None for tests & observation
operator_indexed: Optional[aiotoggles.ToggleSet] = None, # None for tests & observation
) -> None: ...


@dataclasses.dataclass
class Ensemble:

Expand Down Expand Up @@ -89,7 +103,7 @@ def del_keys(self, keys: Container[EnsembleKey]) -> None:

async def ochestrator(
*,
processor: queueing.WatchStreamProcessor,
processor: ResourceWatchStreamProcessor,
settings: configuration.OperatorSettings,
identity: peering.Identity,
insights: references.Insights,
Expand Down Expand Up @@ -122,7 +136,7 @@ async def ochestrator(
# for a simulation of the insights (inputs) and an assertion of the tasks & toggles (outputs).
async def adjust_tasks(
*,
processor: queueing.WatchStreamProcessor,
processor: ResourceWatchStreamProcessor,
insights: references.Insights,
settings: configuration.OperatorSettings,
identity: peering.Identity,
Expand Down Expand Up @@ -213,7 +227,7 @@ async def spawn_missing_peerings(

async def spawn_missing_watchers(
*,
processor: queueing.WatchStreamProcessor,
processor: ResourceWatchStreamProcessor,
settings: configuration.OperatorSettings,
indexed_resources: Container[references.Resource], # only "if in", never "for in"!
watched_resources: Iterable[references.Resource],
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ freezegun
import-linter
isort
lxml
mypy==1.8.0
mypy==1.13.0
pre-commit
pyngrok
pytest>=6.0.0
Expand Down

0 comments on commit 6260e59

Please sign in to comment.