Skip to main content

Flake8 lint for newline after class definitions.

Project description

Flake8 Extension to lint for a method newline after a Class definition
===========================================

.. image:: https://travis-ci.org/AlexvEck/flake8-class-newline.svg?branch=master
:target: https://travis-ci.org/AlexvEck/flake8-class-newline
:alt: Build Status

Usage
-----

If you are using flake8, you can install this package through pip.

.. code:: shell

pip install flake8-class-newline

This plugin is then automatically triggered when you run;

.. code:: shell

flake8

It produces only 1 error type; "CNL100 Class definition does not have a new line."

NOTE; Documentation blocks (or docblocks) should be on the newline, they are therefore ignored by this plugin. See https://www.python.org/dev/peps/pep-0008/#documentation-strings


Example
-----

PEP8 says we should surround every class method with a single blank line. See https://www.python.org/dev/peps/pep-0008/#blank-lines
However flake8 is ambiguous about the first method having a blank line above it.

Basically;

.. code:: python

class AClassWithoutANewLine(object):
def a_method(self):
return 'a_value'

class AClassWithoutANewLineProperty(object):
@property
def a_method(self):
return 'a_value'

or

.. code:: python

class AClassWithANewLine(object):

def a_method(self):
return 'a_value'

class AClassWithANewLineProperty(object):

@property
def a_method(self):
return 'a_value'



This plugin was made to enforce the latter.

NOTE; properties of a class do not need a surrounding blank line, only methods.

Special Notice
-----

This package was inspired by flake8-quotes created by @zheller.
Thanks for the inspiration!


Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
flake8_class_newline-1.6.0-py2-none-any.whl (5.2 kB) Copy SHA256 hash SHA256 Wheel py2
flake8_class_newline-1.6.0-py3-none-any.whl (5.2 kB) Copy SHA256 hash SHA256 Wheel py3
flake8-class-newline-1.6.0.tar.gz (4.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page