Skip to main content

simple dependency injection library

Project description

simple-di

A simple, strictly typed dependency injection library.

mypy-strict

Python 3.6 Python 3.7 Python 3.8 Python 3.9

Install

    pip install simple_di

Usage

Examples:

    from simple_di import inject, Provide, Provider, container
    from simple_di.providers import Static, Factory, Configuration


    @container
    class OptionsClass(container):
        cpu: Provider[int] = Static(2)
        worker: Provider[int] = Factory(lambda c: 2 * int(c) + 1, c=cpu)

    Options = OptionsClass()

    @inject
    def func(worker: int = Provide[Options.worker]):
        return worker

    assert func() == 5
    assert func(1) == 1

    Options.worker.set(2)
    assert func() == 2

    Options.worker.reset()
    assert func() == 5

    Options.cpu.set(1)
    assert func() == 3

API

Type annotation supported

inject

Inject values into providers in function/method arguments.

Arguments:

  • squeeze_none: default False. Treat None value passed in as not passed.

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

simple_di-0.1.5.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

simple_di-0.1.5-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file simple_di-0.1.5.tar.gz.

File metadata

  • Download URL: simple_di-0.1.5.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.11

File hashes

Hashes for simple_di-0.1.5.tar.gz
Algorithm Hash digest
SHA256 192b999dee4cd4fb11a5d861165caad02d8f0617c0f806fc5b09f905f1a03ca0
MD5 fbfeaa5cd6caa0da1f9553562175471d
BLAKE2b-256 2ab8f2e3d1d6eac545c897a9b8ae339f2f2437a0e0b00bf0df3767109bede14d

See more details on using hashes here.

File details

Details for the file simple_di-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: simple_di-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.11

File hashes

Hashes for simple_di-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e3fb6242f18f389a3c2d571dd51ade47c74cdbc4550590894664ad59bfb2a345
MD5 d53d80753a6add93453869130aa2584e
BLAKE2b-256 c56d02014c8b1e34bae98b9b7fb5e9a4bc17aecdc28dfb08083e1fa9e4731b7d

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