kodemore / kink

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

Support optional types injection #47

Closed dkraczkowski closed 11 months ago

dkraczkowski commented 11 months ago

This PR adds support for optional types injection:

from kink import inject, di
from typing import Optional

class Message:
      def __init__(self, value: str) -> None:
          self.value = value

  di[Message] = Message("Hello world")

  @inject()
  def inject_test(a_message: Optional[Message] = None):
      if a_message:
          return a_message.value
      return ""

  assert inject_test() == "Hello world"