(self, section, key)
| 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) |
no test coverage detected