未提供项目说明

gamla的Python项目详细描述


Build Status

גamla是python的一个性能函数编程库,它支持async。在

安装

pip install gamla

调试匿名合成

gamla.compose(x, y, z)生成一个没有正确名称的新函数。如果x引发异常,则有时很难确定发生在哪里。要克服这个问题,请将env变量GAMLA_DEBUG_MODE(设置为任何值)以获得更有用的异常。这只由flag打开,因为它会产生大量开销,所以事情可能会变慢。在

混合异步和同步代码

这个库中的大多数函数将与async和常规函数无缝地工作,并允许开发人员将精力集中在逻辑上,而不是决定将await放在哪里。在

例如:

importasyncioimportgamladefincrement(i):returni+1asyncdefincrement_async(i):asyncio.sleep(1)returni+1asyncdefrun():mixed_composition=gamla.compose_left(increment,increment_async,increment)returnawaitmixed_composition(0)# returns 3!

正在从toolz迁移

主要问题-toolz速度慢,不支持async函数。在

为什么curry函数和组合在toolz中慢?

这些函数使用昂贵的inspect调用来查看函数的参数,并在每次运行时都这样做。在

为什么gamla没有受到这个问题的困扰?

两个原因:

  1. 它在map之类的东西上没有二进制签名,所以它不需要推断任何东西(这些是gamla中的高阶函数)。在
  2. gamla.curry函数急切地提前支付签名检查的费用,并记住其结果以备将来运行。在

函数映射和常见问题:

大多数函数都是插入式替换。以下是一些示例:

  • curried.(filter|map|valmap|itemmap|keymap)->;gamla.$1(确保调用是使用单个参数)
  • toolz.identity->;gamla.identity
  • toolz.contains->;gamla.contains
  • toolz.lt->;gamla.greater_than
  • toolz.gt->;gamla.less_than
  • toolz.ge->;gamla.less_equals
  • toolz.le->;gamla.greater_equals
  • toolz.filter(None) -> gamla.filter(gamla.identity)
  • toolz.excepts(a, b, c)->;gamla.excepts(a, c, b)
  • toolz.excepts(a, b)->;gamla.excepts(a, gamla.just(None), b)(遵循“最后一次数据”的保存约定)

发布新版本

  1. 创建一个pypi帐户。在
  2. 下载twine并提供您的pypi凭证。在
  3. 从项目所有者处获取项目的pypi权限。在
  4. python setup.py sdist bdist_wheel; twine upload dist/*; rm -rf dist;

库更新后如何更新gamla文档

如果添加了新函数

  1. 转到docs/api.rst并在相关模块下添加函数名,缩进3个空格。 例如:
^{pr2}$

如果自述文件.md已更新

在gamla目录中时:

  1. 安装md到rst转换器:pip install m2r
  2. 转换自述文件.md到自述文件.rst:m2r README.md
  3. 移动自述文件.rst到docs/source文件夹而不是现有文件夹:mv README.rst docs/source

如果ehan 3>

什么都不做。文档将自行更新。在

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

推荐PyPI第三方库


热门话题
java从远程安卓应用程序打开/关闭嵌套   java在每个请求上获取memcache变量导致问题   如何在java中使用itext获取pdf文件的标题   java如何使用firebase令牌发送通知?   java不能在spring数据聚合中包含嵌套字段   用于调度作业的java Cron表达式   java当我使用TabActivity 安卓时,TabActivity类型已被弃用   加密Java Bouncy Castle加密使用AES加密   awt Java,将GUI与ActionListener类分离   如何在Java中创建一个根据输入返回枚举的方法?   java什么是Gxt 3.1.1实现对话框的方法。Gxt 3.0.0是否支持getHideButton()?   java如何解决构建错误?   java XWPF POI如何设置段落中的文本而不使用换行符