mirror of
https://github.com/pretix/pretix.git
synced 2026-01-03 18:52:26 +00:00
40 lines
1.5 KiB
ReStructuredText
40 lines
1.5 KiB
ReStructuredText
Coding style
|
||
============
|
||
|
||
Python code
|
||
-----------
|
||
|
||
* Basically: Follow `PEP 8`_.
|
||
|
||
Use `flake8`_ to check for conformance problems. The project includes a setup.cfg file
|
||
with a default configuration for flake8 that excludes migrations and other non-relevant
|
||
code parts. It also silences a few checks, e.g. ``N802`` (function names should be lowercase)
|
||
and increases the maximum line length to more than 79 characters. **However** you should
|
||
still name all your functions lowercase [#f1]_ and keep your lines short when possible.
|
||
|
||
* Our build server will reject all code violating other flake8 checks than the following:
|
||
|
||
* E123: closing bracket does not match indentation of opening bracket’s line
|
||
* F403: ``from module import *`` used; unable to detect undefined names
|
||
* F401: module imported but unused
|
||
* N802: function names should be lowercase
|
||
|
||
So please make sure that you *always* follow all other rules and break these rules *only when
|
||
it makes sense*.
|
||
|
||
* Use ``isort -rc pretix`` in the source directory to order your imports.
|
||
|
||
* Indent your code with four spaces.
|
||
|
||
* For templates and models, follow the `Django Coding Style`_.
|
||
|
||
* Use Django's class-based views
|
||
|
||
* Always mark all strings ever displayed to any user for translation.
|
||
|
||
|
||
.. _PEP 8: http://legacy.python.org/dev/peps/pep-0008/
|
||
.. _flake8: https://pypi.python.org/pypi/flake8
|
||
.. _Django Coding Style: https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/
|
||
.. [#f1] But Python's very own ``unittest`` module forces us to use ``setUp`` as a method name...
|