Skip to main content

`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...

  1. Runs autoflake, to remove unused imports and variables, and expand star-imports
  2. Runs pyupgrade, with autodetected minimum version >= py36
  3. Runs isort, with autodetected first-party imports
  4. Runs black, with autodetected minimum version >= py36
  5. (WIP) Runs some custom fixers based on flake8-bugbear
  6. 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 try shed!

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shed-0.1.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

shed-0.1.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

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

Hashes for shed-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6f0f67871f29d6df131344dfa0163518e0921e60a044cdd065746502b646bd82
MD5 079f4bb87656ece5b6a5e50b607e48c7
BLAKE2b-256 5f2b71cc77f6b9e4c997aa239bbab24952a86d558c734956d5add4a71d15c44a

See more details on using hashes here.

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

Hashes for shed-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b77d3691815dc3968bcc67dc60c13e9a068109fc7c4770f6bc62c3666e357738
MD5 04403fc9b4791dcc47e360a2ba5b9d44
BLAKE2b-256 a71124ff9723e050a046e2d246c25c1342a972df7a1b845844bf8ea2365ac151

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page