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-0.1.0.tar.gz (59.6 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-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pylint_sort_functions-0.1.0.tar.gz
  • Upload date:
  • Size: 59.6 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-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0d98cc57d9b44bc077ce4f2d6d6fe47932ffcd7548a34724fca683f59cd87a3c
MD5 2fdcfaddf2de97c69b2451e0499decd6
BLAKE2b-256 8c51ff3e539ca8df760abb99bcda86573c3083beab0f6bf92096957697d7eff5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pylint_sort_functions-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 949c384e6404d9e93931fbd93be477939dba8b33bbb52f0c252852ec171ca170
MD5 55d61f50f4721c46c9369d4506d63101
BLAKE2b-256 29632a6ba2cfe924bc12531325a9bc0b0f18e0633660f05e6ff2a4a4d0010b04

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