blob: ad25a7ca1788374f9e8ea866ea0cf42ddf40288b [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 Peskine17596022020-03-24 18:47:06 +010043# * 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.
Gilles Peskine46c54c02020-03-24 16:39:30 +010046# * 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).
Gilles Peskine49f46792020-03-24 16:07:40 +010056# * no-else-return: Allow the perfectly reasonable idiom
57# if condition1:
58# return value1
59# else:
60# return value2
Gilles Peskine7747efc2020-03-24 18:39:50 +010061# * 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.
Gilles Peskine17596022020-03-24 18:47:06 +010063disable=locally-disabled,locally-enabled,logging-format-interpolation,no-else-return,unnecessary-pass
Gilles Peskine7f615752019-02-25 20:17:33 +010064
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=_.*