setup.py/setup.cfg установить все дополнения - PullRequest
1 голос
/ 05 мая 2020

Я ищу возможность «унаследовать» другие дополнения в setup.cfg, например:

[options.extras_require]
all =
    <doc>
    <dev>
    <test>
doc =
    sphinx
dev =
    dvc
    twine  # for publishing
    <test>
test =
    flake8
    pytest
    pytest-cov
    coverage
    pytest-shutil
    pytest-virtualenv
    pytest-fixture-config
    pytest-xdist

Я sh, чтобы установить все дополнения, запустив

pip install PACKAGE[all]

1 Ответ

1 голос
/ 05 мая 2020

Я полагаю, что setuptools использует configparser BasicInterpolation при разборе файлов setup.cfg. Таким образом, вы можете использовать это в своих интересах, чтобы сделать что-то вроде следующего:

[options.extras_require]
all =
    %(doc)s
    %(dev)s
    %(test)s
doc =
    sphinx
dev =
    dvc
    twine  # for publishing
    %(test)s
test =
    flake8
    pytest
    pytest-cov
    coverage
    pytest-shutil
    pytest-virtualenv
    pytest-fixture-config
    pytest-xdist

Создайте sdist, а затем посмотрите файл *.egg-info/requires.txt для вашего проекта, чтобы узнать результат. Поскольку test включен в all дважды, один раз прямо и один раз косвенно через dev, в all будут некоторые повторы, но, скорее всего, это не должно быть большой проблемой.

...