summaryrefslogtreecommitdiff
path: root/numpy/core/memmap.py
diff options
context:
space:
mode:
authorTravis Oliphant <oliphant@enthought.com>2006-01-15 08:09:50 +0000
committerTravis Oliphant <oliphant@enthought.com>2006-01-15 08:09:50 +0000
commitd868ba28c1d31faa1b0b1b6684e316ae329bc549 (patch)
treebe55d577e9aeb697e2528eccab4b9c704209e3a7 /numpy/core/memmap.py
parent02f61f06d44bd8f118d9e9727910c77337857857 (diff)
downloadnumpy-d868ba28c1d31faa1b0b1b6684e316ae329bc549.tar.gz
Made dtypedescr name attribute always report bit-width; fixed memmap slicing; Improved documentation of convertfile and convertall in convertcode.py
Diffstat (limited to 'numpy/core/memmap.py')
-rw-r--r--numpy/core/memmap.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/numpy/core/memmap.py b/numpy/core/memmap.py
index 77d5ff552..f4dc0b463 100644
--- a/numpy/core/memmap.py
+++ b/numpy/core/memmap.py
@@ -4,6 +4,7 @@ import mmap
from numeric import uint8, ndarray, dtype
from numerictypes import nbytes
+dtypedescr = dtype
valid_filemodes = ["r", "c", "r+", "w+"]
writeable_filemodes = ["r+","w+"]
@@ -14,9 +15,8 @@ mode_equivalents = {
"write":"w+"
}
-_globalvar = 0
-
class memmap(ndarray):
+ __array_priority__ = -100.0
def __new__(subtype, name, dtype=uint8, mode='r+', offset=0,
shape=None, fortran=0):
global _globalvar
@@ -35,7 +35,7 @@ class memmap(ndarray):
fid.seek(0,2)
flen = fid.tell()
- descr = dtype(dtype)
+ descr = dtypedescr(dtype)
_dbytes = descr.itemsize
if shape is None:
@@ -69,10 +69,8 @@ class memmap(ndarray):
mm = mmap.mmap(fid.fileno(), bytes, access=acc)
- _globalvar = 1
self = ndarray.__new__(subtype, shape, dtype=descr, buffer=mm,
offset=offset, fortran=fortran)
- _globalvar = 0
self._mmap = mm
self._offset = offset
self._mode = mode
@@ -82,9 +80,9 @@ class memmap(ndarray):
return self
def __array_finalize__(self, obj):
- self._mmap = None
- if not _globalvar:
+ if not isinstance(obj, memmap):
raise ValueError, "Cannot create a memmap array that way"
+ self._mmap = None
def sync(self):
self._mmap.flush()