summaryrefslogtreecommitdiff
path: root/numpy/core/memmap.py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2020-12-13 14:14:49 -0700
committerGitHub <noreply@github.com>2020-12-13 14:14:49 -0700
commit3fe2d9d2627fc0f84aeed293ff8afa7c1f08d899 (patch)
tree2ea27fe06a19c39e8d7a5fe2f87cb7e05363247d /numpy/core/memmap.py
parent7d7e446fcbeeff70d905bde2eb0264a797488280 (diff)
parenteff302e5e8678fa17fb3d8156d49eb585b0876d9 (diff)
downloadnumpy-3fe2d9d2627fc0f84aeed293ff8afa7c1f08d899.tar.gz
Merge branch 'master' into fix-issue-10244
Diffstat (limited to 'numpy/core/memmap.py')
-rw-r--r--numpy/core/memmap.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/numpy/core/memmap.py b/numpy/core/memmap.py
index cb025736e..892ad2540 100644
--- a/numpy/core/memmap.py
+++ b/numpy/core/memmap.py
@@ -1,8 +1,8 @@
+from contextlib import nullcontext
+
import numpy as np
from .numeric import uint8, ndarray, dtype
-from numpy.compat import (
- os_fspath, contextlib_nullcontext, is_pathlib_path
-)
+from numpy.compat import os_fspath, is_pathlib_path
from numpy.core.overrides import set_module
__all__ = ['memmap']
@@ -37,7 +37,10 @@ class memmap(ndarray):
This class may at some point be turned into a factory function
which returns a view into an mmap buffer.
- Delete the memmap instance to close the memmap file.
+ Flush the memmap instance to write the changes to the file. Currently there
+ is no API to close the underlying ``mmap``. It is tricky to ensure the
+ resource is actually closed, since it may be shared between different
+ memmap instances.
Parameters
@@ -97,7 +100,7 @@ class memmap(ndarray):
flush
Flush any changes in memory to file on disk.
When you delete a memmap object, flush is called first to write
- changes to disk before removing the object.
+ changes to disk.
See also
@@ -109,7 +112,7 @@ class memmap(ndarray):
The memmap object can be used anywhere an ndarray is accepted.
Given a memmap ``fp``, ``isinstance(fp, numpy.ndarray)`` returns
``True``.
-
+
Memory-mapped files cannot be larger than 2GB on 32-bit systems.
When a memmap causes a file to be created or extended beyond its
@@ -148,9 +151,9 @@ class memmap(ndarray):
>>> fp.filename == path.abspath(filename)
True
- Deletion flushes memory changes to disk before removing the object:
+ Flushes memory changes to disk in order to read them back
- >>> del fp
+ >>> fp.flush()
Load the memmap and verify data was stored:
@@ -220,7 +223,7 @@ class memmap(ndarray):
raise ValueError("shape must be given")
if hasattr(filename, 'read'):
- f_ctx = contextlib_nullcontext(filename)
+ f_ctx = nullcontext(filename)
else:
f_ctx = open(os_fspath(filename), ('r' if mode == 'c' else mode)+'b')