实用程序库
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'}]
结构
名称空间
- 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-类型转换实用程序
- 不适合的东西是为了适应。通用类型转换。