Skip to main content

A flake8 plugin to enforce object calisthenics rule "ONE level of indentation"

Project description

flake8-no-nesting

flake8-no-nesting is a plugin for Flake8 designed to enhance code readability and maintainability by enforcing the Object Calisthenics rule: "One Level of Indentation per Method." The plugin aims to detect and flag the use of nested control structures such as try, if, with, while, and for in Python code.

Installation

Install flake8-no-nesting via pip:

pip install flake8-no-nesting

Usage

After installation, flake8-no-nesting integrates seamlessly with Flake8. To run the plugin, execute Flake8 on your project directory:

flake8 your_project_directory

The plugin will analyze your code for any violations related to nested control structures.

Rules Enforced

  • FNN100 nested if found
  • FNN101 nested for loop found
  • FNN102 nested while loop found
  • FNN103 nested with found
  • FNN104 nested try found

Each violation will report the specific type of nesting and its location, helping you to refactor your code accordingly.

Configuration

No specific configuration is required to get started with flake8-no-nesting. However, you can customize the behavior of Flake8 via the .flake8 configuration file to ignore certain files or directories, or to adjust other Flake8 settings.

Example .flake8 configuration:

[flake8]
exclude = tests/*
max-line-length = 120

Motivation

This plugin supports the "One Level of Indentation per Method" rule from Object Calisthenics, which advocates for minimal indentation to improve code readability and reduce complexity. Following this rule helps in writing code that is easier to understand, test, and maintain.

Contributing

We welcome contributions to improve flake8-no-nesting. If you have suggestions or encounter bugs, please feel free to open an issue or submit a pull request.

License

flake8-no-nesting is distributed under the MIT License. See the LICENSE file for more details.

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

flake8_no_nesting-0.1.2.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

flake8_no_nesting-0.1.2-py3-none-any.whl (3.5 kB view hashes)

Uploaded Python 3

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