魔法函数组合
项目描述
incant🪄:为您的函数添加一点点魔法
incant是一个Python开源库,用于组合和调用函数。根据古老的、幽默的格言,依赖注入就是向函数传递参数,incant是一个非常适合该用例的工具包。
incant可以帮助您
- 所有类型的依赖注入场景
- 调整第三方库的接口以使其更灵活
- 泛型封装函数和协程以进行仪表化
- 创建改变签名的装饰器
- 安全地调用具有未知签名的函数和协程
- ...等等!
例如
from incant import Incanter
incanter = Incanter()
@incanter.register_by_name
def now() -> float:
"""
Return the current timestamp.
We can replace this for testing later.
"""
from time import time
return time()
def my_function(now: float) -> None:
print(f"The time now is {now}")
incanter.compose_and_call(my_function)
incant提供了一个完全类型注解的接口,可与Mypy和Pyright一起使用。incant通过在运行时生成Python代码来工作,效率极高。(incant是我们所知的最快的Python依赖注入框架。)
如果您熟悉pytest,那么incant依赖工厂大致相当于pytest的 fixtures。
项目信息
许可证
incant由Tin Tvrtković编写,并按照Apache-2.0许可证的条款进行分发。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
incant-23.2.0.tar.gz (1.2 MB 查看哈希值)
构建分发
incant-23.2.0-py3-none-any.whl (17.1 kB 查看哈希值)
关闭
incant-23.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2b0d4599e338da976b625ec9a4dd2736a6b0216ef01bcc39ddc30214407861a1 |
|
MD5 | 55382407a0ace2ab905d4634c031d56d |
|
BLAKE2b-256 | 552a218e683a27eea98916f3ecceec6983a524a4873869e6e078aa7e055caa86 |
关闭
incant-23.2.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 67bba5e2d172c0f862edb3cc752d6e37ab4681b202e42914a15faadbd6da2aff |
|
MD5 | 965c5cdd66ac5913e234b49a983699a6 |
|
BLAKE2b-256 | 72dcb9ae6aa98fccd114c6e9c3e5b9bccf660ce30137bbd2d47102fa929a1bb7 |