From ec2e69bf91419b6fa1d8a179a2474ebf4137933a Mon Sep 17 00:00:00 2001
From: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date: Wed, 11 May 2022 16:41:11 +0200
Subject: [PATCH] Bootstrap pre-commit hooks and other repo configs

---
 .gitignore              | 12 ++++++++++++
 .pre-commit-config.yaml | 31 +++++++++++++++++++++++++++++++
 pyproject.toml          | 11 +++++++++++
 setup.cfg               |  8 ++++++++
 4 files changed, 62 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .pre-commit-config.yaml
 create mode 100644 pyproject.toml
 create mode 100644 setup.cfg

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..03468dcfc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+*.pyc
+*.sw?
+*~
+/.coverage
+/.coverage.*
+.eggs/
+__pycache__/
+/build
+/dist
+/.tox
+.hypothesis/
+.mypy_cache/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 000000000..0470475f1
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,31 @@
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v4.1.0
+    hooks:
+      - id: trailing-whitespace
+      - id: check-json
+      - id: check-yaml
+
+  - repo: https://gitlab.com/pycqa/flake8
+    rev: 4.0.1
+    hooks:
+      - id: flake8
+        additional_dependencies: [flake8-bugbear==22.3.23]
+
+  - repo: https://github.com/codespell-project/codespell
+    rev: v2.1.0
+    hooks:
+      - id: codespell
+        name: Check source code spelling
+        args: [-L crate]
+        stages: [commit]
+
+  - repo: https://github.com/PyCQA/isort
+    rev: 5.10.1
+    hooks:
+      - id: isort
+
+  - repo: https://github.com/python/black
+    rev: 22.3.0
+    hooks:
+      - id: black
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 000000000..69b8f4dd8
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,11 @@
+[tool.black]
+target-version = ['py37']
+
+[tool.isort]
+multi_line_output = 3
+include_trailing_comma = true
+force_grid_wrap = 0
+use_parentheses = true
+ensure_newline_before_comments = true
+line_length = 88
+force_sort_within_sections = true
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 000000000..2c446b475
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,8 @@
+[flake8]
+# E203: whitespaces before ':' <https://github.com/psf/black/issues/315>
+# E231: missing whitespace after ','
+# E501: line too long, use B950 warning from flake8-bugbear instead
+# W503: line break before binary operator <https://github.com/psf/black/issues/52>
+select = C,E,F,W,B950
+ignore = E203,E231,E501,W503
+max-line-length = 88
-- 
GitLab