kodemore / kink

Dependency injection container made for Python
MIT License
397 stars 25 forks source link

Container `__getitem__` type hinting improvements #46

Closed skewty closed 11 months ago

skewty commented 1 year ago

The following overloads seem to fix typing for me in PyCharm 2023.2.

from kink import di

di[bytes].|    # gives auto-completion for split, decode, join, etc..
from typing import Any, Dict, Type, Union, Callable, List, TypeVar, overload

T = TypeVar('T')

class Container:

    @overload
    def __getitem__(self, key: str) -> Any:
        ...

    @overload
    def __getitem__(self, key: Type[T]) -> T:
        ...

    def __getitem__(self, key):
        ...same code as before...
dkraczkowski commented 11 months ago

https://github.com/kodemore/kink/pull/48

Released in 0.7.0. Thanks