diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..63a0458c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,17 @@ +repos: + - repo: https://github.com/psf/black + rev: 22.1.0 + hooks: + - id: black + - repo: https://github.com/PyCQA/isort + rev: 5.9.3 + hooks: + - id: isort + - repo: https://github.com/PyCQA/flake8 + rev: 4.0.1 + hooks: + - id: flake8 + - repo: https://github.com/conorfalvey/check_pdb_hook + rev: 0.0.9 + hooks: + - id: check_pdb_hook diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..16e3dfea --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,25 @@ +; SHARED on https://pad.cas.cat/usody-devicehub-contributing + +# Contributing to devicehub + +## Writing code + +### Coding style + +#### Python style +- Unless otherwise specified, follow [PEP 8](https://www.python.org/dev/peps/pep-0008). Use [flake8](https://pypi.org/project/flake8/) to check for problems in this area. +- Use [isort](https://github.com/PyCQA/isort#readme) to automate import sorting. + +To automatize this work just configure `pre-commit` hooks in your development environment: +```bash +# on your virtual environment +pip install -r requirements-dev.txt +pre-commit install +``` + +#### HTML (templates) +- Template file names should be all lowercase, using underscores instead of camelCase. + + Do this: `device_detail.html` + + Don't do this: `DeviceDetail.html`, `Device-detail.html` diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..442cc5af --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,6 @@ +[tool.black] +skip-string-normalization = true +target-version = ['py38'] + +[tool.isort] +multi_line_output = 4 diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 00000000..02778f7d --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,4 @@ +black +isort +flake8 +pre-commit diff --git a/tox.ini b/tox.ini new file mode 100644 index 00000000..d9fa1946 --- /dev/null +++ b/tox.ini @@ -0,0 +1,10 @@ +[flake8] +count = True +exclude = + migrations + resources # exclude code that will be deprecated + tests # exclude code that will be deprecated +max-complexity = 10 +max-line-length = 120 +show-source = True +statistics = True