From 34f9d813004d859cdcc8b923c99802d3f933df17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Kundr=C3=A1t?= Date: Wed, 24 Jan 2024 18:51:29 +0100 Subject: [PATCH] build: specify dependencies directly in setup.cfg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In tox v4, "reuse of environments" was disabled [1]. This is then later explained [2] to refer to exactly that thing which we were using for inheriting the dependencies from the top-level testenv all the way to the docs build. That's why the docs build in GitHub CI started failing. IMHO, The Correct Way™ of specifying what dependencies are used for which feature are the so-called "extra dependencies". Once they are in place (in a future commit), it will be possible to install gnpy via, e.g., `pip install oopt-gnpy[docs]`. In order to make this happen, let's move all the dependencies from a more-or-less ad-hoc collection of files to this declarative approach right in setup.cfg. As a result, one can also remove that duplication of dependencies in docs requirements. [1] https://tox.wiki/en/4.11.4/upgrading.html#reuse-of-environments [2] https://tox.wiki/en/4.11.4/upgrading.html#packaging-configuration-and-inheritance Change-Id: I34aa0c71e993b39e2b805a7de40e133b4d290318 Fixes: 47c89626 fix docs requirements --- .github/workflows/main.yml | 6 ++---- .readthedocs.yml | 1 - docs/requirements.txt | 12 ------------ requirements.txt | 11 ----------- setup.cfg | 32 ++++++++++++++++++++++++++++++++ tests/requirements.txt | 7 ------- tox.ini | 4 ---- 7 files changed, 34 insertions(+), 39 deletions(-) delete mode 100644 docs/requirements.txt delete mode 100644 requirements.txt delete mode 100644 tests/requirements.txt diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 672cc45c7..b0f834566 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -106,8 +106,7 @@ jobs: with: python-version: ${{ matrix.python_version }} - run: | - pip install -r tests/requirements.txt - pip install --editable . + pip install --editable .[test] pytest -vv strategy: fail-fast: false @@ -136,8 +135,7 @@ jobs: with: python-version: ${{ matrix.python_version }} - run: | - pip install -r tests/requirements.txt - pip install --editable . + pip install --editable .[test] pytest -vv strategy: fail-fast: false diff --git a/.readthedocs.yml b/.readthedocs.yml index 0ee7e5c8d..aad577b4f 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -2,4 +2,3 @@ build: image: latest python: version: 3.8 -requirements_file: docs/requirements.txt diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 0059c8177..000000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,12 +0,0 @@ -alabaster>=0.7.12,<1 -docutils>=0.17.1,<1 -matplotlib>=3.7.3,<4 -myst-parser>=0.16.1,<1 -networkx>=3.1,<4 -numpy>=1.24.4,<2 -Pygments>=2.11.2,<3 -rstcheck -scipy>=1.10.1,<2 -Sphinx>=5.3.0,<6 -sphinxcontrib-bibtex>=2.4.1,<3 -xlrd>=1.2.0,<2 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 1c7a0043e..000000000 --- a/requirements.txt +++ /dev/null @@ -1,11 +0,0 @@ -# matplotlib 3.8 removed support for Python 3.8 -matplotlib>=3.7.3,<4 -# networkx 3.2 removed support for Python 3.8 -networkx>=3.1,<4 -# numpy 1.25 removed support for Python 3.8 -numpy>=1.24.4,<2 -pbr>=6.0.0,<7 -# scipy 1.11 removed support for Python 3.8 -scipy>=1.10.1,<2 -# xlrd 2.x removed support for .xlsx, it's only .xls now -xlrd>=1.2.0,<2 diff --git a/setup.cfg b/setup.cfg index 029ddf53d..07d0c89cd 100644 --- a/setup.cfg +++ b/setup.cfg @@ -49,3 +49,35 @@ console_scripts = gnpy-transmission-example = gnpy.tools.cli_examples:transmission_main_example gnpy-path-request = gnpy.tools.cli_examples:path_requests_run gnpy-convert-xls = gnpy.tools.convert:_do_convert + +[options] +install_requires = + # matplotlib 3.8 removed support for Python 3.8 + matplotlib>=3.7.3,<4 + # networkx 3.2 removed support for Python 3.8 + networkx>=3.1,<4 + # numpy 1.25 removed support for Python 3.8 + numpy>=1.24.4,<2 + pbr>=6.0.0,<7 + # scipy 1.11 removed support for Python 3.8 + scipy>=1.10.1,<2 + # xlrd 2.x removed support for .xlsx, it's only .xls now + xlrd>=1.2.0,<2 + +[options.extras_require] +test = + build>=1.0.3,<2 + pytest>=7.4.3,<8 + # pandas 2.1 removed support for Python 3.8 + pandas>=2.0.3,<3 + # flake v6 killed the --diff option + flake8>=5.0.4,<6 + +docs = + alabaster>=0.7.12,<1 + docutils>=0.17.1,<1 + myst-parser>=0.16.1,<1 + Pygments>=2.11.2,<3 + rstcheck + Sphinx>=5.3.0,<6 + sphinxcontrib-bibtex>=2.4.1,<3 diff --git a/tests/requirements.txt b/tests/requirements.txt deleted file mode 100644 index 72676e39d..000000000 --- a/tests/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -build>=1.0.3,<2 -pytest>=7.4.3,<8 -# pandas 2.1 removed support for Python 3.8 -pandas>=2.0.3,<3 - -# flake v6 killed the --diff option -flake8>=5.0.4,<6 diff --git a/tox.ini b/tox.ini index 1b8c67dac..84bbbcbb8 100644 --- a/tox.ini +++ b/tox.ini @@ -3,8 +3,6 @@ skipsdist = True [testenv] deps = - -r{toxinidir}/requirements.txt - -r{toxinidir}/tests/requirements.txt cover: pytest-cov linters: flake8 linters: pep8-naming @@ -22,8 +20,6 @@ commands = python -m build [testenv:docs] -deps = - -r{toxinidir}/docs/requirements.txt allowlist_externals = /bin/sh commands =