Metadata-Version: 2.1
Name: flake8-class-newline
Version: 1.6.0
Summary: Flake8 lint for newline after class definitions.
Home-page: https://github.com/AlexanderVanEck/flake8-class-newline
Author: Alexander van Eck
Author-email: alex@x-all.nl
License: MIT
Keywords: flake8 lint class new line
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Quality Assurance
License-File: LICENSE
Requires-Dist: flake8

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!
