testsAndMisc/scripts/check_python_location.sh
Krzysztof kuhy Rudnicki 72c6c3788c refactor: move Python packages under python_pkg/
- Move puzzle_solver/, poker_modifier_app/, articles/, tests/ into python_pkg/
- Move moviepy_showcase.py and _moviepy_*.py into python_pkg/moviepy_showcase/
- Update all imports to use python_pkg. prefix
- Update pyproject.toml per-file-ignores and pytest testpaths
- Add pre-commit hook to enforce Python files under python_pkg/
2026-03-18 22:54:45 +01:00

44 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Check that all Python files are under python_pkg/.
# Exceptions: linux_configuration/, pomodoro_app/, sonic_pi/, Bash/,
# and vendored/generated directories.
# Used as a pre-commit hook; receives staged file paths as arguments.
set -uo pipefail
# Directories allowed to contain Python files outside python_pkg/
ALLOWED_DIRS="linux_configuration/|pomodoro_app/|sonic_pi/"
errors=()
for file in "$@"; do
# Only check .py files
[[ "$file" != *.py ]] && continue
# Skip files already under python_pkg/
[[ "$file" == python_pkg/* ]] && continue
# Skip allowed directories (non-Python projects with some Python scripts)
if echo "$file" | grep -qE "^($ALLOWED_DIRS)"; then
continue
fi
# Skip vendored/generated directories
if echo "$file" | grep -qE '(^|/)(\.venv|venv|__pycache__|build|dist|node_modules|\.git)/'; then
continue
fi
errors+=("$file")
done
if [[ ${#errors[@]} -gt 0 ]]; then
echo "ERROR: Python files must be under python_pkg/."
echo "The following files are in the wrong location:"
for err in "${errors[@]}"; do
echo " $err"
done
echo ""
echo "Move them with: git mv <file> python_pkg/<file>"
exit 1
fi