mirror of
https://github.com/python-kasa/python-kasa.git
synced 2025-08-09 20:24:02 +00:00
Add precommit hooks & tox env to enforce code structure, add azure pipelines
Instead of leveraging hound & travis, add an option for azure pipelines, which may replace the former in the future. This also streamlines the contributing guidelines by: * Adding pre-commit hooks to run isort, black, flake8, mypy * Adding lint environment to allow checks to be run `tox -e lint` This also contains a major cleanup to the SmartStrip handling which was due. After seeing #184 I thought I should push this in as it is for comments before the codebase diverges too much.
This commit is contained in:
34
tox.ini
34
tox.ini
@@ -1,5 +1,5 @@
|
||||
[tox]
|
||||
envlist=py35,py36,py37,flake8
|
||||
envlist=py35,py36,py37,flake8,linting,typing
|
||||
skip_missing_interpreters = True
|
||||
|
||||
[tox:travis]
|
||||
@@ -20,16 +20,31 @@ commands=
|
||||
py.test --cov --cov-config=tox.ini pyHS100
|
||||
|
||||
[testenv:flake8]
|
||||
deps=flake8
|
||||
deps=
|
||||
flake8
|
||||
flake8-docstrings
|
||||
commands=flake8 pyHS100
|
||||
max-line-length=88
|
||||
|
||||
[testenv:typing]
|
||||
skip_install=true
|
||||
deps=mypy
|
||||
commands=mypy --silent-imports pyHS100
|
||||
commands=mypy --ignore-missing-imports pyHS100
|
||||
|
||||
[flake8]
|
||||
exclude = .git,.tox,__pycache__,pyHS100/tests/fakes.py
|
||||
exclude = .git,.tox,__pycache__,pyHS100/tests/newfakes.py,pyHS100/tests/test_fixtures.py
|
||||
max-line-length = 88
|
||||
per-file-ignores =
|
||||
pyHS100/tests/*.py:D100,D101,D102,D103,D104
|
||||
setup.py:D100
|
||||
ignore = D105, D107, E203, E501, W503
|
||||
#ignore = E203, E266, E501, W503, F403, F401
|
||||
#max-complexity = 18
|
||||
#select = B,C,E,F,W,T4,B9
|
||||
|
||||
[testenv:lint]
|
||||
deps = pre-commit
|
||||
skip_install = true
|
||||
commands = pre-commit run --all-files
|
||||
|
||||
[coverage:run]
|
||||
source = pyHS100
|
||||
@@ -43,3 +58,12 @@ exclude_lines =
|
||||
# ignore abstract methods
|
||||
raise NotImplementedError
|
||||
def __repr__
|
||||
|
||||
[isort]
|
||||
multi_line_output=3
|
||||
include_trailing_comma=True
|
||||
force_grid_wrap=0
|
||||
use_parentheses=True
|
||||
line_length=88
|
||||
known_first_party=pyHS100
|
||||
known_third_party=click,deprecation,pytest,setuptools,voluptuous
|
||||
|
Reference in New Issue
Block a user