Skip to content

Commit 7e3207c

Browse files
authored
refactoring: ♻️ Entrypoint typing
1 parent 651192d commit 7e3207c

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

injection/entrypoint.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from functools import wraps
88
from types import MethodType
99
from types import ModuleType as PythonModule
10-
from typing import Any, Self, final, overload
10+
from typing import Any, Concatenate, Self, final, overload
1111

1212
from injection import Module
1313
from injection.loaders import ProfileLoader, PythonModuleLoader
@@ -16,9 +16,9 @@
1616

1717
type AsyncEntrypoint[**P, T] = Entrypoint[P, Coroutine[Any, Any, T]]
1818
type EntrypointDecorator[**P, T1, T2] = Callable[[Callable[P, T1]], Callable[P, T2]]
19-
type EntrypointSetupMethod[*Ts, **P, T1, T2] = Callable[
20-
[Entrypoint[P, T1], *Ts],
21-
Entrypoint[P, T2],
19+
type EntrypointSetupMethod[**P, **EPP, T1, T2] = Callable[
20+
Concatenate[Entrypoint[EPP, T1], P],
21+
Entrypoint[EPP, T2],
2222
]
2323

2424

@@ -31,35 +31,35 @@ def decorator(wp: Callable[P, T]) -> Callable[P, T]:
3131

3232

3333
@overload
34-
def entrypointmaker[*Ts, **P, T1, T2](
35-
wrapped: EntrypointSetupMethod[*Ts, P, T1, T2],
34+
def entrypointmaker[**SMP, **EPP, T1, T2](
35+
wrapped: EntrypointSetupMethod[SMP, EPP, T1, T2],
3636
/,
3737
*,
3838
profile_loader: ProfileLoader = ...,
39-
) -> EntrypointDecorator[P, T1, T2]: ...
39+
) -> EntrypointDecorator[EPP, T1, T2]: ...
4040

4141

4242
@overload
43-
def entrypointmaker[*Ts, **P, T1, T2](
43+
def entrypointmaker[**SMP, **EPP, T1, T2](
4444
wrapped: None = ...,
4545
/,
4646
*,
4747
profile_loader: ProfileLoader = ...,
4848
) -> Callable[
49-
[EntrypointSetupMethod[*Ts, P, T1, T2]],
50-
EntrypointDecorator[P, T1, T2],
49+
[EntrypointSetupMethod[SMP, EPP, T1, T2]],
50+
EntrypointDecorator[EPP, T1, T2],
5151
]: ...
5252

5353

54-
def entrypointmaker[*Ts, **P, T1, T2](
55-
wrapped: EntrypointSetupMethod[*Ts, P, T1, T2] | None = None,
54+
def entrypointmaker[**SMP, **EPP, T1, T2](
55+
wrapped: EntrypointSetupMethod[SMP, EPP, T1, T2] | None = None,
5656
/,
5757
*,
5858
profile_loader: ProfileLoader | None = None,
5959
) -> Any:
6060
def decorator(
61-
wp: EntrypointSetupMethod[*Ts, P, T1, T2],
62-
) -> EntrypointDecorator[P, T1, T2]:
61+
wp: EntrypointSetupMethod[SMP, EPP, T1, T2],
62+
) -> EntrypointDecorator[EPP, T1, T2]:
6363
return Entrypoint._make_decorator(wp, profile_loader)
6464

6565
return decorator(wrapped) if wrapped else decorator
@@ -143,9 +143,9 @@ def __recreate[**_P, _T](
143143
return type(self)(function, self.profile_loader)
144144

145145
@classmethod
146-
def _make_decorator[*Ts, _T](
146+
def _make_decorator[**_P, _T](
147147
cls,
148-
setup_method: EntrypointSetupMethod[*Ts, P, T, _T],
148+
setup_method: EntrypointSetupMethod[_P, P, T, _T],
149149
/,
150150
profile_loader: ProfileLoader | None = None,
151151
) -> EntrypointDecorator[P, T, _T]:

0 commit comments

Comments
 (0)