Release notes for LLNLPython Distribution

Send bug reports to

See the file README for information on sources, documentation, etc.

For package-specific information see the README files for each package:

Release 11 (April 1, 1999)

New Installation Procedure, Unix and Windows

The install script (Tools/ has been modified so that it uses the new .pth facility in Python 1.5. This tool should work on Windows also. Instead of distributing a Windows installer we will distribute a zip file and have the user run this script. While not as elegant as an installer, it avoids all the problems we have had with the installer.

Each package is installed in its own directory and a .pth file is created so that this directory is included in the python path. The include files are installed inside the Python include directory in their own file. Thus, after installation extension packages wishing to use arrayobject.h in their build can use a statement like:

#include "numeric/arrayobject.h"

rather than further modify their compiler include path. A change to RNG has been made to illustrate this capability.


Fixed error introduced in version 10 that caused segv.


Attribute  information facility added

The array object now has an attribute named "attributes". This field can be set or examined by using it as an attribute in a Python statement (x.attributes). The purpose of this field is to make it easy for an application to attach information to an array that might be used by another part of the software, such as a label for a curve, an indication of units, etc. Its use and meaning is completely up to the user. It is copied by copy.copy, but not much else. If otherwise not set it is None.

Sample usage

from Numeric import *
def show(x):
    "Display an array with a label"
    if x.attributes:
        print x.attributes['label'], ' (', x.attributes['units'], ')'
    print x

x = arange(5) * 0.5
x.attributes={"label": "x", "units", "cm"}

Note to extension writers

This field is initialized to Py_None. This field is copied by PyArray_CopyArray. On object deallocation, its reference count is decremented. Assignment to the attributes field in Python is done reference-count correctly; if using this facility from C, you are responsible for this. The recommended sequence to set attributes to foo is:

object->attributes = foo;

Never set attributes to NULL, but rather back to Py_None.

Users wishing to create a version of NumPy that does not have this facility may do so by defining NUMPY_NOATTRIBUTES before compiling.

Bug fixes

Added change to array_zeros to fix problem in indices introduced by change in release 10. This was causing fromfunction to fail.
Several warning errors in arrayobject.h and multiarrayobject.h were eliminated.
Fixed bug in searchsorted with patch from Travis Oliphant. Can now determine the type of result based on both inputs.

Release 10 (March 18, 1999)


Fixed to handle tetrahedra, and to allow data of either type 'd' or type 'b'.
Fixed so that data type will not be changed.
Numerous changes in slice2 and _slice2_part in gistCmodule to support data values of either type 'b' or type 'd'.
Bug fixes in gistCmodule: make sure result arrays are returned as Py_None in case a slice is empty; clear the OWN_DATA pointer in a PyArrayObject when the pointer has been given to a newly created object.
The color card specification for a 3D object will now overrule the specification (if any) for the Graph containing the object.
The default style sheet for a Graph3d will be "". A Graph3D style specification will be overruled by "" if a color bar is requested, otherwise uncritically accepted.


Fixed a bug in the NumPy exponentiation routine which was causing a SEGV when an array of Python longs was an argument.
Fixed memory leak in array to list conversion. (Jonah Lee)
Fixed segv if you attempt to delete an array element. (Warren Focke)
Fixed bug in convolve in multiarray.c (Travis Oliphant)
Added missing #!... to in Numerical (Pearu Peterson, who also reported Gist probs).
Fixed documentation of clip. (Andrew Sterian)
Changed array so that it will accept a typecode of None. This allows simplifications to indices, asarray, and UserArray. (Keith Junius)
Performance improvement for (Konrad Hinsen)


Added import_array to PyPDB module init routine.


Release 8 (December 28, 1998)

Fixes to and in Numerical
Changed to match 1.5.2's definition of the type table. Assume this would no longer compile with previous Pythons.

Release 7 (December 21, 1998)

Release 6 (October 7, 1998)

Release 5 (August 20, 1998)

Release 4 (June 19, 1998)

Release 3 (June 12, 1998)

Release 2 (June 5, 1998)




Release 1 (May, 1998)

This release contains all the Python extension packages currently maintained by LLNL. It supercedes the previous system of distributing our work as part of a complete Python source tree.