实用程序库

tocolib的Python项目详细描述


python 2和3的多用途实用程序库。

库命名空间是tocoli。有关的信息 可用的包、模块和功能请参见Structure

亮点

分类词典

Sort a ‘list’ of ‘dict’ by simply defining the keys you like to sort by in order from last to first.

Example:

>>> dicts = [{'firstname': 'Bob',   'lastname': 'Abel'},
             {'firstname': 'Alice', 'lastname': 'Bond'},
             {'firstname': 'Carol', 'lastname': 'Bond'},
             {'firstname': 'Bob',   'lastname': 'Bond'},
             {'firstname': 'Carol', 'lastname': 'Abel'},
             {'firstname': 'Alice', 'lastname': 'Abel'}]
>>> from tocoli.sort import sort_dicts_by_value
>>> sort_dicts_by_value(dicts, ['lastname', 'firstname'])
[{'firstname': 'Alice', 'lastname': 'Abel'},
 {'firstname': 'Bob',   'lastname': 'Abel'},
 {'firstname': 'Carol', 'lastname': 'Abel'},
 {'firstname': 'Alice', 'lastname': 'Bond'},
 {'firstname': 'Bob',   'lastname': 'Bond'},
 {'firstname': 'Carol', 'lastname': 'Bond'}]

用于直观函数调用的领域特定语言

The ^{tt2}$ package provides a coherent style to access the tocolib modules and functions as module or static class functions.

Example:

>>> from tocoli.dsl import sort
>>> sort.dicts.by.value(dicts, ['lastname', 'firstname'])
[{'firstname': 'Alice', 'lastname': 'Abel'},
 {'firstname': 'Bob',   'lastname': 'Abel'},
 {'firstname': 'Carol', 'lastname': 'Abel'},
 {'firstname': 'Alice', 'lastname': 'Bond'},
 {'firstname': 'Bob',   'lastname': 'Bond'},
 {'firstname': 'Carol', 'lastname': 'Bond'}]
>>> sort.dicts.by.similarity(dicts, 'Karol', ['firstname'])
[{'firstname': 'Carol', 'lastname': 'Bond'},
 {'firstname': 'Carol', 'lastname': 'Abel'},
 {'firstname': 'Alice', 'lastname': 'Bond'},
 {'firstname': 'Alice', 'lastname': 'Abel'},
 {'firstname': 'Bob',   'lastname': 'Abel'},
 {'firstname': 'Bob',   'lastname': 'Bond'}]

强大的映射

Use recursive mapping to apply functions to nested data structures.

Example:

>>> from tocoli.dsl import map
>>> def upper(item, parent):
        return item.upper()
>>> map.recursive(dicts, upper)
[{'firstname': 'BOB', 'lastname': 'ABEL'},
 {'firstname': 'ALICE', 'lastname': 'BOND'},
 {'firstname': 'CAROL', 'lastname': 'BOND'},
 {'firstname': 'BOB', 'lastname': 'BOND'},
 {'firstname': 'CAROL', 'lastname': 'ABEL'},
 {'firstname': 'ALICE', 'lastname': 'ABEL'}]
>>> map_keys = (map.DEFAULT | map.DICT_KEY) ^ map.DICT_VALUE
>>> map.recursive(dicts, upper, map_keys)
[{'FIRSTNAME': 'Bob', 'LASTNAME': 'Abel'},
 {'FIRSTNAME': 'Alice', 'LASTNAME': 'Bond'},
 {'FIRSTNAME': 'Carol', 'LASTNAME': 'Bond'},
 {'FIRSTNAME': 'Bob', 'LASTNAME': 'Bond'},
 {'FIRSTNAME': 'Carol', 'LASTNAME': 'Abel'},
 {'FIRSTNAME': 'Alice', 'LASTNAME': 'Abel'}]

新功能

  • 更改的最低要求:passlib>;=1.7.0
  • 以前的dsl模块现在是自己的子包。
  • 排序函数的参数符号已更改。
  • 映射函数有新的标志参数选项。

有关当前更改的详细信息,请检查CHANGELOG.md

结构

名称空间

tocoli-根
tocolib包装six库(python 2和3兼容性实用程序) 在根上。因此,所有six包和模块也可以在 根命名空间。

子包

dsl-用于tocolib的特定于域的语言
Python,应该是的。模块包含特定于域的语言 用于过滤、排序、映射等常用功能。全部 函数具有一致的api和结果。

模块

auth-常用身份验证帮助程序
外面很危险。这个模块是关于密码,散列,盐, 令牌和API密钥。
cmp-比较实用程序
适合那些喜欢把苹果和梨比较的人。创建不同的数据类型 可比。
enc-编码函数
无痛苦编码。提供通用编码功能。
filter-过滤函数
好的放进锅里,坏的放进你的庄稼里。高级 用于筛选字典或字符串列表的函数。
fn-常用lambda函数
生存与否:这是个问题!短值提取器函数 等等。
join-连接/减少/折叠函数
把属于自己的东西放在一起。
map-映射函数
即使你知道它是怎么做的,它仍然是神奇的。通过应用任何 它的高阶函数。
ratio-比率函数
比较会让人不高兴,但也很有用。提供比率 各种功能。
regex-正则表达式实用工具
查找要搜索的内容。生成通用正则表达式。
sort-排序函数
Chuck Norris能够按颜色对黑色钢笔进行分类。按值或键对数据排序。
spell-拼写工具
生活中没有拼写检查,但tocolib有。
test-测试和基准测试
测试不能证明没有bug。因此,请尽可能地进行测试。
type-类型转换实用程序
不适合的东西是为了适应。通用类型转换。

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

推荐PyPI第三方库


热门话题
java如何将长字符串转换为短得多的字符串   java类型ArrayList<Boolean>中的toArray(T[])方法不适用于参数(Boolean[])   java xfire webservice客户端获取空响应   java软件框架和软件平台有什么区别?   java构建了一个监听数据库更改并调用其他方法的软件。我做得对吗?   安卓 studio(java)中的Paypal:与服务器通信的问题   我们如何在运行时更改java提供的内置注释的消息   java成批进行http调用   序列化   当我使用Tomcat运行我的应用程序时,我得到了java。网MalformedURLException:本地主机名未知:java。网未知后异常   操作系统Java内存映射文件和刷新   java无法用v6构建JXBrowser jar。18+   java有没有办法从运行在同一台服务器上的代码中获取服务器指纹?   使用“代理”用户的java Spring Active Directory身份验证   在Android(Kotlin/Java)活动之间发送图像   java显示ArrayList对象?