diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2021-07-18 15:13:50 -0400 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2021-07-18 15:13:50 -0400 |
commit | 01f2abe71dc72fdf5b345f4ac3086a94b23efd15 (patch) | |
tree | 83bee7a6d933efe516f549423bff38f0d303a760 /setuptools/config.py | |
parent | 5c24e780b83e4557ca6e9e48b468e6f4a82695c9 (diff) | |
parent | aa5ef507f3bf78092abfff7c6a2cf55a9b2fb2dc (diff) | |
download | python-setuptools-git-01f2abe71dc72fdf5b345f4ac3086a94b23efd15.tar.gz |
Merge branch 'main' into change-docs-theme
Diffstat (limited to 'setuptools/config.py')
-rw-r--r-- | setuptools/config.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/setuptools/config.py b/setuptools/config.py index af3a3bcb..44de7cf5 100644 --- a/setuptools/config.py +++ b/setuptools/config.py @@ -520,6 +520,11 @@ class ConfigMetadataHandler(ConfigHandler): 'obsoletes': parse_list, 'classifiers': self._get_parser_compound(parse_file, parse_list), 'license': exclude_files_parser('license'), + 'license_file': self._deprecated_config_handler( + exclude_files_parser('license_file'), + "The license_file parameter is deprecated, " + "use license_files instead.", + DeprecationWarning), 'license_files': parse_list, 'description': parse_file, 'long_description': parse_file, @@ -574,6 +579,7 @@ class ConfigOptionsHandler(ConfigHandler): parse_list_semicolon = partial(self._parse_list, separator=';') parse_bool = self._parse_bool parse_dict = self._parse_dict + parse_cmdclass = self._parse_cmdclass return { 'zip_safe': parse_bool, @@ -594,6 +600,22 @@ class ConfigOptionsHandler(ConfigHandler): 'entry_points': self._parse_file, 'py_modules': parse_list, 'python_requires': SpecifierSet, + 'cmdclass': parse_cmdclass, + } + + def _parse_cmdclass(self, value): + def resolve_class(qualified_class_name): + idx = qualified_class_name.rfind('.') + class_name = qualified_class_name[idx+1:] + pkg_name = qualified_class_name[:idx] + + module = __import__(pkg_name) + + return getattr(module, class_name) + + return { + k: resolve_class(v) + for k, v in self._parse_dict(value).items() } def _parse_packages(self, value): |