跳转到主要内容

魔法函数组合

项目描述

incant🪄:为您的函数添加一点点魔法

PyPI Build Coverage Supported Python versions Black


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。

项目信息

许可证

incantTin Tvrtković编写,并按照Apache-2.0许可证的条款进行分发。

项目详情


下载文件

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

源分发

incant-23.2.0.tar.gz (1.2 MB 查看哈希值)

上传时间:

构建分发

incant-23.2.0-py3-none-any.whl (17.1 kB 查看哈希值)

上传时间: Python 3

由支持