Skip to content

Commit

Permalink
Intro git hooks for typechecking (#689)
Browse files Browse the repository at this point in the history
* hook installer

* hook installer default

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* testing hooks

* cleanup
  • Loading branch information
Nathanjp91 authored Oct 24, 2023
1 parent 21cbfe0 commit 1dd0e50
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 2 deletions.
111 changes: 111 additions & 0 deletions .hooks/typechecking_installer.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
#!/bin/bash

# Usage
# To install the typechecking linters, simply run the script in your terminal:

# sh
# This will install the linters and set up the pre-commit hook to run them on each changed Python file.
# -o, --post-commit, -p, --pre-commit, default -o post commit install

# Requirements
# This script requires the following tools to be installed:

# Git
# Black
# Ruff
# Mypy
# Make sure these tools are installed and available in your system's PATH before running the script.

# Define the hook script
HOOK_SCRIPT="#!/bin/bash
# Get the list of changed Python files in the darwin/future folder
FILES=\$(git diff --diff-filter=MA --name-only master | grep 'darwin/future/.*\.py$')
if [ -z \"\$FILES\" ]; then
exit 0
fi
RED='\033[0;31m'
GREEN='\033[0;32m'
echo Typechecking Hook
echo ----------------------------------------
echo checking \$FILES
# Run the linters on each changed file
echo -e '\nRunning Black'
echo ----------------------------------------
BLACK_FAILED=0
black --check \$FILES || BLACK_FAILED=1
echo -e '\nRunning Ruff'
echo ----------------------------------------
RUFF_FAILED=0
ruff check \$FILES || RUFF_FAILED=1
echo -e '\nRunning Mypy'
echo ----------------------------------------
MYPY_FAILED=0
mypy \$FILES || MYPY_FAILED=1
# Check if any linter failed
echo Summary
echo ----------------------------------------
if [ \$BLACK_FAILED -eq 1 ]; then
echo -e \"\${RED}Black failed.\"
fi
if [ \$RUFF_FAILED -eq 1 ]; then
echo -e \"\${RED}Ruff failed.\"
fi
if [ \$MYPY_FAILED -eq 1 ]; then
echo -e \"\${RED}Mypy failed.\"
fi
if [ \$BLACK_FAILED -eq 0 ] && [ \$RUFF_FAILED -eq 0 ] && [ \$MYPY_FAILED -eq 0 ]; then
echo -e \"\${GREEN}All checks passed.\"
fi
"

# Define the hook name
HOOK_NAME="linters"

# Define the hook directory
HOOK_DIR="$(git rev-parse --show-toplevel)/.git/hooks"

# Define the hook file names
PRE_COMMIT_FILE="$HOOK_DIR/pre-commit"
POST_COMMIT_FILE="$HOOK_DIR/post-commit"

# Define the hook file names with the hook name
PRE_COMMIT_HOOK_FILE="$HOOK_DIR/pre-commit"
POST_COMMIT_HOOK_FILE="$HOOK_DIR/post-commit"

# Define the default hook file name
DEFAULT_HOOK_FILE="$POST_COMMIT_FILE"

# Define the default hook type
DEFAULT_HOOK_TYPE="post-commit"

# Parse the command line arguments
while [[ $# -gt 0 ]]
do
key="$1"

case $key in
-p|--pre-commit)
DEFAULT_HOOK_FILE="$PRE_COMMIT_FILE"
DEFAULT_HOOK_TYPE="pre-commit"
shift
;;
-o|--post-commit)
DEFAULT_HOOK_FILE="$POST_COMMIT_FILE"
DEFAULT_HOOK_TYPE="post-commit"
shift
;;
*)
echo "Unknown option: $key"
exit 1
;;
esac
done

# Create the hook file
echo "$HOOK_SCRIPT" > "$DEFAULT_HOOK_FILE"

# Make the hook file executable
chmod +x "$DEFAULT_HOOK_FILE"
2 changes: 1 addition & 1 deletion darwin/future/core/items/move_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def move_items_to_stage(
Returns
-------
None
JSONType
"""

return api_client.post(
Expand Down
1 change: 0 additions & 1 deletion darwin/importer/formats/coco.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from upolygon import find_contours, rle_decode

import darwin.datatypes as dt
from darwin.exceptions import UnrecognizableFileEncoding
from darwin.path_utils import deconstruct_full_path
from darwin.utils import attempt_decode
from darwin.version import __version__
Expand Down

0 comments on commit 1dd0e50

Please sign in to comment.