[BASIC] # We're ok with short funtion argument names. # [invalid-name] argument-rgx=[a-z_][a-z0-9_]*$ # Allow filter and map. # [bad-builtin] bad-functions=input # We prefer docstrings, but we don't require them on all functions. # Require them only on long functions (for some value of long). # [missing-docstring] docstring-min-length=10 # Allow longer methods than the default. # [invalid-name] method-rgx=[a-z_][a-z0-9_]{2,35}$ # Allow module names containing a dash (but no underscore or uppercase letter). # They are whole programs, not meant to be included by another module. # [invalid-name] module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|[a-z][-0-9a-z]+)$ # Some functions don't need docstrings. # [missing-docstring] no-docstring-rgx=(run_)main$ # We're ok with short local or global variable names. # [invalid-name] variable-rgx=[a-z_][a-z0-9_]*$ [DESIGN] # Allow more than the default 7 attributes. # [too-many-instance-attributes] max-attributes=15 [FORMAT] # Allow longer modules than the default recommended maximum. # [too-many-lines] max-module-lines=2000 [MESSAGES CONTROL] # * locally-disabled, locally-enabled: If we disable or enable a message # locally, it's by design. There's no need to clutter the Pylint output # with this information. # * logging-format-interpolation: Pylint warns about things like # ``log.info('...'.format(...))``. It insists on ``log.info('...', ...)``. # This is of minor utility (mainly a performance gain when there are # many messages that use formatting and are below the log level). # Some versions of Pylint (including 1.8, which is the version on # Ubuntu 18.04) only recognize old-style format strings using '%', # and complain about something like ``log.info('{}', foo)`` with # logging-too-many-args (Pylint supports new-style formatting if # declared globally with logging_format_style under [LOGGING] but # this requires Pylint >=2.2). # * no-else-return: Allow the perfectly reasonable idiom # if condition1: # return value1 # else: # return value2 # * unnecessary-pass: If we take the trouble of adding a line with "pass", # it's because we think the code is clearer that way. disable=locally-disabled,locally-enabled,logging-format-interpolation,no-else-return,unnecessary-pass [REPORTS] # Don't diplay statistics. Just the facts. reports=no [VARIABLES] # Allow unused variables if their name starts with an underscore. # [unused-argument] dummy-variables-rgx=_.*