blob: a5df688d97c95387ed713df7f225d31f19535ebe [file] [log] [blame]
Gilles Peskine7f615752019-02-25 20:17:33 +01001[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]
Gilles Peskinea0c615e2019-02-27 11:03:43 +010026no-docstring-rgx=(run_)?main$
Gilles Peskine7f615752019-02-25 20:17:33 +010027
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]
Gilles Peskine46c54c02020-03-24 16:39:30 +010043# * logging-format-interpolation: Pylint warns about things like
44# ``log.info('...'.format(...))``. It insists on ``log.info('...', ...)``.
45# This is of minor utility (mainly a performance gain when there are
46# many messages that use formatting and are below the log level).
47# Some versions of Pylint (including 1.8, which is the version on
48# Ubuntu 18.04) only recognize old-style format strings using '%',
49# and complain about something like ``log.info('{}', foo)`` with
50# logging-too-many-args (Pylint supports new-style formatting if
51# declared globally with logging_format_style under [LOGGING] but
52# this requires Pylint >=2.2).
Gilles Peskine49f46792020-03-24 16:07:40 +010053# * no-else-return: Allow the perfectly reasonable idiom
54# if condition1:
55# return value1
56# else:
57# return value2
Gilles Peskine46c54c02020-03-24 16:39:30 +010058disable=logging-format-interpolation,no-else-return
Gilles Peskine7f615752019-02-25 20:17:33 +010059
60[REPORTS]
61# Don't diplay statistics. Just the facts.
62reports=no
63
64[VARIABLES]
65# Allow unused variables if their name starts with an underscore.
66# [unused-argument]
67dummy-variables-rgx=_.*