1[BASIC]
2# We're ok with short funtion argument names.
3# [invalid-name]
4argument-rgx=[a-z_][a-z0-9_]*$
5
6# Allow filter and map.
7# [bad-builtin]
8bad-functions=input
9
10# We prefer docstrings, but we don't require them on all functions.
11# Require them only on long functions (for some value of long).
12# [missing-docstring]
13docstring-min-length=10
14
15# Allow longer methods than the default.
16# [invalid-name]
17method-rgx=[a-z_][a-z0-9_]{2,35}$
18
19# Allow module names containing a dash (but no underscore or uppercase letter).
20# They are whole programs, not meant to be included by another module.
21# [invalid-name]
22module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|[a-z][-0-9a-z]+)$
23
24# Some functions don't need docstrings.
25# [missing-docstring]
26no-docstring-rgx=(run_)main$
27
28# We're ok with short local or global variable names.
29# [invalid-name]
30variable-rgx=[a-z_][a-z0-9_]*$
31
32[DESIGN]
33# Allow more than the default 7 attributes.
34# [too-many-instance-attributes]
35max-attributes=15
36
37[FORMAT]
38# Allow longer modules than the default recommended maximum.
39# [too-many-lines]
40max-module-lines=2000
41
42[MESSAGES CONTROL]
43# * locally-disabled, locally-enabled: If we disable or enable a message
44#   locally, it's by design. There's no need to clutter the Pylint output
45#   with this information.
46# * logging-format-interpolation: Pylint warns about things like
47#   ``log.info('...'.format(...))``. It insists on ``log.info('...', ...)``.
48#   This is of minor utility (mainly a performance gain when there are
49#   many messages that use formatting and are below the log level).
50#   Some versions of Pylint (including 1.8, which is the version on
51#   Ubuntu 18.04) only recognize old-style format strings using '%',
52#   and complain about something like ``log.info('{}', foo)`` with
53#   logging-too-many-args (Pylint supports new-style formatting if
54#   declared globally with logging_format_style under [LOGGING] but
55#   this requires Pylint >=2.2).
56# * no-else-return: Allow the perfectly reasonable idiom
57#    if condition1:
58#        return value1
59#    else:
60#        return value2
61# * unnecessary-pass: If we take the trouble of adding a line with "pass",
62#   it's because we think the code is clearer that way.
63disable=locally-disabled,locally-enabled,logging-format-interpolation,no-else-return,unnecessary-pass
64
65[REPORTS]
66# Don't diplay statistics. Just the facts.
67reports=no
68
69[VARIABLES]
70# Allow unused variables if their name starts with an underscore.
71# [unused-argument]
72dummy-variables-rgx=_.*
73