Skip to main content

Brain-dead simple dependency injection

Project description

OOZE - Brain-dead simple dependency injection

Ooze is an attempt to do depdency injection in Python in the simplest way possible. It embraces Python decorators to leverage what classes, functions, and even static values are included in the dependency injection graph. You can get started in three easy steps:

  • decorate your functions, classes and/or variable items
  • assign a startup function
  • call ooze's run() function

That's it! Here's a quick example:

import ooze

@ooze.provide                       # Inject as 'upper_case' since a name wasn't specified
def upper_case(string):
    return string.upper()


ooze.provide_static('address', {    # Inject a static dictionary, naming it 'address'
    "name": "Steve",
    "gender": "male"
})


@ooze.provide('greeter')            # Inject as 'greeter'
class WelcomeWagon:
    def __init__(self, upper_case, address):
        self.address = address
        self.upper = upper_case

    def greet(self):
        return self.upper(f"Hello {self.address['name']}")


@ooze.startup               # Define where ooze should start running your program
def main(greeter):
    print(greeter.greet())


if __name__ == '__main__':
    ooze.run()

Installing Ooze

Installing Ooze is as simple as using pip:

$ pip install ooze

Usage Notes

Ooze has many features beyond what is demonstrated in the above sample code including:

  • factories
  • automatic environment variable injection
  • automatic configuration file parsing and settings injection
  • automatic (magic) integration with manually passed arguments
  • seamless integration with bottlepy
  • injectable object pools (i.e. Database connection pools)

Be sure to check out the documentation or examples for more information.

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

ooze-1.0.1.tar.gz (42.9 kB view hashes)

Uploaded Source

Built Distribution

ooze-1.0.1-py3-none-any.whl (29.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