Make sure arguments in Python function definitions are indented by 8 spaces
Project description
py-def-indent-formatter
A command line tool (and a pre-commit hook) to automatically format haning indentation in Python function definitions to 8 spaces.
Currently, this tool is only designed to work properly after your Python files have been formatted by black
or blue
.
Motivation of this tool
black
and blue
both use only 4 spaces as haning indentation in function definitions, which is not aligned with PEP8's recommendation.
Therefore, this tool specifically fixes this 4-space style choice of black
and blue
.
Installation
pip install format-def-indent
Usage
As a command line tool
To auto-format Python files (.py):
format-def-indent <PATH_THAT_CONTAINS_PYTHON_FILES>
Use --help
to see documentations of command line arguments.
To auto-format Jupyter notebooks (.ipynb):
format-def-indent-in-jupyter <PATH_THAT_CONTAINS_PYTHON_FILES>
As a pre-commit hook
To auto-format Python files (.py), put the following into your .pre-commit-config.yaml
file. Remember to replace <VERSION>
with your version of this tool (such as v0.1.4
):
- repo: https://github.com/cyyc1/py-def-indent-formatter
rev: <VERSION>
hooks:
- id: format-def-indent
To auto-format Jupyter notebooks (.ipynb), put the following into your .pre-commit-config.yaml
file:
- repo: https://github.com/cyyc1/py-def-indent-formatter
rev: <VERSION>
hooks:
- id: format-def-indent-in-jupyter
See pre-commit for more instructions.
What does this formatter do
This tool formats the following "before" (red) into "after" (green).
Multi-line arguments in function definitions:
def some_function(
- arg1,
- arg2='test',
- *,
- arg3: int = 2,
- arg4: bool = False,
+ arg1,
+ arg2='test',
+ *,
+ arg3: int = 2,
+ arg4: bool = False,
) -> None:
print(1)
or
def some_functions(
- arg1,
- *args,
- **kwargs,
+ arg1,
+ *args,
+ **kwargs,
):
print(1)
Single-line arguments in function definitions:
def some_function(
- arg1, arg2='test', *, arg3: int = 2, arg4: bool = False,
+ arg1, arg2='test', *, arg3: int = 2, arg4: bool = False,
):
print(1)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file format_def_indent-0.1.7.tar.gz
.
File metadata
- Download URL: format_def_indent-0.1.7.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a0fe4369449144f7c24c8726377a3feec2098d308b0e688269f04efac1a222f |
|
MD5 | 72f5979f778f18f41723c97cb6b2261a |
|
BLAKE2b-256 | 8446f117d5e88749b26ce7e2cdeb5e0bedeefceacc2f53cc742299a0793b5d1b |
File details
Details for the file format_def_indent-0.1.7-py2.py3-none-any.whl
.
File metadata
- Download URL: format_def_indent-0.1.7-py2.py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 295eb336b1a7f0481c556a1529b89de9a4ab01bd6fdc430f243e2f2104227835 |
|
MD5 | d571a5a0107277cf88e2385971b20fe9 |
|
BLAKE2b-256 | d9140557ba6225cc34b7fac716e6b6ddd340e0deed84eef3e9eb4f5b6fd2b3cf |