Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#!/bin/bash
#!/bin/env bash

☝🏻 better x-plat support on different machines nowadays. More of a good practice thing than anything because who doesn't have 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
HOOK_SCRIPT="#!/bin/bash
HOOK_SCRIPT="#!/bin/env bash

Same again, sorry, but I put a suggestion in so that you can accept or reject it easily!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd also probably EOF this, but if it ain't broke.

# 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These could each be like

BLACK_FAILED=`black --check \$FILES`

and so on, with the same function, but again, if it ain't broke.

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider escaped quotes around comparison variables. Prevents them going wrong in certain scenarios. Again, it's a good practice > required.

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NGL, that's pretty nice case statement

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
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This and the other file change are just two minor changes to test that it was grabbing the right files

"""

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