Transient
Transient provider creates and returns a new object for each call.
Example
from dataclasses import dataclass
from injection import DeclarativeContainer, providers
@dataclass
class SomeClass:
field: str
class DIContainer(DeclarativeContainer):
provider = providers.Transient(SomeClass, field="str_value")
if __name__ == "__main__":
instance1 = DIContainer.provider()
instance2 = DIContainer.provider()
assert instance1 is not instance2