blob: 9ff6eae048768b326d8f37ce8844429e4e241032 [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 Peskine7747efc2020-03-24 18:39:50 +010058# * unnecessary-pass: If we take the trouble of adding a line with "pass",
59# it's because we think the code is clearer that way.
60disable=logging-format-interpolation,no-else-return,unnecessary-pass
Gilles Peskine7f615752019-02-25 20:17:33 +010061
62[REPORTS]
63# Don't diplay statistics. Just the facts.
64reports=no
65
66[VARIABLES]
67# Allow unused variables if their name starts with an underscore.
68# [unused-argument]
69dummy-variables-rgx=_.*