Skip to main content

Easy to use Dependency Injection Library

Project description

Easy-DI

Easy-DI is an easy to use Dependency Injection library.

Easy-DI allows you to implement the Dependency Injection pattern and manage the complexity of your Python applications.

Installing Easy-DI and Supported Versions

Easy-DI is available on PyPI:

$ python -m pip install easy-dependency-injection

Easy-DI officially supports Python 3.8+.

Key characteristics

  • Lightweight: the added overhead is comparable to accessing a module's constants
  • mypy-friendly: allows your IDE to infer the type of injected resources and help you with auto-complete and type hinting
  • Does one thing, does it well: it's just a dependency injection library.
  • Not invasive: you won't have to rewrite your application to use it; you can start taking advantage of the inversion of control gradually
  • Test-friendly: easy to integrate in your unit tests.

Known limitations

  • Only classes can be injected: no functions, no modules
  • Not tested with metaclasses
  • Performances decrease linearly with the number of injected resources

Example

from easy_di import DI, inject, injected


class Swallow:
    velocity: injected(str)

    def answer(self):
        return f"My airspeed velocity is {self.velocity}"

# this is needed only because the Swallow class is in the __main__ module,
# more realistic scenarios won't need the `inject` function call
inject(__name__)

if __name__ == "__main__":
    DI.register("velocity", "24 miles per hour")
    print(Swallow().answer())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easy-dependency-injection-0.2.0.tar.gz (7.8 kB view hashes)

Uploaded Source

Built Distribution

easy_dependency_injection-0.2.0-py3-none-any.whl (9.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page