具有高级api的python内置包
ww的Python项目详细描述
- 兼容性:cpython 2.7+/3.3+和pypy2的最新稳定版本。
- 平台:不可知论。但目前只在gnu/linux上测试过。
- 版本:0.2
- Documentation。
使用安装:
pip install ww
希望你能…
懒洋洋地切发电机?
>>> from ww import g >>> gen = g(x * x for x in range(100)) >>> gen <IterableWrapper generator> >>> for element in g(x * x for x in range(100))[3: 6]: ... print(element) ... 9 16 25
添加词典?
>>> from ww import d >>> dic = d({'a': 1}) >>> dic {'a': 1} >>> dic + {'b': 2} {'b': 2, 'a': 1}
在列表中有一个len属性?
>>> from ww import l >>> lst = l([1, 2, 3]) >>> lst [1, 2, 3] >>> lst.len 3
join()来自元组?
>>> from ww import t >>> tpl = t((1, 2, 3)) >>> tpl (1, 2, 3) >>> tpl.join(',') # oh, it also autocasts to string. And its configurable. u'1,2,3'
replace()字符串中同时有多个字符?
>>> from ww import s >>> string = s('fizz buzz') >>> string # strings try very hard to be consistent on Python 2 and 3 u'fizz buzz' >>> string.replace(('i', 'u'), 'o') # the original signature is ok too u'fozz bozz'
还有很多,很多,更多的好东西。
警告
该软件目前处于早期阶段。只考虑s()和g() 有据可查,经得起考验,就连他们也应该得到更多的爱。 你还会遇到一些空文件,以备将来参考。
在同事们的迫切要求下,我们决定提前发布 渴望尝试,但它不是最终产品。质量在路上。
另外,我们将中断api,直到达到1.0,然后从中切换 以确保API的安全。
开发
你可以用你对WW的贡献来提供公关。它们应该包括单元测试, 文档中的docstring、类型定义和新条目。以及 遵循样式惯例:
- Python: PEP8
- Docstrings: Google style
获取完整的存储库:
git clone https://github.com/Tygs/ww.git
移动到ww目录中。
安装ww和dev的依赖项:
python setup.py develop pip install -r dev-requirements.txt
停用开发模式:
python setup.py develop –uninstall
在当前python上运行单元测试:
python setup.py test
使用当前的python运行测试覆盖率:
# cmd only coverage py.test --cov ww tests # dump an HTML report in htmlcov dir py.test --cov-report html --cov ww tests
我们有很多测试环境来构建文档,验证代码 各种checker和linter,或者在几个python解释器上运行单元测试。
您可以使用以下命令列出它们:
tox -l
例如:
$ tox -l flake8 py35 py34 py33 py27 pypy2 doc coverage mypy bandit
您可以使用以下命令单独运行它们:
tox -e env_name
例如:
tox -e doc # builds the documentation
所有名称以“py”开头的env都要求您具有匹配的 要运行的系统上安装的python解释器。
- 例如:py33要求在计算机上安装cpython 3.3和pypy2
- 假设您的计算机上有pypy2。
mypy、bandit和doc env要求安装python3.5。
在所有环境中运行所有测试可以使用:
tox
在你做公关之前,最好能做到这一点,因为它会运行 最多的测试。但是记住如果你没有匹配的翻译 他们将被跳过。
在任何情况下,强烈建议运行跳棋和短绒,因为任何公关 不及格将被拒绝。
版本控制方案
版本控制遵循SemVer,尽管在版本1.0之前我们不会承诺稳定性。
X.Y.Z版本有两种:
- 如果y是奇数,则版本将添加功能。 如果y是偶数或Z>0,则释放将致力于错误修复, 文件、API改进和性能。
例如:
- 0.2.1:1>;0因此没有新功能。
- 1.4.1:4是均匀的,所以没有新特性。
- 2.1.0:1很奇怪,您可能会在这个版本中看到新功能。