diff --git a/.github/ISSUE_TEMPLATE/dataset-request.yml b/.github/ISSUE_TEMPLATE/dataset-request.yml
index 13c144225..e633e7063 100644
--- a/.github/ISSUE_TEMPLATE/dataset-request.yml
+++ b/.github/ISSUE_TEMPLATE/dataset-request.yml
@@ -10,7 +10,7 @@ body:
attributes:
value: |
Fill in this form if you want that junifer includes a new dataset.
-
+
As a reminder, junifer supports customising the `PatternDataGrabber` and `PatternDataladDatagrabber` which should work in most cases.
If it is a widely used dataset, we could alternatevely create a new _DataGrabber_ that simplifies the usage, by already configuring the underlying `PatternDataGrabber` or `PatternDataladDatagrabber`
diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml
index ac5b6c0c1..68235bb80 100644
--- a/.github/workflows/ci-docs.yml
+++ b/.github/workflows/ci-docs.yml
@@ -47,4 +47,4 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
flags: docs
- if: success() && matrix.python-version == 3.10
\ No newline at end of file
+ if: success() && matrix.python-version == 3.10
diff --git a/.gitignore b/.gitignore
index 94ac529c9..78053c736 100644
--- a/.gitignore
+++ b/.gitignore
@@ -134,4 +134,4 @@ cython_debug/
junifer/_version.py
scratch/
-junifer_jobs/
\ No newline at end of file
+junifer_jobs/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 000000000..9212d6c9d
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,48 @@
+ci:
+ autofix_prs: false
+ autoupdate_commit_msg: "chore: bump pre-commit repositories"
+
+repos:
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v4.4.0
+ hooks:
+ - id: check-ast
+ - id: check-docstring-first
+ - id: check-executables-have-shebangs
+ - id: check-merge-conflict
+ - id: check-yaml
+ - id: check-toml
+ - id: debug-statements
+ - id: end-of-file-fixer
+ - id: trailing-whitespace
+ args: [--markdown-linebreak-ext=md]
+ - repo: https://github.com/abravalheri/validate-pyproject
+ rev: v0.12.2
+ hooks:
+ - id: validate-pyproject
+ - repo: https://github.com/psf/black
+ rev: 23.3.0
+ hooks:
+ - id: black
+ exclude: ^(docs/|examples/|tools/)
+ args: [--check]
+ - repo: https://github.com/charliermarsh/ruff-pre-commit
+ rev: v0.0.267
+ hooks:
+ - id: ruff
+ exclude: ^(__init__.py)
+ args: [--format, grouped, --show-fixes]
+ - repo: https://github.com/codespell-project/codespell
+ rev: v2.2.4
+ hooks:
+ - id: codespell
+ exclude: ^(.github/|docs/)
+ args: [--config, tox.ini]
+ - repo: https://github.com/pre-commit/pygrep-hooks
+ rev: v1.10.0
+ hooks:
+ - id: python-no-eval
+ - id: python-no-log-warn
+ - id: rst-backticks
+ - id: rst-directive-colons
+ - id: rst-inline-touching-normal
diff --git a/LICENSE.md b/LICENSE.md
index 6124431c9..4ef32f083 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -648,4 +648,4 @@ specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a “copyright disclaimer” for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
-<