Skip to main content

Pylint plugin to sort functions in Python code

Project description

pylint-sort-functions

A PyLint plugin that enforces alphabetical sorting of functions and methods within Python classes and modules.

Features

  • Function Organization: Enforces alphabetical sorting of functions within modules
  • Method Organization: Enforces alphabetical sorting of methods within classes
  • Public/Private Separation: Ensures public functions/methods come before private ones (underscore prefix)
  • Configurable Rules: Customizable message codes (W9001-W9003) for different violations
  • Clear Error Messages: Helpful messages indicating exactly what needs to be reordered

Installation

pip install pylint-sort-functions

Usage

Enable the Plugin

Add the plugin to your pylint configuration:

pylint --load-plugins=pylint_sort_functions your_module.py

Or add to your .pylintrc file:

[MASTER]
load-plugins = pylint_sort_functions

Or in pyproject.toml:

[tool.pylint.MASTER]
load-plugins = ["pylint_sort_functions"]

Example

❌ Bad (will trigger warnings):

class MyClass:
    def public_method_b(self):
        pass

    def _private_method_a(self):
        pass

    def public_method_a(self):  # Out of order!
        pass

✅ Good (follows sorting rules):

class MyClass:
    # Public methods
    def public_method_a(self):
        pass

    def public_method_b(self):
        pass

    # Private methods
    def _private_method_a(self):
        pass

Message Codes

  • W9001: unsorted-functions - Functions not sorted alphabetically within their scope
  • W9002: unsorted-methods - Class methods not sorted alphabetically within their scope
  • W9003: mixed-function-visibility - Public and private functions not properly separated

Warning

⚠️ This project is currently under active development and not ready for production use.

Key limitations:

  • Many core features are still being implemented
  • More unit tests need to be added
  • Documentation is incomplete
  • APIs and functionality may change significantly

Please check back later for a stable release.

Documentation

See hakonhagland.github.io/pylint-sort-functions

PyPI

See pylint-sort-functions

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

pylint_sort_functions-1.0.0.tar.gz (113.3 kB view details)

Uploaded Source

Built Distribution

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

pylint_sort_functions-1.0.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file pylint_sort_functions-1.0.0.tar.gz.

File metadata

  • Download URL: pylint_sort_functions-1.0.0.tar.gz
  • Upload date:
  • Size: 113.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pylint_sort_functions-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2877585d218e45a0897e695f76c79fe86334653da585b9b9eb505ae40fafa895
MD5 46a60baa4561d5e3f924154e60cd15fc
BLAKE2b-256 de1dc8d4cc82b101dc0839c5160fee34af64958b9786883730affcf87065abcd

See more details on using hashes here.

File details

Details for the file pylint_sort_functions-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pylint_sort_functions-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f9c827eed114c47ab54fa1ac5fbb571db0ef36e663a1614895a01c20fbba3b0
MD5 0d7cd420c57ac54b2e533b88905ad225
BLAKE2b-256 397ad1fcf0859a23c67b15c91e4bc69bb6854f72ba2116aded5bdc0b2f90d640

See more details on using hashes here.

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