[flake8]
max-line-length = 120

# decent quote styles
inline-quotes = single
multiline-quotes = single
docstring-quotes = double
avoid-escape = true

extend-exclude =
    build
    dist
    docs
    htmlcov
    *.egg-info
    node_modules
    .*/

ignore =
    # allow omitting whitespace around arithmetic operators
    E226
    # don't require specific wrapping before/after binary operators
    W503
    W504
    # allow assigning lambdas (it's useful for single-line functions defined inside other functions)
    E731
    # while single quotes are nicer, we have double quotes in way too many places
    Q000
    # not all our exceptions are errors
    N818

per-file-ignores =
    # allow nicely aligned parametrizations
    **/*_test.py:E241
    # allow long lines in migrations (only do that for raw SQL please)
    **/migrations/*.py:E501
    # piwik plugin uses too much camelcase
    piwik/indico_piwik/queries/graphs.py:N803

classmethod_decorators =
    classmethod
    declared_attr
    strict_classproperty
    expression
    comparator

ignore_names =
    _process_GET
    _process_POST
    _process_PATCH
    _process_PUT
    _process_DELETE
