diff options
author | idle sign <idlesign@yandex.ru> | 2016-12-07 20:21:31 +0700 |
---|---|---|
committer | idle sign <idlesign@yandex.ru> | 2016-12-07 20:21:31 +0700 |
commit | a9350f32d3eeef3a1c53b243e763e60e211b72f6 (patch) | |
tree | 76961552c885204d1cff6687d7a9396a7736d66f /setuptools/config.py | |
parent | 43af23dcff02695ef77b862d2266d10019b7c67c (diff) | |
download | external_python_setuptools-a9350f32d3eeef3a1c53b243e763e60e211b72f6.tar.gz external_python_setuptools-a9350f32d3eeef3a1c53b243e763e60e211b72f6.tar.bz2 external_python_setuptools-a9350f32d3eeef3a1c53b243e763e60e211b72f6.zip |
`read_configuration` now chdirs and tests for file.
Diffstat (limited to 'setuptools/config.py')
-rw-r--r-- | setuptools/config.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/setuptools/config.py b/setuptools/config.py index b2c0cea3..889dc683 100644 --- a/setuptools/config.py +++ b/setuptools/config.py @@ -5,7 +5,7 @@ import sys from collections import defaultdict from functools import partial -from distutils.errors import DistutilsOptionError +from distutils.errors import DistutilsOptionError, DistutilsFileError from setuptools.py26compat import import_module from setuptools.extern.six import string_types @@ -23,6 +23,15 @@ def read_configuration(filepath, find_others=False): """ from setuptools.dist import Distribution, _Distribution + filepath = os.path.abspath(filepath) + + if not os.path.isfile(filepath): + raise DistutilsFileError( + 'Configuration file %s does not exist.' % filepath) + + current_directory = os.getcwd() + os.chdir(os.path.dirname(filepath)) + dist = Distribution() filenames = dist.find_config_files() if find_others else [] @@ -33,6 +42,8 @@ def read_configuration(filepath, find_others=False): handlers = parse_configuration(dist, dist.command_options) + os.chdir(current_directory) + return configuration_to_dict(handlers) |