Skip to main content

Fast and easy dependency injection framework.

Project description

python-injection

CI PyPI Ruff

Fast and easy dependency injection framework.

Installation

⚠️ Requires Python 3.12 or higher

pip install python-injection

Motivations

  1. Easy to use
  2. No impact on class and function definitions
  3. Easily interchangeable dependencies (depending on the runtime environment, for example)
  4. No prerequisites

Quick start

Simply apply the decorators and the package takes care of the rest.

from injection import injectable, inject, singleton

@singleton
class Printer:
    def __init__(self):
        self.history = []

    def print(self, message: str):
        self.history.append(message)
        print(message)

@injectable
class Service:
    def __init__(self, printer: Printer):
        self.printer = printer

    def hello(self):
        self.printer.print("Hello world!")

@inject
def main(service: Service):
    service.hello()

if __name__ == "__main__":
    main()

Resources

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

python_injection-0.10.10.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

python_injection-0.10.10-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file python_injection-0.10.10.tar.gz.

File metadata

  • Download URL: python_injection-0.10.10.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for python_injection-0.10.10.tar.gz
Algorithm Hash digest
SHA256 c3dc8146bf73d2fbf58602af2324fc33b0f3c10597caf343b8ef23a1092f8d69
MD5 e2800fd1d2e4697cab82e8d2ad1fab71
BLAKE2b-256 2f9425750e51190261a69398251a4903e363978e618b9cbc410969bd59d81345

See more details on using hashes here.

File details

Details for the file python_injection-0.10.10-py3-none-any.whl.

File metadata

  • Download URL: python_injection-0.10.10-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for python_injection-0.10.10-py3-none-any.whl
Algorithm Hash digest
SHA256 e624a0517518c251e86ecda7bb431883986ca3bedf933c98ef14a3a11286f001
MD5 f975424d342ce3644b2e2c62b29fcfdb
BLAKE2b-256 9be46fce711c9c602b1734ee912b67423fd43fea765bdcba031f98a2b59ea02c

See more details on using hashes here.

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