Permalink
Browse files

Merge from master

  • Loading branch information...
2 parents 5e68d99 + 39e13ad commit e4ed1141576ab0792035e76daf1557f1efdaf228 @timleslie timleslie committed May 5, 2013
Showing with 2,711 additions and 850 deletions.
  1. +3 −0 .gitmodules
  2. +24 −13 BENTO_BUILD.txt
  3. +53 −49 HACKING.rst.txt
  4. +5 −8 README.txt → README.rst
  5. +1 −1 bento.info
  6. +34 −12 bscript
  7. +0 −18 doc/MAINTAINERS.rst.txt
  8. +17 −37 doc/Makefile
  9. +1 −0 doc/scipy-sphinx-theme
  10. 0 doc/source/_static/{scipy.css → scipy_fallback.css}
  11. +49 −66 doc/source/conf.py
  12. +1 −1 doc/source/index.rst
  13. +9 −8 doc/source/tutorial/stats.rst
  14. +42 −42 doc/source/tutorial/weave.rst
  15. +1 −1 pavement.py
  16. +187 −0 runtests.py
  17. +2 −0 scipy/integrate/bento.info
  18. +13 −5 scipy/integrate/bscript
  19. +1 −10 scipy/integrate/multipack.h
  20. +2 −2 scipy/integrate/quadpack.py
  21. +2 −0 scipy/interpolate/__init__.py
  22. +1 −13 scipy/interpolate/src/multipack.h
  23. +152 −0 scipy/io/matlab/benchmarks/bench_memusage.py
  24. +15 −13 scipy/io/matlab/benchmarks/bench_structarr.py
  25. +6 −14 scipy/io/matlab/mio5.py
  26. +161 −13 scipy/io/matlab/streams.pyx
  27. +78 −2 scipy/io/matlab/tests/test_streams.py
  28. +12 −2 scipy/io/tests/test_wavfile.py
  29. +35 −15 scipy/io/wavfile.py
  30. +1 −1 scipy/lib/blas/bscript
  31. +2 −20 scipy/lib/blas/setup.py
  32. +2 −2 scipy/lib/lapack/bscript
  33. +1 −0 scipy/linalg/__init__.py
  34. +274 −0 scipy/linalg/_expm_frechet.py
  35. +10 −8 scipy/linalg/bscript
  36. +3 −1 scipy/linalg/matfuncs.py
  37. +127 −4 scipy/linalg/tests/test_matfuncs.py
  38. +9 −1 scipy/ndimage/bento.info
  39. +52 −21 scipy/odr/__init__.py
  40. +21 −79 scipy/odr/__odrpack.c
  41. +31 −0 scipy/odr/add_newdocs.py
  42. +1 −1 scipy/odr/bscript
  43. +75 −127 scipy/odr/odrpack.py
  44. +1 −1 scipy/optimize/_minimize.py
  45. +1 −1 scipy/optimize/bscript
  46. +5 −4 scipy/optimize/linesearch.py
  47. +4 −25 scipy/optimize/minpack.h
  48. +71 −35 scipy/optimize/optimize.py
  49. +82 −6 scipy/optimize/tests/test_optimize.py
  50. +19 −1 scipy/optimize/tests/test_regression.py
  51. +47 −12 scipy/sparse/compressed.py
  52. +9 −1 scipy/sparse/linalg/__init__.py
  53. +375 −0 scipy/sparse/linalg/_onenormest.py
  54. +1 −1 scipy/sparse/linalg/dsolve/bscript
  55. +1 −1 scipy/sparse/linalg/eigen/arpack/bscript
  56. +1 −1 scipy/sparse/linalg/isolve/bscript
  57. +219 −0 scipy/sparse/linalg/tests/test_onenormest.py
  58. +46 −1 scipy/sparse/tests/test_base.py
  59. +1 −1 scipy/spatial/bscript
  60. +0 −2 scipy/spatial/ckdtree.pyx
  61. +1 −1 scipy/special/_testutils.py
  62. +71 −10 scipy/special/cephes/beta.c
  63. +32 −5 scipy/special/orthogonal_eval.pxd
  64. +0 −1 scipy/special/tests/test_basic.py
  65. +32 −10 scipy/special/tests/test_mpmath.py
  66. +47 −7 scipy/stats/distributions.py
  67. +28 −25 scipy/stats/tests/test_distributions.py
  68. +60 −34 scipy/stats/tests/test_fit.py
  69. +1 −1 scipy/weave/blitz_spec.py
  70. +18 −2 scipy/weave/tests/test_blitz_tools.py
  71. +2 −1 setup.py
  72. +19 −3 tools/cythonize.py
  73. +0 −46 tools/test-installed-scipy.py
  74. +1 −1 tox.ini
View
@@ -0,0 +1,3 @@
+[submodule "doc/scipy-sphinx-theme"]
+ path = doc/scipy-sphinx-theme
+ url = https://github.com/scipy/scipy-sphinx-theme.git
View
@@ -1,19 +1,30 @@
No-frill version:
- * Clone bento::
+ * Clone bento::
- git clone git://github.com/cournape/Bento.git bento-git
-
- * Bootstrap bento::
+ $ git clone git://github.com/cournape/Bento.git bento
+
+ * Bootstrap bento::
- cd bento-git && python bootstrap.py
+ $ cd bento && python bootstrap.py
- * Download waf (version 1.6.4 or 1.6.5 should work)
- * In the bento_waf_branch of scipy:
+ * Clone Waf::
+
+ $ git clone https://code.google.com/p/waf/
+
+ * Set the WAFDIR environment variable to the base dir of the waf repo you
+ just created (in your bash_login for example if you're going to build with
+ Bento often). This is unfortunately needed, Waf is not installable like a
+ regular Python package::
+
+ $ export WAFDIR=ROOT_OF_WAF_REPO
+ # WAFDIR should be such as $WAFDIR/waflib exists
+
+ * Build scipy with Bento::
+
+ $ BENTO_ROOT/bentomaker build -j 4 # 4 threads in parallel
+ # or with progress bar
+ $ BENTO_ROOT/bentomaker build -p
+ # or with verbose output
+ $ BENTO_ROOT/bentomaker build -v
- export WAFDIR=ROOT_OF_WAF_SVN_TRUNK # WAFDIR should be such as $WAFDIR/waflib exists
- $BENTO_ROOT/bentomaker build -j 4 # 4 threads in parallel
- # or with progress bar
- $BENTO_ROOT/bentomaker build -p
- # or with verbose output
- $BENTO_ROOT/bentomaker build -v
View
@@ -82,7 +82,7 @@ in `SciPy API`_.
Once you think your code is ready for inclusion in SciPy, you can send a pull
request (PR) on Github. We won't go into the details of how to work with git
here, this is described well in the `git workflow`_ section of the NumPy
-documentation and in the Github help pages. When you send the PR for a new
+documentation and on the `Github help pages`_. When you send the PR for a new
feature, be sure to also mention this on the scipy-dev mailing list. This can
prompt interested people to help review your PR. Assuming that you already got
positive feedback before on the general idea of your code/feature, the purpose
@@ -111,9 +111,9 @@ The previous section talked specifically about adding new functionality to
SciPy. A large part of that discussion also applies to maintenance of existing
code. Maintenance means fixing bugs, improving code quality or style,
documenting existing functionality better, adding missing unit tests, keeping
-build scripts up-to-date, etc. The SciPy `Trac`_ bug tracker contains all
-reported bugs, build/documentation issues, etc. Fixing issues described in
-Trac tickets helps improve the overall quality of SciPy, and is also a good way
+build scripts up-to-date, etc. The SciPy `issue list`_ contains all
+reported bugs, build/documentation issues, etc. Fixing issues
+helps improve the overall quality of SciPy, and is also a good way
of getting familiar with the project. You may also want to fix a bug because
you ran into it and need the function in question to work correctly.
@@ -213,58 +213,69 @@ anyway, without being required to. See John Hunter's `BSD pitch`_.
*How do I set up SciPy so I can edit files, run the tests and make commits?*
-The simplest method is setting up an in-place build. To create your local git
-repo and do the in-place build::
+First fork a copy of the main Scipy repository in Github onto your own
+account and then create your local repository via::
- $ git clone https://github.com/scipy/scipy.git scipy
- $ cd scipy
- $ python setup.py build_ext -i
+ $ git clone git@github.com:YOURUSERNAME/scipy.git scipy
+ $ cd scipy
+ $ git remote add upstream git://github.com/scipy/scipy.git
-Then you need to either set up a symlink in your site-packages or add this
-directory to your PYTHONPATH environment variable, so Python can find it. Some
-IDEs (Spyder for example) have utilities to manage PYTHONPATH. On Linux and OS
-X, you can for example edit your .bash_login file to automatically add this dir
-on startup of your terminal. Add the line::
+To build Scipy and run tests etc., do one of::
- export PYTHONPATH="$HOME/scipy:${PYTHONPATH}"
+ $ python runtests.py -v
+ $ python runtests.py -v -s optimize
+ $ python runtests.py -v -t scipy/special/tests/test_basic.py:test_xlogy
+ $ python runtests.py --ipython
-Alternatively, to set up the symlink, use (prefix only necessary if you want to
-use your local instead of global site-packages dir)::
+This builds Scipy first, so the first time it may take some time. If
+you specify ``-n``, the tests are run against the version of Scipy (if
+any) found on PYTHONPATH.
- $ python setupegg.py develop --prefix=${HOME}
-
-To test that everything works, start the interpreter (not inside the scipy/
-source dir) and run the tests::
+You may want to set up an in-place build so that changes made to
+``.py`` files have effect without rebuild. First, run::
- $ python
- >>> import scipy as sp
- >>> sp.test()
+ $ python setup.py build_ext -i
-Now editing a Python source file in SciPy allows you to immediately test and
-use your changes, by simply restarting the interpreter.
+Then you need to either set up a symlink in your site-packages or add
+this directory to your PYTHONPATH environment variable, so Python can
+find it. Some IDEs (Spyder for example) have utilities to manage
+PYTHONPATH. On Linux and OSX, you can run the command::
-Note that while the above procedure is the most straightforward way to get
-started, you may want to look into using Bento or numscons for faster and more
-flexible building, or virtualenv to maintain development environments for
-multiple Python versions.
+ $ export PYTHONPATH=$PWD
+
+To set the Python import path to point to the current directory.
+Now editing a Python source file in SciPy allows you to immediately
+test and use your changes (in ``.py`` files), by simply restarting the
+interpreter.
+
+Another good approach is to install Scipy normally in an isolated test
+environment using `virtualenv`_, and work from there (see the next
+question).
*How do I set up a development version of SciPy in parallel to a released
version that I use to do my job/research?*
One simple way to achieve this is to install the released version in
-site-packages, by using a binary installer or pip for example, and set up the
-development version with an in-place build in a virtualenv. First install
-`virtualenv`_ and `virtualenvwrapper`_, then create your virtualenv (named
-scipy-dev here) with::
+site-packages, by using a binary installer or pip for example, and set
+up the development version in a virtualenv. First install
+`virtualenv`_ (optionally use `virtualenvwrapper`_), then create your
+virtualenv (named scipy-dev here) with::
- $ mkvirtualenv scipy-dev
+ $ virtualenv scipy-dev
Now, whenever you want to switch to the virtual environment, you can use the
-command ``workon scipy-dev``, while the command ``deactivate`` exits from the
-virtual environment and brings back your previous shell. With scipy-dev
-activated, follow the in-place build with the symlink install above to actually
-install your development version of SciPy.
+command ``source scipy-dev/bin/activate``, and ``deactivate`` to exit from the
+virtual environment and back to your previous shell. With scipy-dev
+activated, install first Scipy's dependencies::
+
+ $ pip install Numpy Nose Cython
+
+After that, you can install a development version of Scipy, for example via::
+
+ $ python setup.py install
+
+The installation goes to the virtual environment.
*Can I use a programming language other than Python to speed up my code?*
@@ -281,15 +292,6 @@ Cython. If there's specific reasons why C/C++/Fortran should be preferred,
please discuss those reasons first.
-*There's overlap between Trac and Github, which do I use for what?*
-
-Trac_ is the bug tracker, Github_ the code repository. Before the SciPy code
-repository moved to Github, the preferred way to contribute code was to create
-a patch and attach it to a Trac ticket. The overhead of this approach is much
-larger than sending a PR on Github, so please don't do this anymore. Use Trac
-for bug reports, Github for patches.
-
-
.. _scikit-learn: http://scikit-learn.org
.. _scikits-image: http://scikits-image.org/
@@ -310,9 +312,11 @@ for bug reports, Github for patches.
.. _git workflow: http://docs.scipy.org/doc/numpy/dev/gitwash/index.html
+.. _Github help pages: https://help.github.com/articles/set-up-git/
+
.. _maintainers: https://github.com/scipy/scipy/blob/master/doc/MAINTAINERS.rst.txt
-.. _Trac: http://projects.scipy.org/scipy/timeline
+.. _issue list: https://github.com/scipy/scipy/issues
.. _Github: https://github.com/scipy/scipy
View
@@ -43,7 +43,7 @@ Currently SciPy consists of the following files and directories:
THANKS.txt
SciPy developers and contributors. Please keep it up to date!!
- README.txt
+ README.rst
SciPy structure (this document).
setup.py
@@ -105,9 +105,6 @@ Web sites
The user's site is here
http://www.scipy.org/
-The developer's site is here
- http://projects.scipy.org/scipy/wiki
-
Mailing Lists
-------------
@@ -119,11 +116,11 @@ Please see the developer's list here
Bug reports
-----------
-To search for bugs, please use the NIPY Bug Tracker at
- http://projects.scipy.org/scipy/query
+To search for bugs, please use the Scipy Bug Tracker at
+ https://github.com/scipy/scipy/issues
-To report a bug, please use the NIPY Bug Tracker at
- http://projects.scipy.org/scipy/newticket
+To report a bug, please use the Scipy Bug Tracker at
+ https://github.com/scipy/scipy/issues
License information
View
@@ -1,5 +1,5 @@
Name: scipy
-Version: 0.10.0
+Version: 0.13.0
Summary: SciPy: Scientific Library for Python
Url: http://www.scipy.org
DownloadUrl: http://sourceforge.net/project/showfiles.php?group_id=27747&package_id=19531
View
46 bscript
@@ -23,6 +23,10 @@ from bento.commands import hooks
import waflib
from waflib import Options
+# Importing setup.py needed to get version info
+import setup
+
+
# FIXME: add this to numpy so that we can reuse it
class CTemplateTask(waflib.Task.Task):
color = 'BLUE'
@@ -125,11 +129,14 @@ def _set_mangling_var(conf, u, du, case, f2pycompat=True):
env.DEFINES.extend(macros)
def _generate_cython():
+ print("Cythonizing sources")
cwd = os.path.abspath(os.path.dirname(__file__))
- subprocess.call([sys.executable,
- os.path.join(cwd, 'tools', 'cythonize.py'),
- 'scipy'],
- cwd=cwd)
+ p = subprocess.call([sys.executable,
+ os.path.join(cwd, 'tools', 'cythonize.py'),
+ 'scipy'],
+ cwd=cwd)
+ if p != 0:
+ raise RuntimeError("Running cythonize failed!")
@hooks.post_configure
def post_configure(context):
@@ -174,17 +181,35 @@ def post_configure(context):
if not (conf.env.HAS_BLAS and conf.env.HAS_LAPACK):
raise waflib.Errors.ConfigurationError("You need blas and lapack")
- blas_lapack.check_cblas(context)
+ blas_lapack.check_blas_lapack(context)
npymath_info = get_pkg_info("npymath")
conf.parse_flags(npymath_info.cflags() + " " + npymath_info.libs(), "NPYMATH")
+ _generate_cython()
+
+
+FULLVERSION, GIT_REVISION = setup.get_version_info()
+
+version_file_content = """\
+# THIS FILE IS GENERATED FROM SCIPY BSCRIPT
+short_version = '%(version)s'
+version = '%(version)s'
+full_version = '%(full_version)s'
+git_revision = '%(git_revision)s'
+release = %(isrelease)s
+
+if not release:
+ version = full_version
+""" % {'version': setup.VERSION,
+ 'full_version' : FULLVERSION,
+ 'git_revision' : GIT_REVISION,
+ 'isrelease': str(setup.ISRELEASED)}
+
@hooks.pre_build
def pre_build(context):
bld = context.waf_context
- _generate_cython()
-
context.register_category("gen_pymodule")
bld(features="gen_pymodule",
target="scipy/__config__.py",
@@ -193,13 +218,10 @@ def show():
pass
""",
always=True)
+
bld(features="gen_pymodule",
target="scipy/version.py",
- content="""\
-version = '0.9.0'
-short_version = version
-is_released = True
-""",
+ content=version_file_content,
always=True)
@hooks.options
View
@@ -45,24 +45,6 @@ before the change is made.
FAQ
---
-Q: How can I keep track of tickets for a (part of a) module?
-
-A: Each module can have a default owner in Trac, who automatically gets an
-email for each new ticket. Trac can also generate feeds based on filters
-defined in the "Custom Query" tab (e.g. by component, status). For example, to
-see all open tickets for scipy.optimize ordered by priority, use::
-
- http://projects.scipy.org/scipy/query?status=apply&status=needs_decision&
- status=needs_info&status=needs_review&status=needs_work&status=new&status=reopened
- &component=scipy.optimize&order=priority
-
-Or access the RSS feed at::
-
- http://projects.scipy.org/scipy/query?status=apply&status=needs_decision&
- status=needs_info&status=needs_review&status=needs_work&status=new&status=reopened
- &format=rss&component=scipy.optimize&order=priority
-
-
Q: How can I keep track of pull requests (PRs) and comments on Github?
A: Only people listed as committers get email notifications for new PRs. And
Oops, something went wrong.

0 comments on commit e4ed114

Please sign in to comment.