Skip to content

Commit

Permalink
Move optional dependencies from dev_requirements to pyproject.toml (
Browse files Browse the repository at this point in the history
#239)

* Move optional dependencies from `dev_requirements` to `pyproject.toml`

* black & isort

* ..

* update pylint disable

* ää

* öö

* del

* .

* p

* pylint dis

* rm version file after installation for linting env

* Update tox.ini

* revert experiments

* publisch workflow

* rmv experiments

* ignore version py

* add formatcheck

* test

---------

Co-authored-by: konstantin <[email protected]>
  • Loading branch information
FreddyFox892 and hf-kklein authored Sep 27, 2024
1 parent e69512d commit 8d82d6d
Show file tree
Hide file tree
Showing 18 changed files with 66 additions and 194 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/formatting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r dev_requirements/requirements-formatting.txt
pip install .[formatting]
- name: ${{ matrix.tool }} Code Formatter
run: |
${{ matrix.tool }} . --check
10 changes: 7 additions & 3 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ jobs:
build-n-publish:
name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: [ "3.12" ]
os: [ ubuntu-latest ]
# Specifying a GitHub environment, # Specifying a GitHub environment, which is strongly recommended by PyPI: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
# you have to create an environment in your repository settings and add the environment name here
environment: release
Expand All @@ -45,14 +49,14 @@ jobs:
needs: tests
steps:
- uses: actions/checkout@v4
- name: Set up Python
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r dev_requirements/requirements-packaging.txt
pip install .[test_packaging]
- name: Build wheel and source distributions
run: |
python -m build
Expand Down
2 changes: 0 additions & 2 deletions dev_requirements/requirements-coverage.in

This file was deleted.

9 changes: 0 additions & 9 deletions dev_requirements/requirements-coverage.txt

This file was deleted.

3 changes: 0 additions & 3 deletions dev_requirements/requirements-formatting.in

This file was deleted.

21 changes: 0 additions & 21 deletions dev_requirements/requirements-formatting.txt

This file was deleted.

2 changes: 0 additions & 2 deletions dev_requirements/requirements-linting.in

This file was deleted.

21 changes: 0 additions & 21 deletions dev_requirements/requirements-linting.txt

This file was deleted.

3 changes: 0 additions & 3 deletions dev_requirements/requirements-packaging.in

This file was deleted.

79 changes: 0 additions & 79 deletions dev_requirements/requirements-packaging.txt

This file was deleted.

4 changes: 0 additions & 4 deletions dev_requirements/requirements-tests.in

This file was deleted.

24 changes: 0 additions & 24 deletions dev_requirements/requirements-tests.txt

This file was deleted.

2 changes: 0 additions & 2 deletions dev_requirements/requirements-type_check.in

This file was deleted.

13 changes: 0 additions & 13 deletions dev_requirements/requirements-type_check.txt

This file was deleted.

1 change: 1 addition & 0 deletions domain-specific-terms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# contains 1 lower case word per line which are ignored in the spell_check
30 changes: 30 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,33 @@ dependencies = [
]
dynamic = ["readme", "version"]

[project.optional-dependencies]
coverage = [
"coverage==7.6.1"
]
formatting = [
"black==24.8.0",
"isort==5.13.2"
]
linting = [
"pylint==3.3.0"
]
spellcheck = [
"codespell==2.3.0"
]
test_packaging = [
"build==1.2.2",
"twine==5.1.1"
]
tests = [
"pytest==8.3.3",
"pytest-datafiles==3.0.0",
"pytest-subtests==0.13.1"
]
type_check = [
"mypy==1.11.2"
]

[project.urls]
Changelog = "https://github.com/Hochfrequenz/ebdamame/releases"
Homepage = "https://github.com/Hochfrequenz/ebdamame"
Expand Down Expand Up @@ -59,6 +86,9 @@ source = "vcs"

[tool.hatch.build.hooks.vcs]
version-file = "src/ebdamame/version.py"
template = '''
version = "{version}"
'''

[tool.hatch.build.targets.sdist]
exclude = ["/unittests"]
Expand Down
2 changes: 2 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ charset-normalizer==3.3.2
# via requests
click==8.1.7
# via -r requirements.in
colorama==0.4.6
# via click
idna==3.7
# via requests
lxml==5.2.1
Expand Down
32 changes: 25 additions & 7 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ envlist =
linting
coverage
type_check
formatcheck
skip_missing_interpreters = True
skipsdist = True

Expand All @@ -14,19 +15,19 @@ commands = python -m pip install --upgrade pip
# the tests environment is called by the Github action that runs the unit tests
deps =
-r requirements.txt
-r dev_requirements/requirements-tests.txt
.[tests]
setenv = PYTHONPATH = {toxinidir}/src
commands = python -m pytest --basetemp={envtmpdir} {posargs}

[testenv:linting]
# the linting environment is called by the Github Action that runs the linter
deps =
-r requirements.txt
-r dev_requirements/requirements-linting.txt
.[linting]
# add your fixtures like e.g. pytest_datafiles here
setenv = PYTHONPATH = {toxinidir}/src
commands =
pylint ebdamame
pylint ebdamame --ignore=version.py
pylint main.py
# add single files (ending with .py) or packages here

Expand All @@ -35,18 +36,35 @@ commands =
setenv = PYTHONPATH = {toxinidir}/src
deps =
-r requirements.txt
-r dev_requirements/requirements-type_check.txt
.[type_check]
commands =
mypy --show-error-codes --strict src/ebdamame
mypy --show-error-codes unittests
mypy --show-error-codes main.py
# add single files (ending with .py) or packages here

[testenv:formatcheck]
deps =
.[formatting]
commands =
black . --check
isort . --check

[testenv:spell_check]
# the spellcheck environment checks the code for typos
setenv = PYTHONPATH = {toxinidir}/src
deps =
-r requirements.txt
.[spellcheck]
commands =
codespell --ignore-words=domain-specific-terms.txt src
codespell --ignore-words=domain-specific-terms.txt README.md

[testenv:coverage]
# the coverage environment is called by the Github Action that runs the coverage measurement
deps =
{[testenv:tests]deps}
-r dev_requirements/requirements-coverage.txt
.[coverage]
setenv = PYTHONPATH = {toxinidir}/src
commands =
coverage run -m pytest --basetemp={envtmpdir} {posargs}
Expand All @@ -56,7 +74,7 @@ commands =
[testenv:test_packaging]
skip_install = true
deps =
-r dev_requirements/requirements-packaging.txt
.[test_packaging]
commands =
python -m build
twine check dist/*
Expand All @@ -68,7 +86,7 @@ deps =
{[testenv:linting]deps}
{[testenv:type_check]deps}
{[testenv:coverage]deps}
-r dev_requirements/requirements-formatting.txt
.[formatting]
pip-tools
pre-commit
commands =
Expand Down

0 comments on commit 8d82d6d

Please sign in to comment.