Skip to main content

Sorts functions and class methods according to the step-down rule

Project description

sdsort

Sorts top-level functions and class methods in Python files according to the step-down rule, as described in Robert C. Martin's Clean Code. More concretely, functions and methods are ordered in a depth-first-traversal order of the dependency tree, so higher-level code appears before the lower-level code it calls.

Installation

pip install sdsort

Or run directly with uv:

uvx sdsort <path>

Usage

To target individual files, run the sdsort command, followed by the paths to the files that should be sorted:

sdsort <file_1> <file_2>

To sort all *.py files in a directory, and all of its subdirectories, run the sdsort command followed by the directory path:

sdsort <directory_path>

To check if files are already sorted without modifying them, use the --check flag:

sdsort --check <file_or_directory>

This will exit with code 1 if any files would be re-arranged, making it suitable for CI pipelines and pre-commit hooks.

Maturity

It's early days. Consider this an alpha for now.

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

sdsort-0.3.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sdsort-0.3.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file sdsort-0.3.0.tar.gz.

File metadata

  • Download URL: sdsort-0.3.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sdsort-0.3.0.tar.gz
Algorithm Hash digest
SHA256 fc0ec38a2b52d4dda50dff90d0b90446c2548e1de363d242c86757ba9c80ac8e
MD5 fc503ec5cd632f16bacde1d2b5215848
BLAKE2b-256 98bbc9e1ed47424ad675c0e8f4ba8d813fae3d45abb1d18607a1536477f1b8fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for sdsort-0.3.0.tar.gz:

Publisher: publish.yml on eirikurt/sdsort

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sdsort-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: sdsort-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sdsort-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7879a49f1aefcc1851c907b5371c041fad8ec81af2a50414e383b14d6a82bbe0
MD5 24d7f72ee1b4d131e1a31b51e343f505
BLAKE2b-256 5e14f599b193f89e4fc9b2f71018792d197c083455c94c7a5dffeee316547b22

See more details on using hashes here.

Provenance

The following attestation bundles were made for sdsort-0.3.0-py3-none-any.whl:

Publisher: publish.yml on eirikurt/sdsort

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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