跳转到主要内容

专为Python设计的依赖注入框架。

项目描述

PyPI - License PyPI - Version PyPI - Python Versions PyPI - Downloads

Picobox是一个具有意见的依赖注入框架,旨在简洁、实用,并考虑到Python。没有复杂的图,没有隐式注入,没有类型绑定——只有picobox,和明确的要求!

为什么?

因为我们通常想要解耦我们的代码,而Python缺乏干净和实用的解决方案(即使是第三方)。

特性

  • 支持值和工厂。

  • 支持作用域(例如单例、threadlocal、contextvars)。

  • 将盒子推入堆栈,并使用顶部的一个来访问值。

  • 线程安全。

  • 轻量级(包括作用域约500LOC)。

  • 无依赖。

  • 纯Python。

  • 带有类型注解。

快速入门

首先

$ [sudo] python -m pip install picobox

然后

import picobox
import requests


@picobox.pass_("conf")
@picobox.pass_("requests", as_="session")
def get_resource(uri, session, conf):
    return session.get(conf["base_uri"] + uri)


box = picobox.Box()
box.put("conf", {"base_uri": "http://example.com"})
box.put("requests", factory=requests.Session, scope=picobox.threadlocal)

with picobox.push(box):
    get_resource("/resource", requests.Session(), {})
    get_resource("/resource", requests.Session())
    get_resource("/resource")

项目详情


下载文件

下载适用于您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

picobox-4.0.0.tar.gz (22.7 kB 查看哈希值)

上传于

构建分发

picobox-4.0.0-py3-none-any.whl (11.6 kB 查看哈希值)

上传于 Python 3

支持