[Numpy-svn] r4112 - in branches/numpy.scons: . numpy numpy/core numpy/core/code_generators numpy/core/include/numpy numpy/core/src numpy/core/tests numpy/distutils numpy/doc numpy/doc/html numpy/lib numpy/lib/src numpy/lib/tests numpy/linalg numpy/linalg/tests

numpy-svn@scip... numpy-svn@scip...
Mon Sep 24 03:31:17 CDT 2007


Author: cdavid
Date: 2007-09-24 03:30:19 -0500 (Mon, 24 Sep 2007)
New Revision: 4112

Added:
   branches/numpy.scons/numpy/doc/HOWTO_DOCUMENT.txt
   branches/numpy.scons/numpy/doc/example.py
   branches/numpy.scons/numpy/doc/html/
   branches/numpy.scons/numpy/doc/html/api-objects.txt
   branches/numpy.scons/numpy/doc/html/crarr.png
   branches/numpy.scons/numpy/doc/html/epydoc.css
   branches/numpy.scons/numpy/doc/html/epydoc.js
   branches/numpy.scons/numpy/doc/html/example-module.html
   branches/numpy.scons/numpy/doc/html/example-pysrc.html
   branches/numpy.scons/numpy/doc/html/frames.html
   branches/numpy.scons/numpy/doc/html/help.html
   branches/numpy.scons/numpy/doc/html/identifier-index.html
   branches/numpy.scons/numpy/doc/html/index.html
   branches/numpy.scons/numpy/doc/html/module-tree.html
   branches/numpy.scons/numpy/doc/html/redirect.html
   branches/numpy.scons/numpy/doc/html/toc-everything.html
   branches/numpy.scons/numpy/doc/html/toc-example-module.html
   branches/numpy.scons/numpy/doc/html/toc.html
Removed:
   branches/numpy.scons/numpy/doc/HOWTO_DOCUMENT.py
   branches/numpy.scons/numpy/doc/html/api-objects.txt
   branches/numpy.scons/numpy/doc/html/crarr.png
   branches/numpy.scons/numpy/doc/html/epydoc.css
   branches/numpy.scons/numpy/doc/html/epydoc.js
   branches/numpy.scons/numpy/doc/html/example-module.html
   branches/numpy.scons/numpy/doc/html/example-pysrc.html
   branches/numpy.scons/numpy/doc/html/frames.html
   branches/numpy.scons/numpy/doc/html/help.html
   branches/numpy.scons/numpy/doc/html/identifier-index.html
   branches/numpy.scons/numpy/doc/html/index.html
   branches/numpy.scons/numpy/doc/html/module-tree.html
   branches/numpy.scons/numpy/doc/html/redirect.html
   branches/numpy.scons/numpy/doc/html/toc-everything.html
   branches/numpy.scons/numpy/doc/html/toc-example-module.html
   branches/numpy.scons/numpy/doc/html/toc.html
Modified:
   branches/numpy.scons/DEV_README.txt
   branches/numpy.scons/numpy/add_newdocs.py
   branches/numpy.scons/numpy/core/code_generators/generate_ufunc_api.py
   branches/numpy.scons/numpy/core/include/numpy/ufuncobject.h
   branches/numpy.scons/numpy/core/memmap.py
   branches/numpy.scons/numpy/core/src/multiarraymodule.c
   branches/numpy.scons/numpy/core/tests/test_regression.py
   branches/numpy.scons/numpy/distutils/__init__.py
   branches/numpy.scons/numpy/distutils/cpuinfo.py
   branches/numpy.scons/numpy/distutils/misc_util.py
   branches/numpy.scons/numpy/lib/src/_compiled_base.c
   branches/numpy.scons/numpy/lib/tests/test_twodim_base.py
   branches/numpy.scons/numpy/lib/twodim_base.py
   branches/numpy.scons/numpy/linalg/linalg.py
   branches/numpy.scons/numpy/linalg/tests/test_linalg.py
Log:
Merge back from trunk (from r4047 to 4111)

Modified: branches/numpy.scons/DEV_README.txt
===================================================================
--- branches/numpy.scons/DEV_README.txt	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/DEV_README.txt	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,15 +1,15 @@
-
 Thank you for your willingness to help make NumPy the best array system
 available.
 
-The only rules we like to follow are to try hard to keep the SVN 
-repository in a buildable state and to not indiscriminately muck with 
-what others have contributed. 
+The only rules we like to follow are to try hard to keep the SVN
+repository in a buildable state and to not indiscriminately muck with
+what others have contributed.
 
 Simple changes and obvious improvements are always welcome.  Changes
-that fundamentally change behavior need discussion on 
+that fundamentally change behavior need discussion on
 numpy-discussions@scipy.org before anything is done.
 
+
 Please add meaningful comments when you check changes in.  These comments
-form the basis of the change-log.
-
+form the basis of the change-log.  Add unit tests to excercise new
+code, and regression tests whenever you fix a bug.

Modified: branches/numpy.scons/numpy/add_newdocs.py
===================================================================
--- branches/numpy.scons/numpy/add_newdocs.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/add_newdocs.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -339,19 +339,31 @@
     """)
 
 add_newdoc('numpy.core.multiarray','where',
-    """where(condition, | x, y)
+    """where(condition, x, y) or where(condition)
 
-    The result is shaped like condition and has elements of x and y where
-    condition is respectively true or false.  If x or y are not given,
-    condition.nonzero() is returned.
+    Return elements from `x` or `y`, depending on `condition`.
 
-    To group the indices by element, rather than dimension, use
+    *Parameters*:
+        condition : array of bool
+            When True, yield x, otherwise yield y.
+        x,y : 1-dimensional arrays
+            Values from which to choose.
 
-        transpose(where(condition))
+    *Notes*
+        This is equivalent to
 
-    instead. This always results in a 2d array, with a row of indices for
-    each element that satisfies the condition.
+            [xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
 
+        The result is shaped like `condition` and has elements of `x`
+        or `y` where `condition` is respectively True or False.
+
+        In the special case, where only `condition` is given, the
+        tuple condition.nonzero() is returned, instead.
+
+    *Examples*
+        >>> where([True,False,True],[1,2,3],[4,5,6])
+        array([1, 5, 3])
+
     """)
 
 

Modified: branches/numpy.scons/numpy/core/code_generators/generate_ufunc_api.py
===================================================================
--- branches/numpy.scons/numpy/core/code_generators/generate_ufunc_api.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/core/code_generators/generate_ufunc_api.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -48,13 +48,13 @@
   return 0;
 }
 
-#define import_umath() { if (_import_umath() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.umath failed to import"); return; }}
+#define import_umath() { UFUNC_NOFPE if (_import_umath() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.umath failed to import"); return; }}
 
-#define import_umath1(ret) { if (_import_umath() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.umath failed to import"); return ret; }}
+#define import_umath1(ret) { UFUNC_NOFPE if (_import_umath() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.umath failed to import"); return ret; }}
 
-#define import_umath2(msg, ret) { if (_import_umath() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, msg); return ret; }}
+#define import_umath2(msg, ret) { UFUNC_NOFPE if (_import_umath() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, msg); return ret; }}
 
-#define import_ufunc() { if (_import_umath() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.umath failed to import"); }}
+#define import_ufunc() { UFUNC_NOFPE if (_import_umath() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.umath failed to import"); }}
 
 
 #endif

Modified: branches/numpy.scons/numpy/core/include/numpy/ufuncobject.h
===================================================================
--- branches/numpy.scons/numpy/core/include/numpy/ufuncobject.h	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/core/include/numpy/ufuncobject.h	2007-09-24 08:30:19 UTC (rev 4112)
@@ -245,6 +245,11 @@
 
 #include <float.h>
 
+  /* Clear the floating point exception default of Borland C++ */
+#if defined(__BORLANDC__)
+#define UFUNC_NOFPE _control87(MCW_EM, MCW_EM);
+#endif
+
 #define UFUNC_CHECK_STATUS(ret) {		 \
 	int fpstatus = (int) _clearfp();			\
 									\
@@ -358,7 +363,12 @@
 }
 #endif
 
+  /* Make sure it gets defined if it isn't already */
+#ifndef UFUNC_NOFPE
+#define UFUNC_NOFPE
+#endif
 
+
 #ifdef __cplusplus
 }
 #endif

Modified: branches/numpy.scons/numpy/core/memmap.py
===================================================================
--- branches/numpy.scons/numpy/core/memmap.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/core/memmap.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -80,20 +80,25 @@
         if obj is not None:
             if not isinstance(obj, memmap):
                 raise ValueError, "Cannot create a memmap array that way"
-            # it would be nice to carry the along the _mmap name
-            #  but then we might have problems because self could close
-            #  it while obj is still holding it.  So, we don't do
-            #  anything at this point. 
+            self._mmap = obj._mmap
         else:
             self._mmap = None
 
     def sync(self):
-        self._mmap.flush()
+        if self._mmap is not None:
+            self._mmap.flush()
 
     def close(self):
-        self._mmap.close()
+        if (self.base is self._mmap):
+            self._mmap.close()
+        elif self._mmap is not None:
+            raise ValueError, "Cannot close a memmap that is being used " \
+                  "by another object."
 
     def __del__(self):
-        if self._mmap is not None:
-            self._mmap.flush()
-            del self._mmap
+        self.sync()
+        try:
+            self.close()
+        except ValueError:
+            pass            
+        

Modified: branches/numpy.scons/numpy/core/src/multiarraymodule.c
===================================================================
--- branches/numpy.scons/numpy/core/src/multiarraymodule.c	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/core/src/multiarraymodule.c	2007-09-24 08:30:19 UTC (rev 4112)
@@ -3675,9 +3675,11 @@
         op = ap;
     }
 
+    /* Will get native-byte order contiguous copy. 
+     */
     ap = (PyArrayObject *)\
-        PyArray_ContiguousFromAny((PyObject *)op,
-                                  PyArray_NOTYPE, 1, 0);
+        PyArray_ContiguousFromAny((PyObject *)op, 
+                                  op->descr->type_num, 1, 0);
 
     Py_DECREF(op);
     if (ap == NULL) return NULL;
@@ -3693,7 +3695,7 @@
     if (m == 0) {
         PyErr_SetString(MultiArrayError,
                         "attempt to get argmax/argmin "\
-                        "of an empty sequence??");
+                        "of an empty sequence");
         goto fail;
     }
 
@@ -3719,7 +3721,7 @@
     }
 
     NPY_BEGIN_THREADS_DESCR(ap->descr)
-        n = PyArray_SIZE(ap)/m;
+    n = PyArray_SIZE(ap)/m;
     rptr = (intp *)rp->data;
     for (ip = ap->data, i=0; i<n; i++, ip+=elsize*m) {
         arg_func(ip, m, rptr, ap);
@@ -3727,7 +3729,7 @@
     }
     NPY_END_THREADS_DESCR(ap->descr)
 
-        Py_DECREF(ap);
+    Py_DECREF(ap);
     if (copyret) {
         PyArrayObject *obj;
         obj = (PyArrayObject *)rp->base;
@@ -5996,8 +5998,8 @@
 {
     PyArrayObject *r;
     intp i;
-    char *dptr, *clean_sep;
-
+    char *dptr, *clean_sep, *tmp;
+    int err = 0;
     intp thisbuf = 0;
     intp size;
     intp bytes, totalbytes;
@@ -6023,19 +6025,29 @@
         dptr += dtype->elsize;
         if (num < 0 && thisbuf == size) {
             totalbytes += bytes;
-            r->data = PyDataMem_RENEW(r->data, totalbytes);
-            dptr = r->data + (totalbytes - bytes);
+            tmp = PyDataMem_RENEW(r->data, totalbytes);
+            if (tmp == NULL) {
+                err = 1;
+                break;
+            }
+	    r->data = tmp;
+            dptr = tmp + (totalbytes - bytes);
             thisbuf = 0;
         }
         if (skip_sep(&stream, clean_sep, stream_data) < 0)
             break;
     }
     if (num < 0) {
-        r->data = PyDataMem_RENEW(r->data, (*nread)*dtype->elsize);
-        PyArray_DIM(r,0) = *nread;
+        tmp = PyDataMem_RENEW(r->data, (*nread)*dtype->elsize);
+	if (tmp == NULL) err=1;
+	else {
+	    PyArray_DIM(r,0) = *nread;
+	    r->data = tmp;
+	}
     }
     NPY_END_ALLOW_THREADS;
     free(clean_sep);
+    if (err == 1) PyErr_NoMemory();
     if (PyErr_Occurred()) {
         Py_DECREF(r);
         return NULL;
@@ -6227,6 +6239,7 @@
 {
     PyArrayObject *ret;
     size_t nread = 0;
+    char *tmp;
 
     if (PyDataType_REFCHK(dtype)) {
         PyErr_SetString(PyExc_ValueError,
@@ -6260,8 +6273,13 @@
     if (((intp) nread) < num) {
         fprintf(stderr, "%ld items requested but only %ld read\n",
                 (long) num, (long) nread);
-        ret->data = PyDataMem_RENEW(ret->data,
-                                    nread * ret->descr->elsize);
+        tmp = PyDataMem_RENEW(ret->data,
+			      nread * ret->descr->elsize);
+	if (tmp == NULL) {
+	    Py_DECREF(ret);
+	    return PyErr_NoMemory();	    
+	}
+	ret->data = tmp;
         PyArray_DIM(ret,0) = nread;
     }
     return (PyObject *)ret;
@@ -6382,11 +6400,12 @@
       (assuming realloc is reasonably good about reusing space...)
     */
     if (i==0) i = 1;
-    ret->data = PyDataMem_RENEW(ret->data, i * elsize);
-    if (ret->data == NULL) {
+    new_data = PyDataMem_RENEW(ret->data, i * elsize);
+    if (new_data == NULL) {
         PyErr_SetString(PyExc_MemoryError, "cannot allocate array memory");
         goto done;
     }
+    ret->data = new_data;
 
  done:
     Py_XDECREF(iter);

Modified: branches/numpy.scons/numpy/core/tests/test_regression.py
===================================================================
--- branches/numpy.scons/numpy/core/tests/test_regression.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/core/tests/test_regression.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -697,6 +697,11 @@
         x = N.array(['a']*32)
         assert_array_equal(x.argsort(kind='m'), N.arange(32))
 
+    def check_argmax_byteorder(self, level=rlevel):
+        """Ticket #546"""
+        a = N.arange(3, dtype='>f')
+        assert a[a.argmax()] == a.max()
+
     def check_numeric_random(self, level=rlevel):
         """Ticket #552"""
         from numpy.oldnumeric.random_array import randint
@@ -716,6 +721,10 @@
         assert x != y
         assert x == x
 
+    def check_mem_insert(self, level=rlevel):
+        """Ticket #572"""
+        N.lib.place(1,1,1)
 
+
 if __name__ == "__main__":
     NumpyTest().run()

Modified: branches/numpy.scons/numpy/distutils/__init__.py
===================================================================
--- branches/numpy.scons/numpy/distutils/__init__.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/distutils/__init__.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,5 +1,22 @@
 
 from __version__ import version as __version__
+
+# Check that distutils has not been imported before.
+import sys
+if 'distutils' in sys.modules:
+    sys.stderr.write('''\
+********************************************************
+WARNING!WARNING!WARNING!WARNING!WARNING!WARNING!WARNING!
+
+distutils has been imported before numpy.distutils
+and now numpy.distutils cannot apply all of its
+customizations to distutils effectively.
+
+To avoid this warning, make sure that numpy.distutils
+is imported *before* distutils.
+********************************************************
+''')
+
 # Must import local ccompiler ASAP in order to get
 # customized CCompiler.spawn effective.
 import ccompiler

Modified: branches/numpy.scons/numpy/distutils/cpuinfo.py
===================================================================
--- branches/numpy.scons/numpy/distutils/cpuinfo.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/distutils/cpuinfo.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -524,7 +524,6 @@
                     break
                 else:
                     pnum+=1
-                    print proc
                     info.append({"Processor":proc})
                     phnd=_winreg.OpenKey(chnd,proc)
                     pidx=0

Modified: branches/numpy.scons/numpy/distutils/misc_util.py
===================================================================
--- branches/numpy.scons/numpy/distutils/misc_util.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/distutils/misc_util.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -5,6 +5,7 @@
 import copy
 import glob
 import atexit
+import string
 import tempfile
 
 try:
@@ -22,7 +23,7 @@
            'get_script_files', 'get_lib_source_files', 'get_data_files',
            'dot_join', 'get_frame', 'minrelpath','njoin',
            'is_sequence', 'is_string', 'as_list', 'gpaths', 'get_language',
-           'quote_args']
+           'quote_args', 'get_build_architecture']
 
 def quote_args(args):
     # don't used _nt_quote_args as it does not check if
@@ -321,7 +322,6 @@
 def msvc_on_amd64():
     if not (sys.platform=='win32' or os.name=='nt'):
         return
-    from distutils.msvccompiler import get_build_architecture
     if get_build_architecture() != 'AMD64':
         return
     if os.environ.has_key('DISTUTILS_USE_SDK'):
@@ -1534,3 +1534,21 @@
 
     f.close()
     return target
+
+if sys.version[:3] >= '2.5':
+    def get_build_architecture():
+        from distutils.msvccompiler import get_build_architecture
+        return get_build_architecture()
+else:
+    #copied from python 2.5.1 distutils/msvccompiler.py
+    def get_build_architecture():
+        """Return the processor architecture.
+        
+        Possible results are "Intel", "Itanium", or "AMD64".
+        """
+        prefix = " bit ("
+        i = string.find(sys.version, prefix)
+        if i == -1:
+            return "Intel"
+        j = string.find(sys.version, ")", i)
+        return sys.version[i+len(prefix):j]

Deleted: branches/numpy.scons/numpy/doc/HOWTO_DOCUMENT.py
===================================================================
--- branches/numpy.scons/numpy/doc/HOWTO_DOCUMENT.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/HOWTO_DOCUMENT.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,180 +0,0 @@
-# It is desireable that both NumPy and SciPy follow a convention for docstrings
-# that provide for some consistency while also allowing epydoc to produce
-# nicely-formatted reference guides. However, such a convention has not yet
-# been decided on. This is my current thinking on the topic.  If you have
-# suggestions for improvements, post them on the numpy-dev list together with
-# the epydoc output so they may be discussed.
-#
-# The docstring format uses reST syntax as interpreted by epydoc. The markup
-# in this proposal is as basic as possible and in particular avoids the use of
-# epydoc consolidated fields. This is both because there are a limited number
-# of such fields, inadequate to our current needs, and because epydoc moves
-# the fields to the end of the documentation, messing up the ordering. So here
-# standard definition lists are used instead.  Likewise, epydoc moves headings
-# and have an unwelcome size in the default style sheet, hence they have also
-# been avoided.
-#
-# A maximum line width of 79 is suggested, as this will allow the docstrings to
-# display on standard terminals. This convention is a bit old and traces back
-# to IBM punchcard days, but still seems to be the standard.
-#
-# Comments:
-#
-# 1) You can run epydoc on this file like so:
-#
-# $ epydoc HOWTO_DOCUMENT.txt
-#
-# The output will be in a directory named html in the same directory as this
-# document and may be viewed by loading the index.html file into your browser.
-#
-# 2) The developmental version of epydoc, version 3.0 beta or later, is
-# suggested as it is faster and produces better looking output. Epydoc can be
-# downloaded from http://epydoc.sourceforge.net/
-#
-# 3) The appearance of some elements can be changed in the epydoc.css
-# style sheet. The list headings, i.e. *Parameters*:, are emphasized text, so
-# their appearance is controlled by the definition of the <em>
-# tag. For instance, to make them bold, insert
-#
-# em     {font-weight: bold;}
-#
-# The variables' types are in a span of class rst-classifier, hence can be
-# changed by inserting something like:
-#
-# span.rst-classifier     {font-weight: normal;}
-#
-# 4) The first line of the signature should **not** copy the signature unless
-# the function is written in C, in which case it is mandatory.  If the function
-# signature is generic (uses *args or **kwds), then a function signature may be
-# included
-#
-# 5) Use optional in the "type" field for parameters that are non-keyword
-# optional for C-functions.
-#
-# 6) The Other Parameters section is for functions taking a lot of keywords
-# which are not always used or neeeded and whose description would clutter then
-# main purpose of the function. (Comment by Chuck : I think this should be
-# rarely used, if at all)
-#
-# 7) The See Also section can list additional related functions.  The purpose
-# of this section is to direct users to other functions they may not be aware
-# of or have easy means to discover (i.e. by looking at the docstring of the
-# module).  Thus, repeating functions that are in the same module is not useful
-# and can create a cluttered document.  Please use judgement when listing
-# additional functions.  Routines that provide additional information in their
-# docstrings for this function may be useful to include here.
-#
-# 8) The Notes section can contain algorithmic information if that is useful.
-#
-# 9) The Examples section is strongly encouraged.  The examples can provide a
-# mini-tutorial as well as additional regression testing. (Comment by Chuck:
-# blank lines in the numpy output, for instance in multidimensional arrays,
-# will break doctest.) You can run the tests by doing
-#
-# >>> import doctest
-# >>> doctest.testfile('HOWTO_DOCUMENT.txt')
-#
-#
-# Common reST concepts:
-
-# A reST-documented module should define
-#
-#   __docformat__ = 'restructuredtext en'
-#
-# at the top level in accordance with PEP 258.  Note that the __docformat__
-# variable in a package's __init__.py file does not apply to objects defined in
-# subpackages and submodules.
-#
-# For paragraphs, indentation is significant and indicates indentation in the
-# output. New paragraphs are marked with blank line.
-#
-# Use *italics*, **bold**, and ``courier`` if needed in any explanations (but
-# not for variable names and doctest code or multi-line code)
-#
-# Use :lm:`eqn` for in-line math in latex format (remember to use the
-# raw-format for your text string or escape any '\' symbols). Use :m:`eqn` for
-# non-latex math.
-#
-# A more extensive example of reST markup can be found here:
-# http://docutils.sourceforge.net/docs/user/rst/demo.txt
-# An example follows. Line spacing and indentation are significant and should
-# be carefully followed.
-
-__docformat__ = "restructuredtext en"
-
-
-def foo(var1, var2, long_var_name='hi') :
-    """One-line summary or signature.
-
-    Several sentences providing an extended description. You can put
-    text in mono-spaced type like so: ``var``.
-
-    *Parameters*:
-
-        var1 : {array_like}
-            Array_like means all those objects -- lists, nested lists, etc. --
-            that can be converted to an array.
-        var2 : {integer}
-            Write out the full type
-        long_variable_name : {'hi', 'ho'}, optional
-            Choices in brackets, default first when optional.
-
-    *Returns*:
-
-        named : {type}
-            Explanation
-        list
-            Explanation
-        of
-            Explanation
-        outputs
-            even more explaining
-
-    *Other Parameters*:
-
-        only_seldom_used_keywords : type
-            Explanation
-        common_parametrs_listed_above : type
-            Explanation
-
-    *See Also*:
-
-        `otherfunc` : relationship (optional)
-
-        `newfunc` : relationship (optional)
-
-    *Notes*
-
-        Notes about the implementation algorithm (if needed).
-
-        This can have multiple paragraphs as can all sections.
-
-    *Examples*
-
-        examples in doctest format
-
-        >>> a=[1,2,3]
-        >>> [x + 3 for x in a]
-        [4, 5, 6]
-
-    """
-    pass
-
-
-def newfunc() :
-    """Do nothing.
-
-    I never saw a purple cow.
-
-    """
-    pass
-
-
-def otherfunc() :
-    """Do nothing.
-
-    I never hope to see one.
-
-    """
-    pass
-

Copied: branches/numpy.scons/numpy/doc/HOWTO_DOCUMENT.txt (from rev 4111, trunk/numpy/doc/HOWTO_DOCUMENT.txt)

Copied: branches/numpy.scons/numpy/doc/example.py (from rev 4111, trunk/numpy/doc/example.py)

Copied: branches/numpy.scons/numpy/doc/html (from rev 4111, trunk/numpy/doc/html)

Deleted: branches/numpy.scons/numpy/doc/html/api-objects.txt
===================================================================
--- trunk/numpy/doc/html/api-objects.txt	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/api-objects.txt	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,4 +0,0 @@
-example	example-module.html
-example.otherfunc	example-module.html#otherfunc
-example.foo	example-module.html#foo
-example.newfunc	example-module.html#newfunc

Copied: branches/numpy.scons/numpy/doc/html/api-objects.txt (from rev 4111, trunk/numpy/doc/html/api-objects.txt)

Deleted: branches/numpy.scons/numpy/doc/html/crarr.png
===================================================================
(Binary files differ)

Copied: branches/numpy.scons/numpy/doc/html/crarr.png (from rev 4111, trunk/numpy/doc/html/crarr.png)

Deleted: branches/numpy.scons/numpy/doc/html/epydoc.css
===================================================================
--- trunk/numpy/doc/html/epydoc.css	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/epydoc.css	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,315 +0,0 @@
-
-
-/* Epydoc CSS Stylesheet
- *
- * This stylesheet can be used to customize the appearance of epydoc's
- * HTML output.
- *
- */
-
-/* Default Colors & Styles
- *   - Set the default foreground & background color with 'body'; and 
- *     link colors with 'a:link' and 'a:visited'.
- *   - Use bold for decision list terms.
- *   - The heading styles defined here are used for headings *within*
- *     docstring descriptions.  All headings used by epydoc itself use
- *     either class='epydoc' or class='toc' (CSS styles for both
- *     defined below).
- */
-body                        { background: #ffffff; color: #000000; }
-p                           { margin-top: 0.5em; margin-bottom: 0.5em; }
-a:link                      { color: #0000ff; }
-a:visited                   { color: #204080; }
-dt                          { font-weight: bold; }
-h1                          { font-size: +140%; font-style: italic;
-                              font-weight: bold; }
-h2                          { font-size: +125%; font-style: italic;
-                              font-weight: bold; }
-h3                          { font-size: +110%; font-style: italic;
-                              font-weight: normal; }
-code                        { font-size: 100%; }
- 
-/* Page Header & Footer
- *   - The standard page header consists of a navigation bar (with
- *     pointers to standard pages such as 'home' and 'trees'); a
- *     breadcrumbs list, which can be used to navigate to containing
- *     classes or modules; options links, to show/hide private
- *     variables and to show/hide frames; and a page title (using
- *     <h1>).  The page title may be followed by a link to the
- *     corresponding source code (using 'span.codelink').
- *   - The footer consists of a navigation bar, a timestamp, and a
- *     pointer to epydoc's homepage.
- */ 
-h1.epydoc                   { margin: 0; font-size: +140%; font-weight: bold; }
-h2.epydoc                   { font-size: +130%; font-weight: bold; }
-h3.epydoc                   { font-size: +115%; font-weight: bold;
-                              margin-top: 0.2em; }
-td h3.epydoc                { font-size: +115%; font-weight: bold;
-                              margin-bottom: 0; }
-table.navbar                { background: #a0c0ff; color: #000000;
-                              border: 2px groove #c0d0d0; }
-table.navbar table          { color: #000000; }
-th.navbar-select            { background: #70b0ff;
-                              color: #000000; } 
-table.navbar a              { text-decoration: none; }  
-table.navbar a:link         { color: #0000ff; }
-table.navbar a:visited      { color: #204080; }
-span.breadcrumbs            { font-size: 85%; font-weight: bold; }
-span.options                { font-size: 70%; }
-span.codelink               { font-size: 85%; }
-td.footer                   { font-size: 85%; }
-
-/* Table Headers
- *   - Each summary table and details section begins with a 'header'
- *     row.  This row contains a section title (marked by
- *     'span.table-header') as well as a show/hide private link
- *     (marked by 'span.options', defined above).
- *   - Summary tables that contain user-defined groups mark those
- *     groups using 'group header' rows.
- */
-td.table-header             { background: #70b0ff; color: #000000;
-                              border: 1px solid #608090; }
-td.table-header table       { color: #000000; }
-td.table-header table a:link      { color: #0000ff; }
-td.table-header table a:visited   { color: #204080; }
-span.table-header           { font-size: 120%; font-weight: bold; }
-th.group-header             { background: #c0e0f8; color: #000000;
-                              text-align: left; font-style: italic; 
-                              font-size: 115%; 
-                              border: 1px solid #608090; }
-
-/* Summary Tables (functions, variables, etc)
- *   - Each object is described by a single row of the table with
- *     two cells.  The left cell gives the object's type, and is
- *     marked with 'code.summary-type'.  The right cell gives the
- *     object's name and a summary description.
- *   - CSS styles for the table's header and group headers are
- *     defined above, under 'Table Headers'
- */
-table.summary               { border-collapse: collapse;
-                              background: #e8f0f8; color: #000000;
-                              border: 1px solid #608090;
-                              margin-bottom: 0.5em; }
-td.summary                  { border: 1px solid #608090; }
-code.summary-type           { font-size: 85%; }
-table.summary a:link        { color: #0000ff; }
-table.summary a:visited     { color: #204080; }
-
-
-/* Details Tables (functions, variables, etc)
- *   - Each object is described in its own div.
- *   - A single-row summary table w/ table-header is used as
- *     a header for each details section (CSS style for table-header
- *     is defined above, under 'Table Headers').
- */
-table.details               { border-collapse: collapse;
-                              background: #e8f0f8; color: #000000;
-                              border: 1px solid #608090;
-                              margin: .2em 0 0 0; }
-table.details table         { color: #000000; }
-table.details a:link        { color: #0000ff; }
-table.details a:visited     { color: #204080; }
-
-/* Fields */
-dl.fields                   { margin-left: 2em; margin-top: 1em;
-                              margin-bottom: 1em; }
-dl.fields dd ul             { margin-left: 0em; padding-left: 0em; }
-dl.fields dd ul li ul       { margin-left: 2em; padding-left: 0em; }
-div.fields                  { margin-left: 2em; }
-div.fields p                { margin-bottom: 0.5em; }
-
-/* Index tables (identifier index, term index, etc)
- *   - link-index is used for indices containing lists of links
- *     (namely, the identifier index & term index).
- *   - index-where is used in link indices for the text indicating
- *     the container/source for each link.
- *   - metadata-index is used for indices containing metadata
- *     extracted from fields (namely, the bug index & todo index).
- */
-table.link-index            { border-collapse: collapse;
-                              background: #e8f0f8; color: #000000;
-                              border: 1px solid #608090; }
-td.link-index               { border-width: 0px; }
-table.link-index a:link     { color: #0000ff; }
-table.link-index a:visited  { color: #204080; }
-span.index-where            { font-size: 70%; }
-table.metadata-index        { border-collapse: collapse;
-                              background: #e8f0f8; color: #000000;
-                              border: 1px solid #608090; 
-                              margin: .2em 0 0 0; }
-td.metadata-index           { border-width: 1px; border-style: solid; }
-table.metadata-index a:link { color: #0000ff; }
-table.metadata-index a:visited  { color: #204080; }
-
-/* Function signatures
- *   - sig* is used for the signature in the details section.
- *   - .summary-sig* is used for the signature in the summary 
- *     table, and when listing property accessor functions.
- * */
-.sig-name                   { color: #006080; }
-.sig-arg                    { color: #008060; }
-.sig-default                { color: #602000; }
-.summary-sig                { font-family: monospace; }
-.summary-sig-name           { color: #006080; font-weight: bold; }
-table.summary a.summary-sig-name:link
-                            { color: #006080; font-weight: bold; }
-table.summary a.summary-sig-name:visited
-                            { color: #006080; font-weight: bold; }
-.summary-sig-arg            { color: #006040; }
-.summary-sig-default        { color: #501800; }
-
-/* To render variables, classes etc. like functions */
-table.summary .summary-name { color: #006080; font-weight: bold;
-                              font-family: monospace; }
-table.summary
-     a.summary-name:link    { color: #006080; font-weight: bold;
-                              font-family: monospace; }
-table.summary
-    a.summary-name:visited  { color: #006080; font-weight: bold;
-                              font-family: monospace; }
-
-/* Variable values
- *   - In the 'variable details' sections, each varaible's value is
- *     listed in a 'pre.variable' box.  The width of this box is
- *     restricted to 80 chars; if the value's repr is longer than
- *     this it will be wrapped, using a backslash marked with
- *     class 'variable-linewrap'.  If the value's repr is longer
- *     than 3 lines, the rest will be ellided; and an ellipsis
- *     marker ('...' marked with 'variable-ellipsis') will be used.
- *   - If the value is a string, its quote marks will be marked
- *     with 'variable-quote'.
- *   - If the variable is a regexp, it is syntax-highlighted using
- *     the re* CSS classes.
- */
-pre.variable                { padding: .5em; margin: 0;
-                              background: #dce4ec; color: #000000;
-                              border: 1px solid #708890; }
-.variable-linewrap          { color: #604000; font-weight: bold; }
-.variable-ellipsis          { color: #604000; font-weight: bold; }
-.variable-quote             { color: #604000; font-weight: bold; }
-.variable-group             { color: #008000; font-weight: bold; }
-.variable-op                { color: #604000; font-weight: bold; }
-.variable-string            { color: #006030; }
-.variable-unknown           { color: #a00000; font-weight: bold; }
-.re                         { color: #000000; }
-.re-char                    { color: #006030; }
-.re-op                      { color: #600000; }
-.re-group                   { color: #003060; }
-.re-ref                     { color: #404040; }
-
-/* Base tree
- *   - Used by class pages to display the base class hierarchy.
- */
-pre.base-tree               { font-size: 80%; margin: 0; }
-
-/* Frames-based table of contents headers
- *   - Consists of two frames: one for selecting modules; and
- *     the other listing the contents of the selected module.
- *   - h1.toc is used for each frame's heading
- *   - h2.toc is used for subheadings within each frame.
- */
-h1.toc                      { text-align: center; font-size: 105%;
-                              margin: 0; font-weight: bold;
-                              padding: 0; }
-h2.toc                      { font-size: 100%; font-weight: bold; 
-                              margin: 0.5em 0 0 -0.3em; }
-
-/* Syntax Highlighting for Source Code
- *   - doctest examples are displayed in a 'pre.py-doctest' block.
- *     If the example is in a details table entry, then it will use
- *     the colors specified by the 'table pre.py-doctest' line.
- *   - Source code listings are displayed in a 'pre.py-src' block.
- *     Each line is marked with 'span.py-line' (used to draw a line
- *     down the left margin, separating the code from the line
- *     numbers).  Line numbers are displayed with 'span.py-lineno'.
- *     The expand/collapse block toggle button is displayed with
- *     'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
- *     modify the font size of the text.)
- *   - If a source code page is opened with an anchor, then the
- *     corresponding code block will be highlighted.  The code
- *     block's header is highlighted with 'py-highlight-hdr'; and
- *     the code block's body is highlighted with 'py-highlight'.
- *   - The remaining py-* classes are used to perform syntax
- *     highlighting (py-string for string literals, py-name for names,
- *     etc.)
- */
-pre.py-doctest              { padding: .5em; margin: 1em;
-                              background: #e8f0f8; color: #000000;
-                              border: 1px solid #708890; }
-table pre.py-doctest        { background: #dce4ec;
-                              color: #000000; }
-pre.py-src                  { border: 2px solid #000000; 
-                              background: #f0f0f0; color: #000000; }
-.py-line                    { border-left: 2px solid #000000; 
-                              margin-left: .2em; padding-left: .4em; }
-.py-lineno                  { font-style: italic; font-size: 90%;
-                              padding-left: .5em; }
-a.py-toggle                 { text-decoration: none; }
-div.py-highlight-hdr        { border-top: 2px solid #000000;
-                              border-bottom: 2px solid #000000;
-                              background: #d8e8e8; }
-div.py-highlight            { border-bottom: 2px solid #000000;
-                              background: #d0e0e0; }
-.py-prompt                  { color: #005050; font-weight: bold;}
-.py-more                    { color: #005050; font-weight: bold;}
-.py-string                  { color: #006030; }
-.py-comment                 { color: #003060; }
-.py-keyword                 { color: #600000; }
-.py-output                  { color: #404040; }
-.py-name                    { color: #000050; }
-.py-name:link               { color: #000050 !important; }
-.py-name:visited            { color: #000050 !important; }
-.py-number                  { color: #005000; }
-.py-defname                 { color: #000060; font-weight: bold; }
-.py-def-name                { color: #000060; font-weight: bold; }
-.py-base-class              { color: #000060; }
-.py-param                   { color: #000060; }
-.py-docstring               { color: #006030; }
-.py-decorator               { color: #804020; }
-/* Use this if you don't want links to names underlined: */
-/*a.py-name                   { text-decoration: none; }*/
-
-/* Graphs & Diagrams
- *   - These CSS styles are used for graphs & diagrams generated using
- *     Graphviz dot.  'img.graph-without-title' is used for bare
- *     diagrams (to remove the border created by making the image
- *     clickable).
- */
-img.graph-without-title     { border: none; }
-img.graph-with-title        { border: 1px solid #000000; }
-span.graph-title            { font-weight: bold; }
-span.graph-caption          { }
-
-/* General-purpose classes
- *   - 'p.indent-wrapped-lines' defines a paragraph whose first line
- *     is not indented, but whose subsequent lines are.
- *   - The 'nomargin-top' class is used to remove the top margin (e.g.
- *     from lists).  The 'nomargin' class is used to remove both the
- *     top and bottom margin (but not the left or right margin --
- *     for lists, that would cause the bullets to disappear.)
- */
-p.indent-wrapped-lines      { padding: 0 0 0 7em; text-indent: -7em; 
-                              margin: 0; }
-.nomargin-top               { margin-top: 0; }
-.nomargin                   { margin-top: 0; margin-bottom: 0; }
-
-/* HTML Log */
-div.log-block               { padding: 0; margin: .5em 0 .5em 0;
-                              background: #e8f0f8; color: #000000;
-                              border: 1px solid #000000; }
-div.log-error               { padding: .1em .3em .1em .3em; margin: 4px;
-                              background: #ffb0b0; color: #000000;
-                              border: 1px solid #000000; }
-div.log-warning             { padding: .1em .3em .1em .3em; margin: 4px;
-                              background: #ffffb0; color: #000000;
-                              border: 1px solid #000000; }
-div.log-info               { padding: .1em .3em .1em .3em; margin: 4px;
-                              background: #b0ffb0; color: #000000;
-                              border: 1px solid #000000; }
-h2.log-hdr                  { background: #70b0ff; color: #000000;
-                              margin: 0; padding: 0em 0.5em 0em 0.5em;
-                              border-bottom: 1px solid #000000; font-size: 110%; }
-p.log                       { font-weight: bold; margin: .5em 0 .5em 0; }
-tr.opt-changed              { color: #000000; font-weight: bold; }
-tr.opt-default              { color: #606060; }
-pre.log                     { margin: 0; padding: 0; padding-left: 1em; }

Copied: branches/numpy.scons/numpy/doc/html/epydoc.css (from rev 4111, trunk/numpy/doc/html/epydoc.css)

Deleted: branches/numpy.scons/numpy/doc/html/epydoc.js
===================================================================
--- trunk/numpy/doc/html/epydoc.js	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/epydoc.js	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,280 +0,0 @@
-function toggle_private() {
-        // Search for any private/public links on this page.  Store
-        // their old text in "cmd," so we will know what action to
-        // take; and change their text to the opposite action.
-        var cmd = "?";
-        var elts = document.getElementsByTagName("a");
-        for(var i=0; i<elts.length; i++) {
-          if (elts[i].className == "privatelink") {
-            cmd = elts[i].innerHTML;
-            elts[i].innerHTML = ((cmd && cmd.substr(0,4)=="show")?
-                                    "hide&nbsp;private":"show&nbsp;private");
-          }
-        }
-        // Update all DIVs containing private objects.
-        var elts = document.getElementsByTagName("div");
-        for(var i=0; i<elts.length; i++) {
-          if (elts[i].className == "private") {
-            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
-          }
-        }
-        // Update all table rowss containing private objects.  Note, we
-        // use "" instead of "block" becaue IE & firefox disagree on what
-        // this should be (block vs table-row), and "" just gives the
-        // default for both browsers.
-        var elts = document.getElementsByTagName("tr");
-        for(var i=0; i<elts.length; i++) {
-          if (elts[i].className == "private") {
-            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"");
-          }
-        }
-        // Update all list items containing private objects.
-        var elts = document.getElementsByTagName("li");
-        for(var i=0; i<elts.length; i++) {
-          if (elts[i].className == "private") {
-            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?
-                                        "none":"list-item");
-          }
-        }
-        // Update all list items containing private objects.
-        var elts = document.getElementsByTagName("ul");
-        for(var i=0; i<elts.length; i++) {
-          if (elts[i].className == "private") {
-            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
-          }
-        }
-        // Set a cookie to remember the current option.
-        document.cookie = "EpydocPrivate="+cmd;
-      }
-function getCookie(name) {
-        var dc = document.cookie;
-        var prefix = name + "=";
-        var begin = dc.indexOf("; " + prefix);
-        if (begin == -1) {
-          begin = dc.indexOf(prefix);
-          if (begin != 0) return null;
-        } else
-        { begin += 2; }
-        var end = document.cookie.indexOf(";", begin);
-        if (end == -1)
-        { end = dc.length; }
-        return unescape(dc.substring(begin + prefix.length, end));
-      }
-function setFrame(url1, url2) {
-          parent.frames[1].location.href = url1;
-          parent.frames[2].location.href = url2;
-      }
-function checkCookie() {
-        var cmd=getCookie("EpydocPrivate");
-        if (cmd && cmd.substr(0,4)!="show" && location.href.indexOf("#_") < 0)
-            toggle_private();
-      }
-function toggleCallGraph(id) {
-        var elt = document.getElementById(id);
-        if (elt.style.display == "none")
-            elt.style.display = "block";
-        else
-            elt.style.display = "none";
-      }
-function expand(id) {
-  var elt = document.getElementById(id+"-expanded");
-  if (elt) elt.style.display = "block";
-  var elt = document.getElementById(id+"-expanded-linenums");
-  if (elt) elt.style.display = "block";
-  var elt = document.getElementById(id+"-collapsed");
-  if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
-  var elt = document.getElementById(id+"-collapsed-linenums");
-  if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
-  var elt = document.getElementById(id+"-toggle");
-  if (elt) { elt.innerHTML = "-"; }
-}
-
-function collapse(id) {
-  var elt = document.getElementById(id+"-expanded");
-  if (elt) elt.style.display = "none";
-  var elt = document.getElementById(id+"-expanded-linenums");
-  if (elt) elt.style.display = "none";
-  var elt = document.getElementById(id+"-collapsed-linenums");
-  if (elt) { elt.innerHTML = "<br />"; elt.style.display="block"; }
-  var elt = document.getElementById(id+"-toggle");
-  if (elt) { elt.innerHTML = "+"; }
-  var elt = document.getElementById(id+"-collapsed");
-  if (elt) {
-    elt.style.display = "block";
-    
-    var indent = elt.getAttribute("indent");
-    var pad = elt.getAttribute("pad");
-    var s = "<tt class='py-lineno'>";
-    for (var i=0; i<pad.length; i++) { s += "&nbsp;" }
-    s += "</tt>";
-    s += "&nbsp;&nbsp;<tt class='py-line'>";
-    for (var i=0; i<indent.length; i++) { s += "&nbsp;" }
-    s += "<a href='#' onclick='expand(\"" + id;
-    s += "\");return false'>...</a></tt><br />";
-    elt.innerHTML = s;
-  }
-}
-
-function toggle(id) {
-  elt = document.getElementById(id+"-toggle");
-  if (elt.innerHTML == "-")
-      collapse(id); 
-  else
-      expand(id);
-  return false;
-}
-
-function highlight(id) {
-  var elt = document.getElementById(id+"-def");
-  if (elt) elt.className = "py-highlight-hdr";
-  var elt = document.getElementById(id+"-expanded");
-  if (elt) elt.className = "py-highlight";
-  var elt = document.getElementById(id+"-collapsed");
-  if (elt) elt.className = "py-highlight";
-}
-
-function num_lines(s) {
-  var n = 1;
-  var pos = s.indexOf("\n");
-  while ( pos > 0) {
-    n += 1;
-    pos = s.indexOf("\n", pos+1);
-  }
-  return n;
-}
-
-// Collapse all blocks that mave more than `min_lines` lines.
-function collapse_all(min_lines) {
-  var elts = document.getElementsByTagName("div");
-  for (var i=0; i<elts.length; i++) {
-    var elt = elts[i];
-    var split = elt.id.indexOf("-");
-    if (split > 0)
-      if (elt.id.substring(split, elt.id.length) == "-expanded")
-        if (num_lines(elt.innerHTML) > min_lines)
-          collapse(elt.id.substring(0, split));
-  }
-}
-
-function expandto(href) {
-  var start = href.indexOf("#")+1;
-  if (start != 0 && start != href.length) {
-    if (href.substring(start, href.length) != "-") {
-      collapse_all(4);
-      pos = href.indexOf(".", start);
-      while (pos != -1) {
-        var id = href.substring(start, pos);
-        expand(id);
-        pos = href.indexOf(".", pos+1);
-      }
-      var id = href.substring(start, href.length);
-      expand(id);
-      highlight(id);
-    }
-  }
-}
-
-function kill_doclink(id) {
-  var parent = document.getElementById(id);
-  parent.removeChild(parent.childNodes.item(0));
-}
-function auto_kill_doclink(ev) {
-  if (!ev) var ev = window.event;
-  if (!this.contains(ev.toElement)) {
-    var parent = document.getElementById(this.parentID);
-    parent.removeChild(parent.childNodes.item(0));
-  }
-}
-
-function doclink(id, name, targets_id) {
-  var elt = document.getElementById(id);
-
-  // If we already opened the box, then destroy it.
-  // (This case should never occur, but leave it in just in case.)
-  if (elt.childNodes.length > 1) {
-    elt.removeChild(elt.childNodes.item(0));
-  }
-  else {
-    // The outer box: relative + inline positioning.
-    var box1 = document.createElement("div");
-    box1.style.position = "relative";
-    box1.style.display = "inline";
-    box1.style.top = 0;
-    box1.style.left = 0;
-  
-    // A shadow for fun
-    var shadow = document.createElement("div");
-    shadow.style.position = "absolute";
-    shadow.style.left = "-1.3em";
-    shadow.style.top = "-1.3em";
-    shadow.style.background = "#404040";
-    
-    // The inner box: absolute positioning.
-    var box2 = document.createElement("div");
-    box2.style.position = "relative";
-    box2.style.border = "1px solid #a0a0a0";
-    box2.style.left = "-.2em";
-    box2.style.top = "-.2em";
-    box2.style.background = "white";
-    box2.style.padding = ".3em .4em .3em .4em";
-    box2.style.fontStyle = "normal";
-    box2.onmouseout=auto_kill_doclink;
-    box2.parentID = id;
-
-    // Get the targets
-    var targets_elt = document.getElementById(targets_id);
-    var targets = targets_elt.getAttribute("targets");
-    var links = "";
-    target_list = targets.split(",");
-    for (var i=0; i<target_list.length; i++) {
-        var target = target_list[i].split("=");
-        links += "<li><a href='" + target[1] + 
-               "' style='text-decoration:none'>" +
-               target[0] + "</a></li>";
-    }
-  
-    // Put it all together.
-    elt.insertBefore(box1, elt.childNodes.item(0));
-    //box1.appendChild(box2);
-    box1.appendChild(shadow);
-    shadow.appendChild(box2);
-    box2.innerHTML =
-        "Which <b>"+name+"</b> do you want to see documentation for?" +
-        "<ul style='margin-bottom: 0;'>" +
-        links + 
-        "<li><a href='#' style='text-decoration:none' " +
-        "onclick='kill_doclink(\""+id+"\");return false;'>"+
-        "<i>None of the above</i></a></li></ul>";
-  }
-  return false;
-}
-
-function get_anchor() {
-          var href = location.href;
-          var start = href.indexOf("#")+1;
-          if ((start != 0) && (start != href.length))
-              return href.substring(start, href.length);
-      }
-function redirect_url(dottedName) {
-          // Scan through each element of the "pages" list, and check
-          // if "name" matches with any of them.
-          for (var i=0; i<pages.length; i++) {
-
-              // Each page has the form "<pagename>-m" or "<pagename>-c";
-              // extract the <pagename> portion & compare it to dottedName.
-              var pagename = pages[i].substring(0, pages[i].length-2);
-              if (pagename == dottedName.substring(0,pagename.length)) {
-
-                  // We've found a page that matches `dottedName`;
-                  // construct its URL, using leftover `dottedName`
-                  // content to form an anchor.
-                  var pagetype = pages[i].charAt(pages[i].length-1);
-                  var url = pagename + ((pagetype=="m")?"-module.html":
-                                                        "-class.html");
-                  if (dottedName.length > pagename.length)
-                      url += "#" + dottedName.substring(pagename.length+1,
-                                                        dottedName.length);
-                  return url;
-              }
-          }
-      }

Copied: branches/numpy.scons/numpy/doc/html/epydoc.js (from rev 4111, trunk/numpy/doc/html/epydoc.js)

Deleted: branches/numpy.scons/numpy/doc/html/example-module.html
===================================================================
--- trunk/numpy/doc/html/example-module.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/example-module.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,316 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>example</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <span class="breadcrumbs">
-        Module&nbsp;example
-      </span>
-    </td>
-    <td>
-      <table cellpadding="0" cellspacing="0">
-        <!-- hide/show private -->
-        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
-    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
-        <tr><td align="right"><span class="options"
-            >[<a href="frames.html" target="_top">frames</a
-            >]&nbsp;|&nbsp;<a href="example-module.html"
-            target="_top">no&nbsp;frames</a>]</span></td></tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<!-- ==================== MODULE DESCRIPTION ==================== -->
-<h1 class="epydoc">Module example</h1><p class="nomargin-top"><span class="codelink"><a href="example-pysrc.html">source&nbsp;code</a></span></p>
-<p>This is the docstring for the example.py module.  Modules names should
-have short, all-lowercase names.  The module name may have underscores if
-this improves readability.</p>
-<p>Every module should have a docstring at the very top of the file.  The
-module's docstring may extend over multiple lines.  If your docstring does
-extend over multiple lines, the closing three quotation marks must be on
-a line by itself, preferably preceeded by a blank line.</p>
-
-<!-- ==================== FUNCTIONS ==================== -->
-<a name="section-Functions"></a>
-<table class="summary" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="table-header">
-  <td colspan="2" class="table-header">
-    <table border="0" cellpadding="0" cellspacing="0" width="100%">
-      <tr valign="top">
-        <td align="left"><span class="table-header">Functions</span></td>
-        <td align="right" valign="top"
-         ><span class="options">[<a href="#section-Functions"
-         class="privatelink" onclick="toggle_private();"
-         >hide private</a>]</span></td>
-      </tr>
-    </table>
-  </td>
-</tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-      <table width="100%" cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td><span class="summary-sig"><a href="example-module.html#foo" class="summary-sig-name">foo</a>(<span class="summary-sig-arg">var1</span>,
-        <span class="summary-sig-arg">var2</span>,
-        <span class="summary-sig-arg">long_var_name</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">hi</code><code class="variable-quote">'</code></span>)</span><br />
-      One-line summary or signature.</td>
-          <td align="right" valign="top">
-            <span class="codelink"><a href="example-pysrc.html#foo">source&nbsp;code</a></span>
-            
-          </td>
-        </tr>
-      </table>
-      
-    </td>
-  </tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-      <table width="100%" cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td><span class="summary-sig"><a href="example-module.html#newfunc" class="summary-sig-name">newfunc</a>()</span><br />
-      Do nothing.</td>
-          <td align="right" valign="top">
-            <span class="codelink"><a href="example-pysrc.html#newfunc">source&nbsp;code</a></span>
-            
-          </td>
-        </tr>
-      </table>
-      
-    </td>
-  </tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-      <table width="100%" cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td><span class="summary-sig"><a href="example-module.html#otherfunc" class="summary-sig-name">otherfunc</a>()</span><br />
-      Do nothing.</td>
-          <td align="right" valign="top">
-            <span class="codelink"><a href="example-pysrc.html#otherfunc">source&nbsp;code</a></span>
-            
-          </td>
-        </tr>
-      </table>
-      
-    </td>
-  </tr>
-</table>
-<!-- ==================== FUNCTION DETAILS ==================== -->
-<a name="section-FunctionDetails"></a>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="table-header">
-  <td colspan="2" class="table-header">
-    <table border="0" cellpadding="0" cellspacing="0" width="100%">
-      <tr valign="top">
-        <td align="left"><span class="table-header">Function Details</span></td>
-        <td align="right" valign="top"
-         ><span class="options">[<a href="#section-FunctionDetails"
-         class="privatelink" onclick="toggle_private();"
-         >hide private</a>]</span></td>
-      </tr>
-    </table>
-  </td>
-</tr>
-</table>
-<a name="foo"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <table width="100%" cellpadding="0" cellspacing="0" border="0">
-  <tr valign="top"><td>
-  <h3 class="epydoc"><span class="sig"><span class="sig-name">foo</span>(<span class="sig-arg">var1</span>,
-        <span class="sig-arg">var2</span>,
-        <span class="sig-arg">long_var_name</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">hi</code><code class="variable-quote">'</code></span>)</span>
-  </h3>
-  </td><td align="right" valign="top"
-    ><span class="codelink"><a href="example-pysrc.html#foo">source&nbsp;code</a></span>&nbsp;
-    </td>
-  </table>
-  
-  <p>One-line summary or signature.</p>
-<p>Several sentences providing an extended description. You can put
-text in mono-spaced type like so: <tt class="rst-docutils literal"><span class="pre">var</span></tt>.</p>
-<p><em>Parameters</em>:</p>
-<blockquote>
-<dl class="rst-docutils">
-<dt>var1 <span class="classifier-delimiter">:</span> <span class="rst-classifier">{array_like}</span></dt>
-<dd>Array_like means all those objects -- lists, nested lists, etc. --
-that can be converted to an array.</dd>
-<dt>var2 <span class="classifier-delimiter">:</span> <span class="rst-classifier">{integer}</span></dt>
-<dd>Write out the full type</dd>
-<dt>long_variable_name <span class="classifier-delimiter">:</span> <span class="rst-classifier">{'hi', 'ho'}, optional</span></dt>
-<dd>Choices in brackets, default first when optional.</dd>
-</dl>
-</blockquote>
-<p><em>Returns</em>:</p>
-<blockquote>
-<dl class="rst-docutils">
-<dt>named <span class="classifier-delimiter">:</span> <span class="rst-classifier">{type}</span></dt>
-<dd>Explanation</dd>
-<dt>list</dt>
-<dd>Explanation</dd>
-<dt>of</dt>
-<dd>Explanation</dd>
-<dt>outputs</dt>
-<dd>even more explaining</dd>
-</dl>
-</blockquote>
-<p><em>Other Parameters</em>:</p>
-<blockquote>
-<dl class="rst-docutils">
-<dt>only_seldom_used_keywords <span class="classifier-delimiter">:</span> <span class="rst-classifier">type</span></dt>
-<dd>Explanation</dd>
-<dt>common_parametrs_listed_above <span class="classifier-delimiter">:</span> <span class="rst-classifier">type</span></dt>
-<dd>Explanation</dd>
-</dl>
-</blockquote>
-<p><em>See Also</em>:</p>
-<blockquote>
-<p><a href="example-module.html#otherfunc" class="link">otherfunc</a> : relationship (optional)</p>
-<p><a href="example-module.html#newfunc" class="link">newfunc</a> : relationship (optional)</p>
-</blockquote>
-<p><em>Notes</em></p>
-<blockquote>
-<p>Notes about the implementation algorithm (if needed).</p>
-<p>This can have multiple paragraphs as can all sections.</p>
-</blockquote>
-<p><em>Examples</em></p>
-<blockquote>
-<p>examples in doctest format</p>
-<pre class="py-doctest">
-<span class="py-prompt">&gt;&gt;&gt; </span>a=[1,2,3]
-<span class="py-prompt">&gt;&gt;&gt; </span>[x + 3 <span class="py-keyword">for</span> x <span class="py-keyword">in</span> a]
-<span class="py-output">[4, 5, 6]</span></pre>
-</blockquote>
-  <dl class="fields">
-  </dl>
-</td></tr></table>
-</div>
-<a name="newfunc"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <table width="100%" cellpadding="0" cellspacing="0" border="0">
-  <tr valign="top"><td>
-  <h3 class="epydoc"><span class="sig"><span class="sig-name">newfunc</span>()</span>
-  </h3>
-  </td><td align="right" valign="top"
-    ><span class="codelink"><a href="example-pysrc.html#newfunc">source&nbsp;code</a></span>&nbsp;
-    </td>
-  </table>
-  
-  <p>Do nothing.</p>
-<p>I never saw a purple cow.</p>
-  <dl class="fields">
-  </dl>
-</td></tr></table>
-</div>
-<a name="otherfunc"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
-       cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
-  <table width="100%" cellpadding="0" cellspacing="0" border="0">
-  <tr valign="top"><td>
-  <h3 class="epydoc"><span class="sig"><span class="sig-name">otherfunc</span>()</span>
-  </h3>
-  </td><td align="right" valign="top"
-    ><span class="codelink"><a href="example-pysrc.html#otherfunc">source&nbsp;code</a></span>&nbsp;
-    </td>
-  </table>
-  
-  <p>Do nothing.</p>
-<p>I never hope to see one.</p>
-  <dl class="fields">
-  </dl>
-</td></tr></table>
-</div>
-<br />
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table border="0" cellpadding="0" cellspacing="0" width="100%%">
-  <tr>
-    <td align="left" class="footer">
-    Generated by Epydoc 3.0beta1 on Sun Sep 23 13:30:28 2007
-    </td>
-    <td align="right" class="footer">
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
-    </td>
-  </tr>
-</table>
-
-<script type="text/javascript">
-  <!--
-  // Private objects are initially displayed (because if
-  // javascript is turned off then we want them to be
-  // visible); but by default, we want to hide them.  So hide
-  // them unless we have a cookie that says to show them.
-  checkCookie()
-  // -->
-</script>
-  
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/example-module.html (from rev 4111, trunk/numpy/doc/html/example-module.html)

Deleted: branches/numpy.scons/numpy/doc/html/example-pysrc.html
===================================================================
--- trunk/numpy/doc/html/example-pysrc.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/example-pysrc.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,208 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>example</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">
-      <span class="breadcrumbs">
-        Module&nbsp;example
-      </span>
-    </td>
-    <td>
-      <table cellpadding="0" cellspacing="0">
-        <!-- hide/show private -->
-        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
-    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
-        <tr><td align="right"><span class="options"
-            >[<a href="frames.html" target="_top">frames</a
-            >]&nbsp;|&nbsp;<a href="example-pysrc.html"
-            target="_top">no&nbsp;frames</a>]</span></td></tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<h1 class="epydoc">Source Code for <a href="example-module.html">Module example</a></h1>
-<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-docstring">"""This is the docstring for the example.py module.  Modules names should</tt> </tt>
-<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-docstring">have short, all-lowercase names.  The module name may have underscores if</tt> </tt>
-<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">this improves readability.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">Every module should have a docstring at the very top of the file.  The</tt> </tt>
-<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">module's docstring may extend over multiple lines.  If your docstring does</tt> </tt>
-<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">extend over multiple lines, the closing three quotation marks must be on</tt> </tt>
-<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">a line by itself, preferably preceeded by a blank line.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt>                      <tt class="py-comment"># standard library imports first</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> <tt class="py-keyword">as</tt> <tt class="py-name">np</tt>             <tt class="py-comment"># related third party imports next</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">scipy</tt> <tt class="py-keyword">as</tt> <tt class="py-name">sp</tt>             <tt class="py-comment"># imports should be at the top of the module</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">matplotlib</tt> <tt class="py-keyword">as</tt> <tt class="py-name">mpl</tt>       <tt class="py-comment"># imports should usually be on separate lines</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-name">__docformat__</tt> <tt class="py-op">=</tt> <tt class="py-string">"restructuredtext en"</tt> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"> </tt>
-<a name="foo"></a><div id="foo-def"><a name="L22"></a><tt class="py-lineno"> 22</tt> <a class="py-toggle" href="#" id="foo-toggle" onclick="return toggle('foo');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="example-module.html#foo">foo</a><tt class="py-op">(</tt><tt class="py-param">var1</tt><tt class="py-op">,</tt> <tt class="py-param">var2</tt><tt class="py-op">,</tt> <tt class="py-param">long_var_name</tt><tt class="py-op">=</tt><tt class="py-string">'hi'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
-</div><div id="foo-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="foo-expanded"><a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-docstring">"""One-line summary or signature.</tt> </tt>
-<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-docstring">    Several sentences providing an extended description. You can put</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-docstring">    text in mono-spaced type like so: ``var``.</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-docstring">    *Parameters*:</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-docstring">        var1 : {array_like}</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-docstring">            Array_like means all those objects -- lists, nested lists, etc. --</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-docstring">            that can be converted to an array.</tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-docstring">        var2 : {integer}</tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-docstring">            Write out the full type</tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-docstring">        long_variable_name : {'hi', 'ho'}, optional</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-docstring">            Choices in brackets, default first when optional.</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">    *Returns*:</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">        named : {type}</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">            Explanation</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-docstring">        list</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-docstring">            Explanation</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-docstring">        of</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-docstring">            Explanation</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-docstring">        outputs</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-docstring">            even more explaining</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">    *Other Parameters*:</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"><tt class="py-docstring">        only_seldom_used_keywords : type</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-docstring">            Explanation</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-docstring">        common_parametrs_listed_above : type</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring">            Explanation</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">    *See Also*:</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">        `otherfunc` : relationship (optional)</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-docstring">        `newfunc` : relationship (optional)</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-docstring">    *Notes*</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-docstring">        Notes about the implementation algorithm (if needed).</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">        This can have multiple paragraphs as can all sections.</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-docstring">    *Examples*</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-docstring">        examples in doctest format</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; a=[1,2,3]</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-docstring">        &gt;&gt;&gt; [x + 3 for x in a]</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-docstring">        [4, 5, 6]</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
-<a name="newfunc"></a><div id="newfunc-def"><a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="newfunc-toggle" onclick="return toggle('newfunc');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="example-module.html#newfunc">newfunc</a><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
-</div><div id="newfunc-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="newfunc-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-docstring">"""Do nothing.</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-docstring">    I never saw a purple cow.</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
-<a name="otherfunc"></a><div id="otherfunc-def"><a name="L91"></a><tt class="py-lineno"> 91</tt> <a class="py-toggle" href="#" id="otherfunc-toggle" onclick="return toggle('otherfunc');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="example-module.html#otherfunc">otherfunc</a><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
-</div><div id="otherfunc-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="otherfunc-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-docstring">"""Do nothing.</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-docstring">    I never hope to see one.</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"> </tt><script type="text/javascript">
-<!--
-expandto(location.href);
-// -->
-</script>
-</pre>
-<br />
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table border="0" cellpadding="0" cellspacing="0" width="100%%">
-  <tr>
-    <td align="left" class="footer">
-    Generated by Epydoc 3.0beta1 on Sun Sep 23 13:30:28 2007
-    </td>
-    <td align="right" class="footer">
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
-    </td>
-  </tr>
-</table>
-
-<script type="text/javascript">
-  <!--
-  // Private objects are initially displayed (because if
-  // javascript is turned off then we want them to be
-  // visible); but by default, we want to hide them.  So hide
-  // them unless we have a cookie that says to show them.
-  checkCookie()
-  // -->
-</script>
-  
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/example-pysrc.html (from rev 4111, trunk/numpy/doc/html/example-pysrc.html)

Deleted: branches/numpy.scons/numpy/doc/html/frames.html
===================================================================
--- trunk/numpy/doc/html/frames.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/frames.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-          "DTD/xhtml1-frameset.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
-  <frameset rows="30%,70%">
-    <frame src="toc.html" name="moduleListFrame"
-           id="moduleListFrame" />
-    <frame src="toc-everything.html" name="moduleFrame"
-           id="moduleFrame" />
-  </frameset>
-  <frame src="example-module.html" name="mainFrame" id="mainFrame" />
-</frameset>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/frames.html (from rev 4111, trunk/numpy/doc/html/frames.html)

Deleted: branches/numpy.scons/numpy/doc/html/help.html
===================================================================
--- trunk/numpy/doc/html/help.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/help.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,268 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Help</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="example-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">&nbsp;</td>
-    <td>
-      <table cellpadding="0" cellspacing="0">
-        <!-- hide/show private -->
-        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
-    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
-        <tr><td align="right"><span class="options"
-            >[<a href="frames.html" target="_top">frames</a
-            >]&nbsp;|&nbsp;<a href="help.html"
-            target="_top">no&nbsp;frames</a>]</span></td></tr>
-      </table>
-    </td>
-  </tr>
-</table>
-
-<h1 class="epydoc"> API Documentation </h1>
-
-<p> This document contains the API (Application Programming Interface)
-documentation for this project.  Documentation for the Python
-objects defined by the project is divided into separate pages for each
-package, module, and class.  The API documentation also includes two
-pages containing information about the project as a whole: a trees
-page, and an index page.  </p>
-
-<h2> Object Documentation </h2>
-
-  <p>Each <strong>Package Documentation</strong> page contains: </p>
-  <ul>
-    <li> A description of the package. </li>
-    <li> A list of the modules and sub-packages contained by the
-    package.  </li>
-    <li> A summary of the classes defined by the package. </li>
-    <li> A summary of the functions defined by the package. </li>
-    <li> A summary of the variables defined by the package. </li>
-    <li> A detailed description of each function defined by the
-    package. </li>
-    <li> A detailed description of each variable defined by the
-    package. </li>
-  </ul>
-  
-  <p>Each <strong>Module Documentation</strong> page contains:</p>
-  <ul>
-    <li> A description of the module. </li>
-    <li> A summary of the classes defined by the module. </li>
-    <li> A summary of the functions defined by the module. </li>
-    <li> A summary of the variables defined by the module. </li>
-    <li> A detailed description of each function defined by the
-    module. </li>
-    <li> A detailed description of each variable defined by the
-    module. </li>
-  </ul>
-  
-  <p>Each <strong>Class Documentation</strong> page contains: </p>
-  <ul>
-    <li> A class inheritance diagram. </li>
-    <li> A list of known subclasses. </li>
-    <li> A description of the class. </li>
-    <li> A summary of the methods defined by the class. </li>
-    <li> A summary of the instance variables defined by the class. </li>
-    <li> A summary of the class (static) variables defined by the
-    class. </li> 
-    <li> A detailed description of each method defined by the
-    class. </li>
-    <li> A detailed description of each instance variable defined by the
-    class. </li> 
-    <li> A detailed description of each class (static) variable defined
-    by the class. </li> 
-  </ul>
-
-<h2> Project Documentation </h2>
-
-  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>
-  <ul>
-    <li> The <em>module hierarchy</em> lists every package and module, with
-    modules grouped into packages.  At the top level, and within each
-    package, modules and sub-packages are listed alphabetically. </li>
-    <li> The <em>class hierarchy</em> lists every class, grouped by base
-    class.  If a class has more than one base class, then it will be
-    listed under each base class.  At the top level, and under each base
-    class, classes are listed alphabetically. </li>
-  </ul>
-  
-  <p> The <strong>Index</strong> page contains indices of terms and
-  identifiers: </p>
-  <ul>
-    <li> The <em>term index</em> lists every term indexed by any object's
-    documentation.  For each term, the index provides links to each
-    place where the term is indexed. </li>
-    <li> The <em>identifier index</em> lists the (short) name of every package,
-    module, class, method, function, variable, and parameter.  For each
-    identifier, the index provides a short description, and a link to
-    its documentation. </li>
-  </ul>
-
-<h2> The Table of Contents </h2>
-
-<p> The table of contents occupies the two frames on the left side of
-the window.  The upper-left frame displays the <em>project
-contents</em>, and the lower-left frame displays the <em>module
-contents</em>: </p>
-
-<table class="help summary" border="1" cellspacing="0" cellpadding="3">
-  <tr style="height: 30%">
-    <td align="center" style="font-size: small">
-       Project<br />Contents<hr />...</td>
-    <td align="center" style="font-size: small" rowspan="2" width="70%">
-      API<br />Documentation<br />Frame<br /><br /><br />
-    </td>
-  </tr>
-  <tr>
-    <td align="center" style="font-size: small">
-      Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;
-    </td>
-  </tr>
-</table><br />
-
-<p> The <strong>project contents frame</strong> contains a list of all packages
-and modules that are defined by the project.  Clicking on an entry
-will display its contents in the module contents frame.  Clicking on a
-special entry, labeled "Everything," will display the contents of
-the entire project. </p>
-
-<p> The <strong>module contents frame</strong> contains a list of every
-submodule, class, type, exception, function, and variable defined by a
-module or package.  Clicking on an entry will display its
-documentation in the API documentation frame.  Clicking on the name of
-the module, at the top of the frame, will display the documentation
-for the module itself. </p>
-
-<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top
-navigation bar can be used to control whether the table of contents is
-displayed or not. </p>
-
-<h2> The Navigation Bar </h2>
-
-<p> A navigation bar is located at the top and bottom of every page.
-It indicates what type of page you are currently viewing, and allows
-you to go to related pages.  The following table describes the labels
-on the navigation bar.  Note that not some labels (such as
-[Parent]) are not displayed on all pages. </p>
-
-<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
-<tr class="summary">
-  <th>Label</th>
-  <th>Highlighted when...</th>
-  <th>Links to...</th>
-</tr>
-  <tr><td valign="top"><strong>[Parent]</strong></td>
-      <td valign="top"><em>(never highlighted)</em></td>
-      <td valign="top"> the parent of the current package </td></tr>
-  <tr><td valign="top"><strong>[Package]</strong></td>
-      <td valign="top">viewing a package</td>
-      <td valign="top">the package containing the current object
-      </td></tr>
-  <tr><td valign="top"><strong>[Module]</strong></td>
-      <td valign="top">viewing a module</td>
-      <td valign="top">the module containing the current object
-      </td></tr> 
-  <tr><td valign="top"><strong>[Class]</strong></td>
-      <td valign="top">viewing a class </td>
-      <td valign="top">the class containing the current object</td></tr>
-  <tr><td valign="top"><strong>[Trees]</strong></td>
-      <td valign="top">viewing the trees page</td>
-      <td valign="top"> the trees page </td></tr>
-  <tr><td valign="top"><strong>[Index]</strong></td>
-      <td valign="top">viewing the index page</td>
-      <td valign="top"> the index page </td></tr>
-  <tr><td valign="top"><strong>[Help]</strong></td>
-      <td valign="top">viewing the help page</td>
-      <td valign="top"> the help page </td></tr>
-</table>
-
-<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below
-the top navigation bar can be used to control whether documentation
-for private objects is displayed.  Private objects are usually defined
-as objects whose (short) names begin with a single underscore, but do
-not end with an underscore.  For example, "<code>_x</code>",
-"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
-are private objects; but "<code>re.sub</code>",
-"<code>__init__</code>", and "<code>type_</code>" are not.  However,
-if a module defines the "<code>__all__</code>" variable, then its
-contents are used to decide which objects are private. </p>
-
-<p> A timestamp below the bottom navigation bar indicates when each
-page was last updated. </p>
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="example-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table border="0" cellpadding="0" cellspacing="0" width="100%%">
-  <tr>
-    <td align="left" class="footer">
-    Generated by Epydoc 3.0beta1 on Sun Sep 23 13:30:28 2007
-    </td>
-    <td align="right" class="footer">
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
-    </td>
-  </tr>
-</table>
-
-<script type="text/javascript">
-  <!--
-  // Private objects are initially displayed (because if
-  // javascript is turned off then we want them to be
-  // visible); but by default, we want to hide them.  So hide
-  // them unless we have a cookie that says to show them.
-  checkCookie()
-  // -->
-</script>
-  
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/help.html (from rev 4111, trunk/numpy/doc/html/help.html)

Deleted: branches/numpy.scons/numpy/doc/html/identifier-index.html
===================================================================
--- trunk/numpy/doc/html/identifier-index.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/identifier-index.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Identifier Index</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="example-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">&nbsp;</td>
-    <td>
-      <table cellpadding="0" cellspacing="0">
-        <!-- hide/show private -->
-        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
-    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
-        <tr><td align="right"><span class="options"
-            >[<a href="frames.html" target="_top">frames</a
-            >]&nbsp;|&nbsp;<a href="identifier-index.html"
-            target="_top">no&nbsp;frames</a>]</span></td></tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table border="0" width="100%">
-<tr valign="bottom"><td>
-<h1 class="epydoc">Identifier Index</h1>
-</td><td>
-[
-  A
-  B
-  C
-  D
- <a href="#E">E</a>
- <a href="#F">F</a>
-  G
-  H
-  I
-  J
-  K
-  L
-  M
- <a href="#N">N</a>
- <a href="#O">O</a>
-  P
-  Q
-  R
-  S
-  T
-  U
-  V
-  W
-  X
-  Y
-  Z
-  _
-]
-</td></table>
-<table border="0" width="100%">
-<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="E">E</a></h2></td>
-<td valign="top">
-<table class="link-index" width="100%" border="1">
-<tr>
-<td width="33%" class="link-index"><a href="example-module.html">example</a></td>
-<td width="33%" class="link-index">&nbsp;</td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
-</table>
-</td></tr>
-<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="F">F</a></h2></td>
-<td valign="top">
-<table class="link-index" width="100%" border="1">
-<tr>
-<td width="33%" class="link-index"><a href="example-module.html#foo">foo()</a><br />
-<span class="index-where">(in&nbsp;<a href="example-module.html">example</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
-</table>
-</td></tr>
-<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="N">N</a></h2></td>
-<td valign="top">
-<table class="link-index" width="100%" border="1">
-<tr>
-<td width="33%" class="link-index"><a href="example-module.html#newfunc">newfunc()</a><br />
-<span class="index-where">(in&nbsp;<a href="example-module.html">example</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
-</table>
-</td></tr>
-<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="O">O</a></h2></td>
-<td valign="top">
-<table class="link-index" width="100%" border="1">
-<tr>
-<td width="33%" class="link-index"><a href="example-module.html#otherfunc">otherfunc()</a><br />
-<span class="index-where">(in&nbsp;<a href="example-module.html">example</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
-</table>
-</td></tr>
-</table>
-<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="example-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table border="0" cellpadding="0" cellspacing="0" width="100%%">
-  <tr>
-    <td align="left" class="footer">
-    Generated by Epydoc 3.0beta1 on Sun Sep 23 13:30:28 2007
-    </td>
-    <td align="right" class="footer">
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
-    </td>
-  </tr>
-</table>
-
-<script type="text/javascript">
-  <!--
-  // Private objects are initially displayed (because if
-  // javascript is turned off then we want them to be
-  // visible); but by default, we want to hide them.  So hide
-  // them unless we have a cookie that says to show them.
-  checkCookie()
-  // -->
-</script>
-  
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/identifier-index.html (from rev 4111, trunk/numpy/doc/html/identifier-index.html)

Deleted: branches/numpy.scons/numpy/doc/html/index.html
===================================================================
--- trunk/numpy/doc/html/index.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/index.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-          "DTD/xhtml1-frameset.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
-  <frameset rows="30%,70%">
-    <frame src="toc.html" name="moduleListFrame"
-           id="moduleListFrame" />
-    <frame src="toc-everything.html" name="moduleFrame"
-           id="moduleFrame" />
-  </frameset>
-  <frame src="example-module.html" name="mainFrame" id="mainFrame" />
-</frameset>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/index.html (from rev 4111, trunk/numpy/doc/html/index.html)

Deleted: branches/numpy.scons/numpy/doc/html/module-tree.html
===================================================================
--- trunk/numpy/doc/html/module-tree.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/module-tree.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Module Hierarchy</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="example-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
-  <tr valign="top">
-    <td width="100%">&nbsp;</td>
-    <td>
-      <table cellpadding="0" cellspacing="0">
-        <!-- hide/show private -->
-        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
-    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
-        <tr><td align="right"><span class="options"
-            >[<a href="frames.html" target="_top">frames</a
-            >]&nbsp;|&nbsp;<a href="module-tree.html"
-            target="_top">no&nbsp;frames</a>]</span></td></tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<h1 class="epydoc">Module Hierarchy</h1>
-<ul class="nomargin-top">
-    <li> <strong class="uidlink"><a href="example-module.html">example</a></strong>: <em class="summary">This is the docstring for the example.py module.</em>    </li>
-</ul>
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
-       bgcolor="#a0c0ff" cellspacing="0">
-  <tr valign="middle">
-  <!-- Home link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="example-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Tree link -->
-      <th bgcolor="#70b0f0" class="navbar-select"
-          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Index link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
-  <!-- Help link -->
-      <th>&nbsp;&nbsp;&nbsp;<a
-        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
-      <th class="navbar" width="100%"></th>
-  </tr>
-</table>
-<table border="0" cellpadding="0" cellspacing="0" width="100%%">
-  <tr>
-    <td align="left" class="footer">
-    Generated by Epydoc 3.0beta1 on Sun Sep 23 13:30:28 2007
-    </td>
-    <td align="right" class="footer">
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
-    </td>
-  </tr>
-</table>
-
-<script type="text/javascript">
-  <!--
-  // Private objects are initially displayed (because if
-  // javascript is turned off then we want them to be
-  // visible); but by default, we want to hide them.  So hide
-  // them unless we have a cookie that says to show them.
-  checkCookie()
-  // -->
-</script>
-  
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/module-tree.html (from rev 4111, trunk/numpy/doc/html/module-tree.html)

Deleted: branches/numpy.scons/numpy/doc/html/redirect.html
===================================================================
--- trunk/numpy/doc/html/redirect.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/redirect.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,38 +0,0 @@
-<html><head><title>Epydoc Redirect Page</title>
-<meta http-equiv="cache-control" content="no-cache" />
-<meta http-equiv="expires" content="0" />
-<meta http-equiv="pragma" content="no-cache" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-<body>
-<script type="text/javascript">
-<!--
-var pages = ["example-m"];
-var dottedName = get_anchor();
-if (dottedName) {
-    var target = redirect_url(dottedName);
-    if (target) window.location.replace(target);
-}
-// -->
-</script>
-
-<h3>Epydoc Auto-redirect page</h3>
-
-<p>When javascript is enabled, this page will redirect URLs of
-the form <tt>redirect.html#<i>dotted.name</i></tt> to the
-documentation for the object with the given fully-qualified
-dotted name.</p>
-<p><a id="message"> &nbsp; </a></p>
-
-<script type="text/javascript">
-<!--
-if (dottedName) {
-    var msg = document.getElementById("message");
-    msg.innerHTML = "No documentation found for <tt>"+
-                    dottedName+"</tt>";
-}
-// -->
-</script>
-
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/redirect.html (from rev 4111, trunk/numpy/doc/html/redirect.html)

Deleted: branches/numpy.scons/numpy/doc/html/toc-everything.html
===================================================================
--- trunk/numpy/doc/html/toc-everything.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/toc-everything.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Everything</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<h1 class="toc">Everything</h1>
-<hr />
-  <h2 class="toc">All Functions</h2>
-    <a target="mainFrame" href="example-module.html#foo"
-     >example.foo</a><br />    <a target="mainFrame" href="example-module.html#newfunc"
-     >example.newfunc</a><br />    <a target="mainFrame" href="example-module.html#otherfunc"
-     >example.otherfunc</a><br /><hr />
-<span class="options">[<a href="javascript:void(0);" class="privatelink"
-    onclick="toggle_private();">hide&nbsp;private</a>]</span>
-
-<script type="text/javascript">
-  <!--
-  // Private objects are initially displayed (because if
-  // javascript is turned off then we want them to be
-  // visible); but by default, we want to hide them.  So hide
-  // them unless we have a cookie that says to show them.
-  checkCookie()
-  // -->
-</script>
-  
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/toc-everything.html (from rev 4111, trunk/numpy/doc/html/toc-everything.html)

Deleted: branches/numpy.scons/numpy/doc/html/toc-example-module.html
===================================================================
--- trunk/numpy/doc/html/toc-example-module.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/toc-example-module.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>example</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<h1 class="toc">Module example</h1>
-<hr />
-  <h2 class="toc">Functions</h2>
-    <a target="mainFrame" href="example-module.html#foo"
-     >foo</a><br />    <a target="mainFrame" href="example-module.html#newfunc"
-     >newfunc</a><br />    <a target="mainFrame" href="example-module.html#otherfunc"
-     >otherfunc</a><br /><hr />
-<span class="options">[<a href="javascript:void(0);" class="privatelink"
-    onclick="toggle_private();">hide&nbsp;private</a>]</span>
-
-<script type="text/javascript">
-  <!--
-  // Private objects are initially displayed (because if
-  // javascript is turned off then we want them to be
-  // visible); but by default, we want to hide them.  So hide
-  // them unless we have a cookie that says to show them.
-  checkCookie()
-  // -->
-</script>
-  
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/toc-example-module.html (from rev 4111, trunk/numpy/doc/html/toc-example-module.html)

Deleted: branches/numpy.scons/numpy/doc/html/toc.html
===================================================================
--- trunk/numpy/doc/html/toc.html	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/doc/html/toc.html	2007-09-24 08:30:19 UTC (rev 4112)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Table of Contents</title>
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />
-  <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
-      alink="#204080">
-<h1 class="toc">Table&nbsp;of&nbsp;Contents</h1>
-<hr />
-  <a target="moduleFrame" href="toc-everything.html">Everything</a>
-  <br />
-  <h2 class="toc">Modules</h2>
-    <a target="moduleFrame" href="toc-example-module.html"
-     onclick="setFrame('toc-example-module.html','example-module.html');"     >example</a><br /><hr />
-  <span class="options">[<a href="javascript:void(0);" class="privatelink"
-    onclick="toggle_private();">hide&nbsp;private</a>]</span>
-
-<script type="text/javascript">
-  <!--
-  // Private objects are initially displayed (because if
-  // javascript is turned off then we want them to be
-  // visible); but by default, we want to hide them.  So hide
-  // them unless we have a cookie that says to show them.
-  checkCookie()
-  // -->
-</script>
-  
-</body>
-</html>

Copied: branches/numpy.scons/numpy/doc/html/toc.html (from rev 4111, trunk/numpy/doc/html/toc.html)

Modified: branches/numpy.scons/numpy/lib/src/_compiled_base.c
===================================================================
--- branches/numpy.scons/numpy/lib/src/_compiled_base.c	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/lib/src/_compiled_base.c	2007-09-24 08:30:19 UTC (rev 4112)
@@ -287,6 +287,7 @@
         Py_DECREF(amask);
         Py_DECREF(avals);
         PyDataMem_FREE(zero);
+        Py_DECREF(ainput);
         Py_INCREF(Py_None);
         return Py_None;
     }

Modified: branches/numpy.scons/numpy/lib/tests/test_twodim_base.py
===================================================================
--- branches/numpy.scons/numpy/lib/tests/test_twodim_base.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/lib/tests/test_twodim_base.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -133,6 +133,9 @@
         for k in range(0,13,4):
             assert_equal(rot90(a,k=k),b4)
 
+    def check_axes(self):
+        a = ones((50,40,3))
+        assert_equal(rot90(a).shape,(40,50,3))
 
 class test_histogram2d(NumpyTestCase):
     def check_simple(self):

Modified: branches/numpy.scons/numpy/lib/twodim_base.py
===================================================================
--- branches/numpy.scons/numpy/lib/twodim_base.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/lib/twodim_base.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -36,9 +36,9 @@
         raise ValueError, "Input must >= 2-d."
     k = k % 4
     if k == 0: return m
-    elif k == 1: return fliplr(m).transpose()
+    elif k == 1: return fliplr(m).swapaxes(0,1)
     elif k == 2: return fliplr(flipud(m))
-    else: return fliplr(m.transpose())  # k==3
+    else: return fliplr(m.swapaxes(0,1))  # k==3
 
 def eye(N, M=None, k=0, dtype=float):
     """ eye returns a N-by-M 2-d array where the  k-th diagonal is all ones,

Modified: branches/numpy.scons/numpy/linalg/linalg.py
===================================================================
--- branches/numpy.scons/numpy/linalg/linalg.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/linalg/linalg.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -20,7 +20,7 @@
         intc, single, double, csingle, cdouble, inexact, complexfloating, \
         newaxis, ravel, all, Inf, dot, add, multiply, identity, sqrt, \
         maximum, flatnonzero, diagonal, arange, fastCopyAndTranspose, sum, \
-        isfinite
+        isfinite, size
 from numpy.lib import triu
 from numpy.linalg import lapack_lite
 
@@ -126,6 +126,11 @@
         if not (isfinite(a).all()):
             raise LinAlgError, "Array must not contain infs or NaNs"
 
+def _assertNonEmpty(*arrays):
+    for a in arrays:
+        if size(a) == 0:
+            raise LinAlgError("Arrays cannot be empty")
+
 # Linear equations
 
 def tensorsolve(a, b, axes=None):
@@ -718,6 +723,7 @@
     """
     a, wrap = _makearray(a)
     _assertRank2(a)
+    _assertNonEmpty(a)
     m, n = a.shape
     t, result_t = _commonType(a)
     real_t = _linalgRealType(t)
@@ -783,6 +789,7 @@
     rcond of the largest.
     """
     a, wrap = _makearray(a)
+    _assertNonEmpty(a)
     a = a.conjugate()
     u, s, vt = svd(a, 0)
     m = u.shape[0]

Modified: branches/numpy.scons/numpy/linalg/tests/test_linalg.py
===================================================================
--- branches/numpy.scons/numpy/linalg/tests/test_linalg.py	2007-09-24 07:16:44 UTC (rev 4111)
+++ branches/numpy.scons/numpy/linalg/tests/test_linalg.py	2007-09-24 08:30:19 UTC (rev 4112)
@@ -4,7 +4,7 @@
 from numpy.testing import *
 set_package_path()
 from numpy import array, single, double, csingle, cdouble, dot, identity, \
-        multiply
+        multiply, atleast_2d
 from numpy import linalg
 restore_path()
 
@@ -37,6 +37,15 @@
         b = array([2.+1j, 1.+2j], dtype=cdouble)
         self.do(a, b)
 
+    def check_empty(self):
+        a = atleast_2d(array([], dtype = double))
+        b = atleast_2d(array([], dtype = double))
+        try:
+            self.do(a, b)
+            raise AssertionError("%s should fail with empty matrices", self.__name__[5:])
+        except linalg.LinAlgError, e:
+            pass
+
 class test_solve(LinalgTestCase):
     def do(self, a, b):
         x = linalg.solve(a, b)



More information about the Numpy-svn mailing list