kodemore / kink

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

cannot alias a factory service with inject #42

Closed ijessen-mitll closed 1 year ago

ijessen-mitll commented 1 year ago

inject cannot find services which are both aliased and factoried. For example:

class Repository: ...

@inject(alias=Repository, use_factory=True)
class PerInstanceRepository(Repository): ...

@inject
class Service:
   def __init__(self, repository: Repository): ...

Container.__getitem__ looks for factory services before resolving aliases. However, factories are not referenced again after aliases are resolved.