Project editing and testing configuration bumpf
This commit is contained in:
parent
4011c1fa47
commit
2e4b981aa7
8 changed files with 139 additions and 0 deletions
25
.editorconfig
Normal file
25
.editorconfig
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Defines coding style rules for most editors and IDEs
|
||||||
|
# See: https://editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.{json,html,xml,yml,yaml}]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.csv]
|
||||||
|
end_of_line = crlf
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[Makefile]
|
||||||
|
indent_style = tab
|
||||||
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Logs, data, and other cruft
|
||||||
|
*~
|
||||||
|
.~lock*#
|
||||||
|
\#*
|
||||||
|
.\#*
|
||||||
|
*.log
|
||||||
|
*.pyc
|
||||||
|
__pycache__
|
||||||
|
/.idea
|
||||||
|
|
||||||
|
# Tests and metrics
|
||||||
|
/junit.xml
|
||||||
|
/.coverage
|
||||||
|
/coverage.xml
|
||||||
|
/.pytest_cache
|
||||||
|
/.tox/
|
||||||
|
|
||||||
|
# Virtual environments
|
||||||
|
/venv/
|
||||||
|
/.venv/
|
||||||
30
.pre-commit-config.yaml
Normal file
30
.pre-commit-config.yaml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
fail_fast: false
|
||||||
|
repos:
|
||||||
|
# Are we accidentally committing secrets, keys, credentials, etc.?
|
||||||
|
- repo: https://github.com/gitleaks/gitleaks
|
||||||
|
rev: v8.18.4
|
||||||
|
hooks:
|
||||||
|
- id: gitleaks
|
||||||
|
|
||||||
|
# Check for simple quick low-hanging fruit
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v4.6.0
|
||||||
|
hooks:
|
||||||
|
# Does it parse?
|
||||||
|
- id: check-ast
|
||||||
|
- id: check-json
|
||||||
|
- id: check-toml
|
||||||
|
- id: check-yaml
|
||||||
|
# Have we accidentally left merge markers in?
|
||||||
|
- id: check-merge-conflict
|
||||||
|
# Fix BOM, EOF whitespace
|
||||||
|
- id: fix-byte-order-marker
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
|
||||||
|
# Auto-format some non-controversial PEP8 things
|
||||||
|
- repo: https://github.com/hhatto/autopep8
|
||||||
|
rev: v2.3.1
|
||||||
|
hooks:
|
||||||
|
- id: autopep8
|
||||||
|
# fix blank lines between classes and funcs, import lines, trailing whitespace
|
||||||
|
args: ["--in-place", "--select", "E301,E302,E303,E304,E305,E306,E401,W291,W292,W293,W391"]
|
||||||
17
pyproject.toml
Normal file
17
pyproject.toml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
[tool.isort]
|
||||||
|
line_length = 120
|
||||||
|
multi_line_output = 5
|
||||||
|
skip = []
|
||||||
|
known_first_party = []
|
||||||
|
|
||||||
|
[tool.flake8]
|
||||||
|
max_line_length = 120
|
||||||
|
exclude = [ ".git", ".pytest_cache", ".tox", ".venv", "__pycache__", "venv" ]
|
||||||
|
ignore = [ "E501" ]
|
||||||
|
|
||||||
|
[tool.autopep8]
|
||||||
|
max_line_length = 120
|
||||||
|
ignore = [ "E501" ]
|
||||||
|
in-place = true
|
||||||
|
recursive = true
|
||||||
|
aggressive = 3
|
||||||
5
pytest.ini
Normal file
5
pytest.ini
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
[pytest]
|
||||||
|
minversion = 8.0
|
||||||
|
norecursedirs = venv .venv .git *.egg .* build dist
|
||||||
|
python_files = tests.py test_*.py *_tests.py
|
||||||
|
pythonpath = .
|
||||||
13
requirements-dev.txt
Normal file
13
requirements-dev.txt
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
-r requirements.txt
|
||||||
|
|
||||||
|
# Code lint
|
||||||
|
autopep8
|
||||||
|
flake8
|
||||||
|
|
||||||
|
# Security
|
||||||
|
pre-commit
|
||||||
|
|
||||||
|
# Unit tests and coverage
|
||||||
|
pytest
|
||||||
|
pytest-cov
|
||||||
|
tox
|
||||||
0
requirements.txt
Normal file
0
requirements.txt
Normal file
29
tox.ini
Normal file
29
tox.ini
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
[tox]
|
||||||
|
envlist = py38,py310
|
||||||
|
skipsdist = True
|
||||||
|
skip_missing_interpreters = True
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
skip_install = True
|
||||||
|
setenv =
|
||||||
|
PYTHONPATH = {toxroot}
|
||||||
|
commands =
|
||||||
|
pytest --cov=. --junitxml=junit.xml --cov-report xml:coverage.xml --cov-report term {posargs}
|
||||||
|
deps =
|
||||||
|
-r requirements-dev.txt
|
||||||
|
|
||||||
|
[coverage:run]
|
||||||
|
|
||||||
|
[coverage:report]
|
||||||
|
skip_empty = True
|
||||||
|
sort = miss
|
||||||
|
|
||||||
|
[flake8]
|
||||||
|
max_line_length = 120
|
||||||
|
ignore = E501
|
||||||
|
exclude =
|
||||||
|
.git,
|
||||||
|
.pytest_cache,
|
||||||
|
.tox,
|
||||||
|
.venv,
|
||||||
|
venv
|
||||||
Loading…
Add table
Reference in a new issue