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.12.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

python_injection-0.10.12-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: python_injection-0.10.12.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.12.tar.gz
Algorithm Hash digest
SHA256 d07c17c0281a14b0bd45bfd615e71219253a2260540fa20b417700aa7804111c
MD5 68ef70438e774e79af50a34e02adb4bf
BLAKE2b-256 f2204d1f2e3ccaa24ed0d183be48dcac85d398995865957e47bf8e0a8a9814f7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_injection-0.10.12-py3-none-any.whl
  • Upload date:
  • Size: 19.1 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.12-py3-none-any.whl
Algorithm Hash digest
SHA256 2d9e4540e097819fcf8d8785b4af72ed16a893c4f0dd58edbf8535ec1533d1b7
MD5 17bbf72ac6fab57037aaca622337d079
BLAKE2b-256 94df2320d568229a0ad6a56742014d2d6388c71daa87b9f54801820fcc5da7d8

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