summaryrefslogtreecommitdiff
path: root/numpy/_import_tools.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/_import_tools.py')
-rw-r--r--numpy/_import_tools.py106
1 files changed, 53 insertions, 53 deletions
diff --git a/numpy/_import_tools.py b/numpy/_import_tools.py
index ba9e021c7..3343f6c05 100644
--- a/numpy/_import_tools.py
+++ b/numpy/_import_tools.py
@@ -15,14 +15,14 @@ class PackageLoader(object):
else:
_level = 1
self.parent_frame = frame = sys._getframe(_level)
- self.parent_name = eval('__name__',frame.f_globals,frame.f_locals)
- parent_path = eval('__path__',frame.f_globals,frame.f_locals)
+ self.parent_name = eval('__name__', frame.f_globals, frame.f_locals)
+ parent_path = eval('__path__', frame.f_globals, frame.f_locals)
if isinstance(parent_path, str):
parent_path = [parent_path]
self.parent_path = parent_path
if '__all__' not in frame.f_locals:
- exec('__all__ = []',frame.f_globals,frame.f_locals)
- self.parent_export_names = eval('__all__',frame.f_globals,frame.f_locals)
+ exec('__all__ = []', frame.f_globals, frame.f_locals)
+ self.parent_export_names = eval('__all__', frame.f_globals, frame.f_locals)
self.info_modules = {}
self.imported_packages = []
@@ -32,17 +32,17 @@ class PackageLoader(object):
""" Return list of (package name,info.py file) from parent_path subdirectories.
"""
from glob import glob
- files = glob(os.path.join(parent_path,package_dir,'info.py'))
- for info_file in glob(os.path.join(parent_path,package_dir,'info.pyc')):
+ files = glob(os.path.join(parent_path, package_dir, 'info.py'))
+ for info_file in glob(os.path.join(parent_path, package_dir, 'info.pyc')):
if info_file[:-1] not in files:
files.append(info_file)
info_files = []
for info_file in files:
package_name = os.path.dirname(info_file[len(parent_path)+1:])\
- .replace(os.sep,'.')
+ .replace(os.sep, '.')
if parent_package:
package_name = parent_package + '.' + package_name
- info_files.append((package_name,info_file))
+ info_files.append((package_name, info_file))
info_files.extend(self._get_info_files('*',
os.path.dirname(info_file),
package_name))
@@ -57,7 +57,7 @@ class PackageLoader(object):
if packages is None:
for path in self.parent_path:
- info_files.extend(self._get_info_files('*',path))
+ info_files.extend(self._get_info_files('*', path))
else:
for package_name in packages:
package_dir = os.path.join(*package_name.split('.'))
@@ -73,30 +73,30 @@ class PackageLoader(object):
except ImportError as msg:
self.warn('No scipy-style subpackage %r found in %s. '\
'Ignoring: %s'\
- % (package_name,':'.join(self.parent_path), msg))
+ % (package_name, ':'.join(self.parent_path), msg))
- for package_name,info_file in info_files:
+ for package_name, info_file in info_files:
if package_name in info_modules:
continue
fullname = self.parent_name +'.'+ package_name
if info_file[-1]=='c':
- filedescriptor = ('.pyc','rb',2)
+ filedescriptor = ('.pyc', 'rb', 2)
else:
- filedescriptor = ('.py','U',1)
+ filedescriptor = ('.py', 'U', 1)
try:
info_module = imp.load_module(fullname+'.info',
- open(info_file,filedescriptor[1]),
+ open(info_file, filedescriptor[1]),
info_file,
filedescriptor)
except Exception as msg:
self.error(msg)
info_module = None
- if info_module is None or getattr(info_module,'ignore',False):
- info_modules.pop(package_name,None)
+ if info_module is None or getattr(info_module, 'ignore', False):
+ info_modules.pop(package_name, None)
else:
- self._init_info_modules(getattr(info_module,'depends',[]))
+ self._init_info_modules(getattr(info_module, 'depends', []))
info_modules[package_name] = info_module
return
@@ -107,8 +107,8 @@ class PackageLoader(object):
"""
depend_dict = {}
- for name,info_module in self.info_modules.items():
- depend_dict[name] = getattr(info_module,'depends',[])
+ for name, info_module in self.info_modules.items():
+ depend_dict[name] = getattr(info_module, 'depends', [])
package_names = []
for name in depend_dict.keys():
@@ -165,10 +165,10 @@ class PackageLoader(object):
"""
frame = self.parent_frame
self.info_modules = {}
- if options.get('force',False):
+ if options.get('force', False):
self.imported_packages = []
- self.verbose = verbose = options.get('verbose',-1)
- postpone = options.get('postpone',None)
+ self.verbose = verbose = options.get('verbose', -1)
+ postpone = options.get('postpone', None)
self._init_info_modules(packages or None)
self.log('Imports to %r namespace\n----------------------------'\
@@ -178,13 +178,13 @@ class PackageLoader(object):
if package_name in self.imported_packages:
continue
info_module = self.info_modules[package_name]
- global_symbols = getattr(info_module,'global_symbols',[])
- postpone_import = getattr(info_module,'postpone_import',False)
+ global_symbols = getattr(info_module, 'global_symbols', [])
+ postpone_import = getattr(info_module, 'postpone_import', False)
if (postpone and not global_symbols) \
or (postpone_import and postpone is not None):
continue
- old_object = frame.f_locals.get(package_name,None)
+ old_object = frame.f_locals.get(package_name, None)
cmdstr = 'import '+package_name
if self._execcmd(cmdstr):
@@ -195,7 +195,7 @@ class PackageLoader(object):
new_object = frame.f_locals.get(package_name)
if old_object is not None and old_object is not new_object:
self.warn('Overwriting %s=%s (was %s)' \
- % (package_name,self._obj2repr(new_object),
+ % (package_name, self._obj2repr(new_object),
self._obj2repr(old_object)))
if '.' not in package_name:
@@ -205,10 +205,10 @@ class PackageLoader(object):
if symbol=='*':
symbols = eval('getattr(%s,"__all__",None)'\
% (package_name),
- frame.f_globals,frame.f_locals)
+ frame.f_globals, frame.f_locals)
if symbols is None:
symbols = eval('dir(%s)' % (package_name),
- frame.f_globals,frame.f_locals)
+ frame.f_globals, frame.f_locals)
symbols = [s for s in symbols if not s.startswith('_')]
else:
symbols = [symbol]
@@ -224,11 +224,11 @@ class PackageLoader(object):
continue
if verbose!=-1:
- for s,old_object in old_objects.items():
+ for s, old_object in old_objects.items():
new_object = frame.f_locals[s]
if new_object is not old_object:
self.warn('Overwriting %s=%s (was %s)' \
- % (s,self._obj2repr(new_object),
+ % (s, self._obj2repr(new_object),
self._obj2repr(old_object)))
if symbol=='*':
@@ -238,60 +238,60 @@ class PackageLoader(object):
return
- def _execcmd(self,cmdstr):
+ def _execcmd(self, cmdstr):
""" Execute command in parent_frame."""
frame = self.parent_frame
try:
- exec (cmdstr, frame.f_globals,frame.f_locals)
+ exec (cmdstr, frame.f_globals, frame.f_locals)
except Exception as msg:
- self.error('%s -> failed: %s' % (cmdstr,msg))
+ self.error('%s -> failed: %s' % (cmdstr, msg))
return True
else:
self.log('%s -> success' % (cmdstr))
return
- def _obj2repr(self,obj):
+ def _obj2repr(self, obj):
""" Return repr(obj) with"""
- module = getattr(obj,'__module__',None)
- file = getattr(obj,'__file__',None)
+ module = getattr(obj, '__module__', None)
+ file = getattr(obj, '__file__', None)
if module is not None:
return repr(obj) + ' from ' + module
if file is not None:
return repr(obj) + ' from ' + file
return repr(obj)
- def log(self,mess):
+ def log(self, mess):
if self.verbose>1:
print(str(mess), file=sys.stderr)
- def warn(self,mess):
+ def warn(self, mess):
if self.verbose>=0:
print(str(mess), file=sys.stderr)
- def error(self,mess):
+ def error(self, mess):
if self.verbose!=-1:
print(str(mess), file=sys.stderr)
def _get_doc_title(self, info_module):
""" Get the title from a package info.py file.
"""
- title = getattr(info_module,'__doc_title__',None)
+ title = getattr(info_module, '__doc_title__', None)
if title is not None:
return title
- title = getattr(info_module,'__doc__',None)
+ title = getattr(info_module, '__doc__', None)
if title is not None:
- title = title.lstrip().split('\n',1)[0]
+ title = title.lstrip().split('\n', 1)[0]
return title
return '* Not Available *'
def _format_titles(self,titles,colsep='---'):
display_window_width = 70 # How to determine the correct value in runtime??
- lengths = [len(name)-name.find('.')-1 for (name,title) in titles]+[0]
+ lengths = [len(name)-name.find('.')-1 for (name, title) in titles]+[0]
max_length = max(lengths)
lines = []
- for (name,title) in titles:
+ for (name, title) in titles:
name = name[name.find('.')+1:]
w = max_length - len(name)
words = title.split()
- line = '%s%s %s' % (name,w*' ',colsep)
+ line = '%s%s %s' % (name, w*' ', colsep)
tab = len(line) * ' '
while words:
word = words.pop(0)
@@ -313,14 +313,14 @@ class PackageLoader(object):
titles = []
symbols = []
for package_name, info_module in self.info_modules.items():
- global_symbols = getattr(info_module,'global_symbols',[])
+ global_symbols = getattr(info_module, 'global_symbols', [])
fullname = self.parent_name +'.'+ package_name
note = ''
if fullname not in sys.modules:
note = ' [*]'
- titles.append((fullname,self._get_doc_title(info_module) + note))
+ titles.append((fullname, self._get_doc_title(info_module) + note))
if global_symbols:
- symbols.append((package_name,', '.join(global_symbols)))
+ symbols.append((package_name, ', '.join(global_symbols)))
retstr = self._format_titles(titles) +\
'\n [*] - using a package requires explicit import (see pkgload)'
@@ -329,20 +329,20 @@ class PackageLoader(object):
if symbols:
retstr += """\n\nGlobal symbols from subpackages"""\
"""\n-------------------------------\n""" +\
- self._format_titles(symbols,'-->')
+ self._format_titles(symbols, '-->')
return retstr
class PackageLoaderDebug(PackageLoader):
- def _execcmd(self,cmdstr):
+ def _execcmd(self, cmdstr):
""" Execute command in parent_frame."""
frame = self.parent_frame
- print('Executing',repr(cmdstr),'...', end=' ')
+ print('Executing', repr(cmdstr), '...', end=' ')
sys.stdout.flush()
- exec (cmdstr, frame.f_globals,frame.f_locals)
+ exec (cmdstr, frame.f_globals, frame.f_locals)
print('ok')
sys.stdout.flush()
return
-if int(os.environ.get('NUMPY_IMPORT_DEBUG','0')):
+if int(os.environ.get('NUMPY_IMPORT_DEBUG', '0')):
PackageLoader = PackageLoaderDebug