`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 basically black
plus autoflake
plus isort
plus pyupgrade
plus some custom fixers.
shed
is all about convention over configuration.
It's 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.
Only works in git repos, because version control is great and so is git ls-files
,
or in single-file mode.
Features
shed
...
- Runs
autoflake
, to remove unused imports and variables, and expand star-imports - Runs
pyupgrade
, with autodetected minimum version >= py36 - Runs
isort
, with autodetected first-party imports - Runs
black
, with autodetected minimum version >= py36 - (WIP) Runs some custom fixers based on
flake8-bugbear
- Iterates those steps until the source code stops changing.
The version detection logic is provided by black
, with an extra step to discard
versions before Python 3.6.
First-party import detection is disabled in single-file mode. 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
.
Changelog
0.1.0 - 2020-07-09
- automatic and isolated
isort
configuration. I am now happy to recommend that you tryshed
!
0.0.5 - 2020-05-29
- better handling of permissions issues or deleted files
0.0.4 - 2020-05-13
- compatible with pyupgrade==2.4
0.0.3 - 2020-04-23
- compatible with pyupgrade==2.2
0.0.2 - 2020-03-08
- usable CLI
- better isort autoconfig
0.0.1 - 2020-02-15
- project kickoff
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.1.0.tar.gz
.
File metadata
- Download URL: shed-0.1.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f0f67871f29d6df131344dfa0163518e0921e60a044cdd065746502b646bd82 |
|
MD5 | 079f4bb87656ece5b6a5e50b607e48c7 |
|
BLAKE2b-256 | 5f2b71cc77f6b9e4c997aa239bbab24952a86d558c734956d5add4a71d15c44a |
Provenance
File details
Details for the file shed-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: shed-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b77d3691815dc3968bcc67dc60c13e9a068109fc7c4770f6bc62c3666e357738 |
|
MD5 | 04403fc9b4791dcc47e360a2ba5b9d44 |
|
BLAKE2b-256 | a71124ff9723e050a046e2d246c25c1342a972df7a1b845844bf8ea2365ac151 |