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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|