Tool with configurations for the creation of better software.
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes, |
Autoformatting files like JSON, Markdown, and YAML. |
|
Configure to use four space indent to match Python PEP 8. | |
Yes |
Formatting TOML |
| ||
Yes |
Miscellaneous file cleanup like end of file newlines |
|
When adding rules, try to avoid duplication of other tools like | |
Yes |
Autoformatting SQL |
|
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes, |
Ensuring high quality YAML |
|
Configure to coexist with YAML autoformatting of | |
Yes, |
Checking for typos |
| ||
Yes |
|
|
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes, |
Markdown table of contents |
|
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes, |
|
|
I am a fan of the
| |
Yes, |
Formatting docstrings |
| ||
Yes, |
Cleaning Jupyter Notebooks |
|
Paired with |
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes |
Test runner |
Command line | ||
Yes |
Test runner parallelism via multiprocessing |
| ||
Yes |
Timing tests |
|
Use the | |
Yes |
User-friendly |
| ||
Yes |
Supporting subtesting |
|
Will be deprecated after pytest-dev/pytests-subtests#71. | |
No |
Easy decorator |
|
A third party alternative is | |
No |
Terminate long-running tests |
|
Useful when there's unsolved race conditions. | |
No |
Cache HTTP requests as cassettes |
|
Maintained successor to |
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes, |
Static analysis |
Command line |
Since | |
Yes, |
Static analysis |
|
Partially reimplements many other tools like | |
Yes, |
Static analysis |
Command line |
| |
Yes |
Static analysis |
|
Pair with Mostly reimplemented by | |
Yes |
Checking docstrings |
|
|
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes, |
Static type checking |
|
Some opt-in rules like | |
Yes |
Runtime type checking |
| ||
No |
Runtime type checking |
|
As of Feb. 20th in 2024,
Python 3.10's | |
No, |
Adopting |
Command line |
Equivalent of |
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes |
Automated dependency updates |
GitHub Actions |
Pair with | |
Yes, |
Python environment and dependency management |
Command line | ||
No, |
Requirements compilation |
Command line | ||
Yes |
Checking requirements |
|
If invoking | |
No |
Auditing requirements |
Command line |
Alternative to |
Tool | Used Here? | Description | Invocation | Notes |
---|---|---|---|---|
Yes |
Validating |
|
By specifying
| |
Yes |
Checking SDist build |
|
Unclear if this tool is a subset of | |
No |
Checking SDist, wheel, and README. |
GitHub Actions | ||
No |
Migration from |
Command line |
a() {
: Activate : Clone repository if needed, change to directory, and activating Python and Node.js environments
repo=${1:-.}
if [[ $repo != . ]]; then
directory=$repo # No renames currently in progress
[[ -d $HOME/code/$directory ]] || git clone "[email protected]:Synthego/$repo.git" "$HOME/code/$directory";
cd "$HOME/code/$directory" || return
fi
if [[ -n $PYENV_VIRTUAL_ENV ]]; then
# shellcheck disable=SC1091
. deactivate
elif [[ -n $VIRTUAL_ENV ]]; then
deactivate
fi
local venv=none
if [[ -f .venv/bin/activate ]]; then
venv=.venv
elif [[ -f venv/bin/activate ]]; then
venv=venv
fi
if [[ $venv != none ]]; then
# shellcheck disable=SC1090,SC1091
. $venv/bin/activate
(python --version; type python | sed -E "s,^[^/]*(/.+)\),\1,") | xargs echo
fi
}
curl -s \
https://raw.githubusercontent.com/github/gitignore/master/{Global/Vim,Global/JetBrains,Global/VisualStudioCode,Global/macOS,Python}.gitignore \
> .gitignore