Add basic setup

This commit is contained in:
Roman Mogylatov 2020-08-24 17:04:32 -04:00
parent 47f4279ccd
commit 39e9059890
7 changed files with 28 additions and 2 deletions

View File

@ -1,4 +1,4 @@
recursive-include src/dependency_injector *.py *.pyx *.pxd *.c recursive-include src/dependency_injector *.py* *.c
recursive-include tests *.py recursive-include tests *.py
include README.rst include README.rst
include CONTRIBUTORS.rst include CONTRIBUTORS.rst
@ -6,3 +6,4 @@ include LICENSE.rst
include requirements.txt include requirements.txt
include setup.py include setup.py
include tox.ini include tox.ini
include py.typed

View File

@ -6,5 +6,6 @@ flake8
pydocstyle pydocstyle
sphinx_autobuild sphinx_autobuild
pip pip
mypy
-r requirements-ext.txt -r requirements-ext.txt

View File

@ -47,7 +47,7 @@ setup(name='dependency-injector',
'': 'src', '': 'src',
}, },
package_data={ package_data={
'dependency_injector': ['*.pxd'], 'dependency_injector': ['*.pxd', '*.pyi', 'py.typed'],
}, },
ext_modules=[ ext_modules=[
Extension('dependency_injector.containers', Extension('dependency_injector.containers',

View File

View File

@ -0,0 +1,10 @@
from typing import TypeVar, Generic, Callable, Any
Injection = Any
T = TypeVar('T')
class Factory(Generic[T]):
def __init__(self, provides: Callable[..., T], *args: Injection, **kwargs: Injection) -> None: ...
def __call__(self, *args: Injection, **kwargs: Injection) -> T: ...

View File

14
tests/typing/factory.py Normal file
View File

@ -0,0 +1,14 @@
from dependency_injector import providers
class Animal:
...
class Cat(Animal):
...
provider = providers.Factory(Cat)
animal: Animal = provider(1, 2, 3, b='1', c=2, e=0.0)