A flexible (annotations or keys) but simple dependency injection library for Python 3.
Project description
rInject
A flexible (annotations or keys) but simple dependency injection library for Python 3.
Installation
pip install rinject
Usage
from rinject import Injector
from datetime import datetime
injector = Injector()
class A:
def __init__(self, greeting: str):
self.greeting = greeting
def __call__(self, name: str):
print(f"{self.greeting} {name}")
class B:
def __init__(self, a: A, name: str):
self.a = a
self.name = name
def __call__(self):
self.a(self.name)
if __name__ == "__main__":
injector.register_value("greeting", "Hello")
injector.register_instance(A, A)
injector.register_instance(B, B)
injector.register_factory("name", lambda: "Steve@" + datetime.utcnow().isoformat())
b = injector.resolve(B)
b() # outputs => Hello Steve
b2 = injector.resolve(B)
assert b is b2
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
rinject-0.1.2.tar.gz
(4.1 kB
view details)
Built Distribution
File details
Details for the file rinject-0.1.2.tar.gz
.
File metadata
- Download URL: rinject-0.1.2.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0a108b178030557467f3ed90a1f11159bb3017e2088ead8791b5b2ad97bf311 |
|
MD5 | 9ad67c3d98b499043ca4597f108783c0 |
|
BLAKE2b-256 | f22bbe749951e5bd7ca418d66491c5da4972d3b234711deeea4e7f72cf175c74 |
File details
Details for the file rInject-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: rInject-0.1.2-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2be86df98383e5963c4a6615a49dc551721255d90a5886da2bf2791ff382c32c |
|
MD5 | f015e8fe30e1200f1f600281c5423fa8 |
|
BLAKE2b-256 | 4094c8c2bf57c3578ec4294a22ce0c42766266d23352440f301c0d5c652dcad2 |