Semi-automated python formatting
Semi-automated Python formatting.
The aim of this tool is to build up developer-assistance tooling for python
formatting. In general it will only format things when it needs to or when
directly instructed to.
Most usage of Tuck is expected to be within editor extensions:
Tuck can be also used as a command line tool:
python -m tuck --positions <line>:<col> -- file.py
The wrapped statement style which Tuck targets aims to reduce diff noise without
concern for vertical space.
Example: Function definition
def foo(bar: str, quox: int = 0) -> float:
return 4.2
wraps to:
def foo(
bar: str,
quox: int = 0,
) -> float:
return 4.2
Example: List comprehension
[x for x in 'aBcD' if x.isupper()]
wraps to:
[
x
for x in 'aBcD'
if x.isupper()
]
Setup with:
pip install -r script/requirements-dev.txt -e .
Run validations with:
./script/check