None
项目描述
Eff
Eff是一个用于处理代数效果的Python库。
代数效果是代码中所有副作用的总和,例如读取用户输入、在屏幕上写入文本、进行网络请求、读取文件等。Eff允许轻松处理此类效果,使代码更整洁且测试更容易。
特性
- 易于理解。您无需阅读冗长的科学论文即可了解如何使用库及其功能。
- 易于集成。如果您决定将日志记录器添加到函数中,更改将最小化,无需在整个调用堆栈中传递日志记录器。
- 快速。处理代数效果的经典方法是使用协程或异常。此库使用全局共享状态,无需在运行时解包整个调用堆栈。
- 类型安全。效果处理容器只是一个类。注释效果处理器的类型以使其使用类型安全。
安装
python3 -m pip install --user eff
使用
from io import StringIO
from typing import Callable
import eff
class Eff(eff.ects):
show: Callable
# Use global effects manager in a function.
def greet(username: str) -> None:
Eff.show(f'Hello, {username}!')
# Provide actual side-effects handlers
# for the project prod entry point.
def main() -> None:
with Eff(show=print):
greet('World')
# Mock side-effects in tests.
def test_greet() -> None:
stream = StringIO()
with Eff(show=stream.write):
greet('World')
stream.seek(0)
assert stream.read() == 'Hello, World!'
if __name__ == '__main__':
main()
进一步阅读
您不必阅读它,但这有助于更好地理解库背后的动机。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
eff-1.0.0.tar.gz (4.0 kB 查看哈希值)
构建分布
eff-1.0.0-py3-none-any.whl (4.1 kB 查看哈希值)
关闭
eff-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a2d8698c8c3fc056235ddc86e48046f8294a44d8f78d93306ef75c4127b4652f |
|
MD5 | 07b3c0b99537b597df62cd4bd1b15cc4 |
|
BLAKE2b-256 | 1e760d137c6919eedb06d2dc1e5dc69903218eeb2085b6b060ab8f06b265cb4e |
关闭
eff-1.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ad5e686eaf58e292c2231a152cde31cf4ee780d4906c1b8a116d5cfbec5cbd94 |
|
MD5 | 4ee369e05cdab8440461b6df0eb6887d |
|
BLAKE2b-256 | a11ace172efccb099e8604c646b77a1ba190adcc33ae48db01f98c4fb7fd2ae9 |