Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/PyCQA/pep8-naming

Naming Convention checker for Python
https://github.com/PyCQA/pep8-naming

flake8 flake8-extensions flake8-plugin linter-flake8 linter-plugin naming-conventions pep8 python

Last synced: about 2 months ago
JSON representation

Naming Convention checker for Python

Awesome Lists containing this project

README

        

PEP 8 Naming Conventions
========================

Check your code against `PEP 8 `_
naming conventions.

This module provides a plugin for ``flake8``, the Python code checker.

(It replaces the plugin ``flint-naming`` for the ``flint`` checker.)

Installation
------------

You can install, upgrade, uninstall ``pep8-naming`` with these commands::

$ pip install pep8-naming
$ pip install --upgrade pep8-naming
$ pip uninstall pep8-naming

Plugin for Flake8
-----------------

When both ``flake8`` and ``pep8-naming`` are installed, the plugin is
available in ``flake8``::

$ flake8 --version
4.0.1 (mccabe: 0.6.1, naming: 0.13.0, pycodestyle: 2.8.0, pyflakes: 2.4.0) CPython 3.8.10 on Linux

By default the plugin is enabled.

Error Codes
-----------

These error codes are emitted:

+---------+-----------------------------------------------------------------+
| code | sample message |
+=========+=================================================================+
| _`N801` | class names should use CapWords convention (`class names`_) |
+---------+-----------------------------------------------------------------+
| _`N802` | function name should be lowercase (`function names`_) |
+---------+-----------------------------------------------------------------+
| _`N803` | argument name should be lowercase (`function arguments`_) |
+---------+-----------------------------------------------------------------+
| _`N804` | first argument of a classmethod should be named 'cls' |
| | (`function arguments`_) |
+---------+-----------------------------------------------------------------+
| _`N805` | first argument of a method should be named 'self' |
| | (`function arguments`_) |
+---------+-----------------------------------------------------------------+
| _`N806` | variable in function should be lowercase |
+---------+-----------------------------------------------------------------+
| _`N807` | function name should not start and end with '__' |
+---------+-----------------------------------------------------------------+
| _`N811` | constant imported as non constant (`constants`_) |
+---------+-----------------------------------------------------------------+
| _`N812` | lowercase imported as non-lowercase |
+---------+-----------------------------------------------------------------+
| _`N813` | camelcase imported as lowercase |
+---------+-----------------------------------------------------------------+
| _`N814` | camelcase imported as constant |
| | (distinct from `N817`_ for selective enforcement) |
+---------+-----------------------------------------------------------------+
| _`N815` | mixedCase variable in class scope |
| | (`constants`_, `method names`_) |
+---------+-----------------------------------------------------------------+
| _`N816` | mixedCase variable in global scope (`constants`_) |
+---------+-----------------------------------------------------------------+
| _`N817` | camelcase imported as acronym |
| | (distinct from `N814`_ for selective enforcement) |
+---------+-----------------------------------------------------------------+
| _`N818` | error suffix in exception names (`exceptions`_) |
+---------+-----------------------------------------------------------------+

.. _class names: https://www.python.org/dev/peps/pep-0008/#class-names
.. _constants: https://www.python.org/dev/peps/pep-0008/#constants
.. _exceptions: https://www.python.org/dev/peps/pep-0008/#exception-names
.. _function names: https://www.python.org/dev/peps/pep-0008/#function-and-variable-names
.. _function arguments: https://www.python.org/dev/peps/pep-0008/#function-and-method-arguments
.. _method names: https://www.python.org/dev/peps/pep-0008/#method-names-and-instance-variables

Options
-------

The following flake8 options are added:

--ignore-names Ignore errors for specific names or glob patterns.

Currently, this option can only be used for N802, N803, N804, N805, N806, N815, and N816 errors.

Default: ``setUp,tearDown,setUpClass,tearDownClass,setUpModule,tearDownModule,asyncSetUp,asyncTearDown,setUpTestData,failureException,longMessage,maxDiff``.

--classmethod-decorators List of method decorators pep8-naming plugin should consider class method.

Used to prevent false N804 errors.

Default: ``classmethod``.

--staticmethod-decorators List of method decorators pep8-naming plugin should consider static method.

Used to prevent false N805 errors.

Default: ``staticmethod``.

FAQ
---

How do I configure ``classmethod_decorators`` to recognize `SQLAlchemy`_ class methods?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

::

classmethod_decorators =
classmethod
declared_attr
expression
comparator

.. _SQLAlchemy: https://www.sqlalchemy.org/