summaryrefslogtreecommitdiff
path: root/numpy/compat
diff options
context:
space:
mode:
authorbertrand <bertrand.l3f@gmail.com>2016-06-13 20:53:10 -0400
committerbertrand <bertrand.l3f@gmail.com>2016-07-17 20:20:39 -0400
commita05b65337725072710ee00dd695aa2df47eb5b4e (patch)
tree45da2dda163dbcf299ccefeb3d9f361bec7c6782 /numpy/compat
parenta94fd6122aa30b2cf24757c3e3e826d532c7fe6c (diff)
downloadnumpy-a05b65337725072710ee00dd695aa2df47eb5b4e.tar.gz
MAINT,DOC: add to compat.py3k a function to load modules. Fix some doc for f2py.compile (issue #7683)
Diffstat (limited to 'numpy/compat')
-rw-r--r--numpy/compat/py3k.py61
1 files changed, 59 insertions, 2 deletions
diff --git a/numpy/compat/py3k.py b/numpy/compat/py3k.py
index 992ea50e6..25cc5355c 100644
--- a/numpy/compat/py3k.py
+++ b/numpy/compat/py3k.py
@@ -7,7 +7,7 @@ from __future__ import division, absolute_import, print_function
__all__ = ['bytes', 'asbytes', 'isfileobj', 'getexception', 'strchar',
'unicode', 'asunicode', 'asbytes_nested', 'asunicode_nested',
'asstr', 'open_latin1', 'long', 'basestring', 'sixu',
- 'integer_types', 'is_pathlib_path', 'Path']
+ 'integer_types', 'is_pathlib_path', 'npy_load_module', 'Path']
import sys
try:
@@ -91,9 +91,66 @@ def asunicode_nested(x):
else:
return asunicode(x)
-
def is_pathlib_path(obj):
"""
Check whether obj is a pathlib.Path object.
"""
return Path is not None and isinstance(obj, Path)
+
+if sys.version_info[0] >= 3 and sys.version_info[1] >= 4:
+ def npy_load_module(name, fn, info=None):
+ """
+ Load a module.
+
+ .. versionadded:: 1.11.2
+
+ Parameters
+ ----------
+ name : str
+ Full module name.
+ fn : str
+ Path to module file.
+ info : tuple, optional
+ Only here for backward compatibility with Python 2.*.
+
+ Returns
+ -------
+ mod : module
+
+ """
+ import importlib
+ return importlib.machinery.SourceFileLoader(name, fn).load_module()
+else:
+ def npy_load_module(name, fn, info=None):
+ """
+ Load a module.
+
+ .. versionadded:: 1.11.2
+
+ Parameters
+ ----------
+ name : str
+ Full module name.
+ fn : str
+ Path to module file.
+ info : tuple, optional
+ Information as returned by `imp.find_module`
+ (suffix, mode, type).
+
+ Returns
+ -------
+ mod : module
+
+ """
+ import imp
+ import os
+ if info is None:
+ path = os.path.dirname(fn)
+ fo, fn, info = imp.find_module(name, [path])
+ else:
+ fo = open(fn, info[1])
+ try:
+ mod = imp.load_module(name, fo, fn, info)
+ finally:
+ fo.close()
+ return mod