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 |