Skip to content

Commit

Permalink
more typing on decorators
Browse files Browse the repository at this point in the history
  • Loading branch information
Tishka17 committed Jan 28, 2024
1 parent 5d51b77 commit e1799aa
Showing 1 changed file with 23 additions and 7 deletions.
30 changes: 23 additions & 7 deletions src/dishka/dependency_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
Optional,
Sequence,
Type,
Union,
get_args,
get_origin,
get_type_hints,
Expand Down Expand Up @@ -128,7 +127,7 @@ def provide(

@overload
def provide(
source: Union[Callable, Type],
source: Callable | Type,
*,
scope: BaseScope,
provides: Any = None,
Expand All @@ -137,11 +136,11 @@ def provide(


def provide(
source: Union[None, Callable, Type] = None,
source: Callable | Type | None = None,
*,
scope: BaseScope,
provides: Any = None,
):
) -> Factory | Callable[[Callable], Factory]:
"""
Mark a method or class as providing some dependency.
Expand Down Expand Up @@ -195,7 +194,7 @@ def alias(
*,
source: Type,
provides: Type,
):
) -> Alias:
return Alias(
source=source,
provides=provides,
Expand Down Expand Up @@ -228,10 +227,27 @@ def __get__(self, instance, owner):
return Decorator(self.factory.__get__(instance, owner))


@overload
def decorate(
*,
provides: Any = None,
) -> Callable[[Callable], Decorator]:
...


@overload
def decorate(
source: Callable | Type,
*,
provides: Any = None,
) -> Decorator:
...


def decorate(
source: Union[None, Callable, Type] = None,
source: Callable | Type | None = None,
provides: Any = None,
):
) -> Decorator | Callable[[Callable], Decorator]:
if source is not None:
return Decorator(make_factory(provides, None, source))

Expand Down

0 comments on commit e1799aa

Please sign in to comment.