`shed` canonicalises Python code.
Project description
shed
shed
canonicalises Python code. Shed your legacy, stop bikeshedding, and move on. Black++
What does it do?
shed
is the maximally opinionated autoformatting tool. It's all about
convention over configuration,
and designed to be a single opinionated tool that fully canonicalises my
code - formatting, imports, updates, and every other fix I can possibly
automate.
There are no configuration options at all, but if the defaults aren't for you that's OK - you can still use the underlying tools directly and get most of the same effect... though you'll have to configure them yourself.
shed
must either be run in a git repo to auto-detect the files to format,
or explicitly passed a list of files to format on the command-line.
Features
shed
...
- Runs
autoflake
, to remove unused imports and variables - Runs
pyupgrade
, with autodetected minimum version >= py36 - Runs
isort
, with autodetected first-party imports and--ca --profile=black
args - Runs
black
, with autodetected minimum version >= py36 - Formats code blocks in docstrings, markdown, and restructured text docs
(like
blacken-docs
). - If
shed --refactor
, also runspybetter
to fix style issues,teyit
to update deprecatedunittest
methods, andcom2ann
to convert type comments to annotations.
The version detection logic is provided by black
, with an extra step to discard
versions before Python 3.6.
If you run shed
in a Git repository, the name of the root directory is assumed to be a
first-party import. src
layout
packages are also automatically detected, i.e. the foo
in any paths like
.../src/foo/__init__.py
.
Using with pre-commit
If you use pre-commit, you can use it with Shed by
adding the following to your .pre-commit-config.yaml
:
repos:
- repo: https://github.com/Zac-HD/shed
rev: 0.3.8
hooks:
- id: shed
This is often considerably faster for large projects, because pre-commit
can avoid running shed
on unchanged files.
Changelog
Patch notes can be found in CHANGELOG.md
.
Project details
Release history Release notifications | RSS feed
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 shed-0.3.8.tar.gz
.
File metadata
- Download URL: shed-0.3.8.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcabd27e86b82893a7b79bd7c6401571c105dc553a4d00a3fc32c13a30450ded |
|
MD5 | 5d88b2579d9f6c79f15a43e8f2bfce31 |
|
BLAKE2b-256 | 0c13026723e712535ce3f47fc4ab6031afeaf25c6cda298f09868387b8d60f0d |
Provenance
File details
Details for the file shed-0.3.8-py3-none-any.whl
.
File metadata
- Download URL: shed-0.3.8-py3-none-any.whl
- Upload date:
- Size: 19.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 147a9d4fe81b8aebf8a375e12a1a3663fac69db4b2e13a3594eb29b5c1c280cc |
|
MD5 | 70a7daa0d7314dbe2b8a3c2d621c02fe |
|
BLAKE2b-256 | 04156a5837fee06958b664793676807f49296fd4e0315df4f2dcca39710ac69c |