python 3.6+的现代组件/依赖注入程序。

component-injector的Python项目详细描述


部件喷油器

A modern component / dependency injector for python 3.6+.

这个库提供了一个与框架无关的组件(或依赖项) 向函数调用中注入已注册组件的注入器。 要插入的组件通过查看 函数参数注释。

注册组件时,其所有基类都注册为 除非你明确禁止。你也可以选择只 注册尚未注册到的基类 喷油器。

它提供了本地作用域,您可以在其中注册其他组件 或重写现有组件。在退出作用域之后,注册表 将返回到进入作用域之前的状态。

兼容性

component-injector与python 3.6+兼容,使用 后端口的contextvarsdataclasses包。

作用域是线程安全的,当使用Python3.7时,对于 与异步任务一起使用。

安装

component-injector可从pypi获得:

pip install component-injector

用法示例

下面是一个关于如何使用喷油器的小演示:

from component_injector import Injector

injector = Injector()

class O:
    pass

@injector.inject
def consumer_of_o(o: O) -> None:
    print(o)

injector.register(O())
consumer_of_o()  # 'o' wil be the registered instance.

consumer_of_o(O())  # 'o' will be this new instance.

有关更多示例和用法,请参阅 demo.pyasync_demo.py

开发设置

出于开发目的,您可以克隆存储库并使用 poetry安装和维护 依赖关系。没有测试套件。这个项目有一套 可以格式化(isort,black)并检查代码的预提交挂钩 (mypy,flake8)自动。

git clone git@github.com:iksteen/component-injector.git
cd component-injector
poetry run pre-commit install

发布历史记录

  • 1.1.1

    • 修复不注册基时的错误类型注册。
    • 修复文档中的错误(感谢@trbs!).
  • 1.1.0

    • 添加文档。
    • 添加对组件工厂的支持。异步工厂是 在注入异步函数时也受支持。
  • 1.0.2

    • 修正已经绑定的参数被覆盖的错误。
  • 1.0.1

    • 修复到示例的链接。
  • 1.0.0

    • 初次发布。

英格玛·斯特恩–@iksteen

根据麻省理工学院的许可证发行。有关详细信息,请参见LICENSE

https://github.com/iksteen/

贡献

  1. 分叉(https://github.com/iksteen/component-injector/fork
  2. 创建功能分支(git checkout -b feature/fooBar
  3. 提交更改(git commit -am 'Add some fooBar'
  4. 推到分支(git push origin feature/fooBar
  5. 创建新的拉取请求

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束