Skip to content

Commit

Permalink
Merge branch 'release/4.0.4' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
rmk135 committed Oct 19, 2020
2 parents 4e50836 + 81c67f8 commit ca9a2a5
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 5 deletions.
4 changes: 4 additions & 0 deletions docs/main/changelog.rst
Expand Up @@ -7,6 +7,10 @@ that were made in every particular version.
From version 0.7.6 *Dependency Injector* framework strictly
follows `Semantic versioning`_

4.0.4
-----
- Fix typing stubs for ``container.override()`` method.

4.0.3
-----
- Deprecate ``@containers.override()`` and ``@containers.copy()`` decorators.
Expand Down
2 changes: 1 addition & 1 deletion src/dependency_injector/__init__.py
@@ -1,6 +1,6 @@
"""Top-level package."""

__version__ = '4.0.3'
__version__ = '4.0.4'
"""Version number.
:type: str
Expand Down
10 changes: 6 additions & 4 deletions src/dependency_injector/containers.pyi
Expand Up @@ -4,6 +4,11 @@ from typing import Type, Dict, Tuple, Optional, Any, Union, ClassVar, Callable a
from .providers import Provider


C_Base = TypeVar('C_Base', bound='Container')
C = TypeVar('C', bound='DeclarativeContainer')
C_Overriding = TypeVar('C_Overriding', bound='DeclarativeContainer')


class Container:
provider_type: Type[Provider] = Provider
providers: Dict[str, Provider]
Expand All @@ -13,7 +18,7 @@ class Container:
def __setattr__(self, name: str, value: Union[Provider, Any]) -> None: ...
def __delattr__(self, name: str) -> None: ...
def set_providers(self, **providers: Provider): ...
def override(self, overriding: DynamicContainer) -> None: ...
def override(self, overriding: C_Base) -> None: ...
def override_providers(self, **overriding_providers: Provider) -> None: ...
def reset_last_overriding(self) -> None: ...
def reset_override(self) -> None: ...
Expand All @@ -31,9 +36,6 @@ class DeclarativeContainer(Container):
def __init__(self, **overriding_providers: Union[Provider, Any]) -> None: ...


C = TypeVar('C', bound=DeclarativeContainer)
C_Overriding = TypeVar('C_Overriding', bound=DeclarativeContainer)


def override(container: Type[C]) -> _Callable[[Type[C_Overriding]], Type[C_Overriding]]: ...

Expand Down
8 changes: 8 additions & 0 deletions tests/typing/declarative_container.py
Expand Up @@ -30,3 +30,11 @@ class Container31(containers.DeclarativeContainer):
@containers.copy(Container31)
class Container32(containers.DeclarativeContainer):
...


# Test 4: to override()
class Container4(containers.DeclarativeContainer):
provider = providers.Factory(int)

container4 = Container4()
container4.override(Container4())

0 comments on commit ca9a2a5

Please sign in to comment.