This is an automated email from the ASF dual-hosted git repository.
agrove pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion-python.git
The following commit(s) were added to refs/heads/main by this push:
new 6eb42e7 Pre-commit hooks (#228)
6eb42e7 is described below
commit 6eb42e72fcaeb1a9e18bf7b2c26c749954d3ce7d
Author: Jeremy Dyer <[email protected]>
AuthorDate: Fri Feb 24 08:31:55 2023 -0500
Pre-commit hooks (#228)
* Add bindings for GetIndexedField
* Add pre-commit configuration file
---
.pre-commit-config.yaml | 52 +++++++++++++++++++++++++++++++++++++++++++++++++
README.md | 8 ++++++++
2 files changed, 60 insertions(+)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..3c68053
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+repos:
+ - repo: https://github.com/psf/black
+ rev: 22.3.0
+ hooks:
+ - id: black
+ files: datafusion/.*
+ # Explicitly specify the pyproject.toml at the repo root, not
per-project.
+ args: ["--config", "pyproject.toml", "--line-length", "79",
"--diff", "--check", "."]
+ - repo: https://github.com/PyCQA/flake8
+ rev: 5.0.4
+ hooks:
+ - id: flake8
+ files: datafusion/.*$
+ types: [file]
+ types_or: [python]
+ additional_dependencies: ["flake8-force"]
+ - repo: local
+ hooks:
+ - id: rust-fmt
+ name: Rust fmt
+ description: Run cargo fmt on files included in the commit.
rustfmt should be installed before-hand.
+ entry: cargo fmt --all --
+ pass_filenames: true
+ types: [file, rust]
+ language: system
+ - id: rust-clippy
+ name: Rust clippy
+ description: Run cargo clippy on files included in the commit.
clippy should be installed before-hand.
+ entry: cargo clippy --all-targets --all-features -- -Dclippy::all
-Aclippy::redundant_closure
+ pass_filenames: false
+ types: [file, rust]
+ language: system
+
+default_language_version:
+ python: python3
diff --git a/README.md b/README.md
index d83b78c..923b6be 100644
--- a/README.md
+++ b/README.md
@@ -183,6 +183,14 @@ maturin develop
python -m pytest
```
+### Running & Installing pre-commit hooks
+
+arrow-datafusion-python takes advantage of
(pre-commit)[https://pre-commit.com/] to assist developers in with code linting
to help reduce the number of commits that ultimately fail in CI due to linter
errors. Using the pre-commit hooks is optional for the developer but certainly
helpful for keep PRs clean and concise.
+
+Our pre-commit hooks can be installed by running `pre-commit install` which
will install the configurations in your ARROW_DATAFUSION_PYTHON_ROOT/.github
directory and run each time you perform a commit failing to perform the commit
if an offending lint is found giving you the opportunity to make changes
locally before pushing.
+
+The pre-commit hooks can also be ran ad-hoc without installing them by simply
running `pre-commit run --all-files`
+
## How to update dependencies
To change test dependencies, change the `requirements.in` and run