Skip to content

Bevy

Bevy is a refreshingly simple dependency injection framework for Python. It's as simple as using the bevy.inject decorator, the bevy.dependency descriptor, and type hints to declare dependencies on your functions, methods, and class objects.

Getting Started

Install bevy using pip:

pip install bevy

Then, you only need to import the core functions from bevy:

from bevy import inject, dependency

Usage

Injecting Function Parameters

Bevy fully understands function parameters and will correctly handle positional only, positional, keyword, and keyword only arguments. It also understands what is being passed into the function and will only inject the dependencies that aren't already being passed.

from bevy import inject, dependency

@inject
def example(arg: Demo = dependency()):
    ...

Injecting Class Attributes

Bevy also understands class attributes and can inject them on class instances. To help keep instantiation, Bevy lazily inject dependencies on demand.

from bevy import dependency

class Example:
    attr: Demo = dependency()

Check It Out

Bevy is available under an MIT license and you can see all the code on the GitHub.