MCPcopy Create free account
hub / github.com/numpy/numpy / get_paths

Method get_paths

numpy/distutils/system_info.py:880–933  ·  view source on GitHub ↗
(self, section, key)

Source from the content-addressed store, hash-verified

878 return copy.deepcopy(res)
879
880 def get_paths(self, section, key):
881 dirs = self.cp.get(section, key).split(os.pathsep)
882 env_var = self.dir_env_var
883 if env_var:
884 if is_sequence(env_var):
885 e0 = env_var[-1]
886 for e in env_var:
887 if e in os.environ:
888 e0 = e
889 break
890 if not env_var[0] == e0:
891 log.info('Setting %s=%s' % (env_var[0], e0))
892 env_var = e0
893 if env_var and env_var in os.environ:
894 d = os.environ[env_var]
895 if d == 'None':
896 log.info('Disabled %s: %s',
897 self.__class__.__name__, '(%s is None)'
898 % (env_var,))
899 return []
900 if os.path.isfile(d):
901 dirs = [os.path.dirname(d)] + dirs
902 l = getattr(self, '_lib_names', [])
903 if len(l) == 1:
904 b = os.path.basename(d)
905 b = os.path.splitext(b)[0]
906 if b[:3] == 'lib':
907 log.info('Replacing _lib_names[0]==%r with %r' \
908 % (self._lib_names[0], b[3:]))
909 self._lib_names[0] = b[3:]
910 else:
911 ds = d.split(os.pathsep)
912 ds2 = []
913 for d in ds:
914 if os.path.isdir(d):
915 ds2.append(d)
916 for dd in ['include', 'lib']:
917 d1 = os.path.join(d, dd)
918 if os.path.isdir(d1):
919 ds2.append(d1)
920 dirs = ds2 + dirs
921 default_dirs = self.cp.get(self.section, key).split(os.pathsep)
922 dirs.extend(default_dirs)
923 ret = []
924 for d in dirs:
925 if len(d) > 0 and not os.path.isdir(d):
926 warnings.warn('Specified path %s is invalid.' % d, stacklevel=2)
927 continue
928
929 if d not in ret:
930 ret.append(d)
931
932 log.debug('( %s = %s )', key, ':'.join(ret))
933 return ret
934
935 def get_lib_dirs(self, key='library_dirs'):
936 return self.get_paths(self.section, key)

Callers 4

get_lib_dirsMethod · 0.95
get_runtime_lib_dirsMethod · 0.95
get_include_dirsMethod · 0.95
get_src_dirsMethod · 0.95

Calls 6

is_sequenceFunction · 0.90
infoMethod · 0.80
warnMethod · 0.80
splitMethod · 0.45
getMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected