diff --git a/flit/common.py b/flit/common.py index 13a888bd..a3ae12d5 100644 --- a/flit/common.py +++ b/flit/common.py @@ -229,9 +229,6 @@ class Metadata: metadata_version = "2.1" - # deprecated, we use “extras_require: {'dev': ...}” for it - dev_requires = () - def __init__(self, data): self.name = data.pop('name') self.version = data.pop('version') @@ -240,7 +237,9 @@ def __init__(self, data): extras_require = data.pop('extras_require', {}) dev_requires = data.pop('dev_requires', None) if dev_requires is not None: - log.warning('“dev_requires = ...” is obsolete. Use “extras_require = {"dev" = ...}” instead.') + if 'dev' in extras_require: + raise ValueError('Ambiguity: Encountered dev-requires together with its replacement extras-require.dev.') + log.warning('“dev-requires = ...” is obsolete. Use “extras-require = {"dev" = ...}” instead.') extras_require.setdefault('dev', []).extend(dev_requires) explicit_extras = data.pop('provides_extra', ()) self.provides_extra = list(set(explicit_extras) | extras_require.keys()) diff --git a/tests/samples/dev_requires_with_empty_lines.ini b/tests/samples/dev_requires_with_empty_lines.ini deleted file mode 100644 index 31653d24..00000000 --- a/tests/samples/dev_requires_with_empty_lines.ini +++ /dev/null @@ -1,7 +0,0 @@ -[metadata] -module=module1 -author=Sir Robin -author-email=robin@camelot.uk -home-page=http://github.com/sirrobin/module1 -dev-requires= - foo diff --git a/tests/test_inifile.py b/tests/test_inifile.py index c7d3e5fb..0c5d9521 100644 --- a/tests/test_inifile.py +++ b/tests/test_inifile.py @@ -18,13 +18,9 @@ def test_classifiers_with_space(): """ read_pkg_ini(samples_dir / 'classifiers_with_space.ini') -@pytest.mark.parametrize(('filename', 'key', 'expected'), [ - ('requires_with_empty_lines.ini', 'requires_dist', ['foo', 'bar']), - ('dev_requires_with_empty_lines.ini', 'dev_requires', ['foo']), -]) -def test_requires_with_empty_lines(filename, key, expected): - ini_info = read_pkg_ini(samples_dir / filename) - assert ini_info['metadata'][key] == expected +def test_requires_with_empty_lines(): + ini_info = read_pkg_ini(samples_dir / 'requires_with_empty_lines.ini') + assert ini_info['metadata']['requires_dist'] == ['foo', 'bar'] def test_missing_entrypoints(): with pytest.raises(FileNotFoundError):