From 5be2ff50a119fa70d529672fbc97373adab13624 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Tue, 17 Jan 2023 16:08:03 +0200 Subject: [PATCH] Added automatic linting --- .github/workflows/lint.yml | 23 +++++++++++++++++++++++ README.md | 3 +++ pyproject.toml | 17 +++++++++++++++++ requirements_dev.txt | 5 +++++ setup.cfg | 32 ++++++++++++++++++++++++++++++++ setup.py | 4 ++++ tox.ini | 25 +++++++++++++++++++++++++ 7 files changed, 109 insertions(+) create mode 100644 .github/workflows/lint.yml create mode 100644 README.md create mode 100644 pyproject.toml create mode 100644 requirements_dev.txt create mode 100644 setup.cfg create mode 100644 setup.py create mode 100644 tox.ini diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..776c8ea --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,23 @@ +name: Lint +on: + - push + - pull_request +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + python-version: ["3.10"] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox tox-gh-actions + - name: Lint with tox + run: tox diff --git a/README.md b/README.md new file mode 100644 index 0000000..e13b07f --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Kristofers Solo website + +![Lint](https://github.com/kristoferssolo/kristofersxyz/actions/workflows/lint.yml/badge.svg) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..141eb3e --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,17 @@ +[build-system] +requires = ["setuptools>=42.0", "wheel"] +build-backend = "setuptools.build_meta" + +[tool.mypy] +check_untyped_defs = true +disallow_any_generics = true +ignore_missing_imports = true +mypy_path = "kristofersxyz" +no_implicit_optional = true +no_implicit_reexport = true +show_error_codes = true +strict_equality = true +warn_redundant_casts = true +warn_return_any = true +warn_unreachable = true +warn_unused_configs = true diff --git a/requirements_dev.txt b/requirements_dev.txt new file mode 100644 index 0000000..14597cb --- /dev/null +++ b/requirements_dev.txt @@ -0,0 +1,5 @@ +flake8==6.0.0 +mypy==0.991 +pytest-cov==4.0.0 +pytest==7.2.0 +tox==3.27.1 diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..c7c9e26 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,32 @@ +[metadata] +name = kristofersxyz +description = Kristofers Solo website +author = Kristofers Solo +license = MIT +license_files = LICENSE +platforms = unix, linux, osx, cygwin, win32 +classifiers = + Programming Language :: Python :: 3.10 + +[options] +packages = kristofersxyz +install_requires = + Django>=4.1 + +python_requires = >=3.10 +package_dir = =. +zip_safe = no + +[options.extras_require] +testing = + flake8>=6.0.0 + mypy>=0.991 + pytest-cov>=4.0.0 + pytest>=7.2.0 + tox>=3.27.1 + +[options.package_data] +detector = py.typed + +[flake8] +max-line-length = 160 diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..7f1a176 --- /dev/null +++ b/setup.py @@ -0,0 +1,4 @@ +from setuptools import setup + +if __name__ == "__main__": + setup() diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..c5b1b37 --- /dev/null +++ b/tox.ini @@ -0,0 +1,25 @@ +[tox] +minversion = 3.8.0 +envlist = py310, flake8, mypy +isolated_build = true + +[gh-actions] +python = + 3.10: py310, mypy, flake8 + +[testenv] +setenv = + PYTHONPATH = {toxinidir} +deps = + -r{toxinidir}/requirements_dev.txt + +[testenv:flake8] +basepython = python3.10 +deps = flake8 +commands = flake8 kristofersxyz + +[testenv:mypy] +basepython = python3.10 +deps = + -r{toxinidir}/requirements_dev.txt +commands = mypy kristofersxyz