2.2.6 为Numpy/Scipy做贡献
看一下这篇教程:http://www.euroscipy.org/talk/882
2.2.6.1 为什么
- “这有个bug?”
- “我不理解这个要做什么?”
- “我有这个神器的代码。你要吗?”
- “我需要帮助!我应该怎么办?”
2.2.6.2 报告bugs
Bug跟踪(推荐这种方式)
邮件列表 ( scipy.org/Mailing_Lists )
- 如果你不确定
- 在一周左右还没有任何回复?去开一个bug ticket吧。
2.2.6.2.1 好的bug报告
Title: numpy.random.permutations fails for non-integer arguments
I'm trying to generate random permutations, using numpy.random.permutations
When calling numpy.random.permutation with non-integer arguments it fails with a cryptic error message::
>>> np.random.permutation(12)
array([ 6, 11, 4, 10, 2, 8, 1, 7, 9, 3, 0, 5])
>>> np.random.permutation(12.)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "mtrand.pyx", line 3311, in mtrand.RandomState.permutation
File "mtrand.pyx", line 3254, in mtrand.RandomState.shuffle
TypeError: len() of unsized object
This also happens with long arguments, and so np.random.permutation(X.shape[0]) where X is an array fails on 64 bit windows (where shape is a tuple of longs).
It would be great if it could cast to integer or at least raise a proper error for non-integer types.
I'm using Numpy 1.4.1, built from the official tarball, on Windows 64 with Visual studio 2008, on Python.org 64-bit Python.
- 你要做什么?
- 重现bug的小代码段(如果可能的话)
- 实际上发生了什么
- 期望发生什么
- 平台(Windows / Linux / OSX, 32/64 bits, x86/PPC, …)
- Numpy/Scipy的版本In [2]:
print np.__version__
1.9.2
检查下面的文件是你所期望的
In [3]:
print np.__file__
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/__init__.pyc
以免你想要旧/损坏的Numpy安装在哪里
如果不确定,试着删除现有的Numpy安装文件,并且重新安装…
2.2.6.3 为文档做贡献
文档编辑器
- http://docs.scipy.org/numpy
注册
- 注册一个帐号
- 订阅scipy-dev邮件列表(仅限订阅者)
- 邮件列表有问题:你可以发邮件
- 但是:你可以关闭邮件送达
- 在http://mail.scipy.org/mailman/listinfo/scipy-dev 底部“改变你的订阅选项”
- 给@
scipy-dev
邮件列表发一封邮件;要求激活:To: [email protected]
- 给@
Hi,
I'd like to edit Numpy/Scipy docstrings. My account is XXXXX
Cheers, N. N.
```
- 检查一下风格指南:
- 不要被吓住;要修补一个小事情,就修补它 ```
- 编辑
- 编辑源码发送补丁(和bug一样)
- 向邮件列表抱怨
2.2.6.4 贡献功能
- 在邮件列表上询问,如果不确定应该它应该在哪里
- 写一个补丁,在bug跟踪器上添加一个增强的ticket
- 或者,创建一个实现了这个功能的Git分支 + 添加增强ticket。
- 特别是对于大的/扩散性的功能添加
- http://projects.scipy.org/numpy/wiki/GitMirror
- http://www.spheredev.org/wiki/Git_for_the_lazyIn [ ]:
# 克隆numpy仓库
git clone --origin svn http://projects.scipy.org/git/numpy.git numpy
cd numpy
# 创建功能分支
git checkout -b name-of-my-feature-branch svn/trunk
<edit stuff>
git commit -a
- 在http://github.com (或者其他地方)创建一个帐号
- @ Github创建一个新仓库
- 将你的工作推送到github
In [ ]:
git remote add github git@github:YOURUSERNAME/YOURREPOSITORYNAME.git
git push github name-of-my-feature-branch
2.2.6.5 如何帮助,总体而言
- 永远欢迎修补bug!
- 什么让你最恼怒
- 浏览一下跟踪器
- 文档工作
- API文档:改善文档字符串
- 很好的了解了一些Scipy模块
- 用户指南
- 最终需要完成
- 想要想一下?看一下目录 http://scipy.org/Developer_Zone/UG_Toc
- API文档:改善文档字符串
- 在沟通渠道上询问:
numpy-discussion
列表scipy-dev
列表
In [1]:
%matplotlib inline
import numpy as np