[MASTER]

# Target Python version for compatibility checks
py-version=3.8

# Additional pylint plugins.
load-plugins=
    pylint.extensions.bad_builtin,
    pylint.extensions.comparison_placement,
    pylint.extensions.typing,
    pylint.extensions.redefined_loop_name,
    pylint.extensions.empty_comment,
    pylint.extensions.no_self_use,
    pylint.extensions.code_style,
    pylint.extensions.for_any_all,
    pylint.extensions.consider_ternary_expression,
    pylint.extensions.check_elif,
    pylint.extensions.docparams,
    pylint.extensions.eq_without_hash,
    pylint.extensions.confusing_elif,
    pylint.extensions.mccabe,
    pylint.extensions.overlapping_exceptions,
    pylint.extensions.magic_value,


[MESSAGES CONTROL]

disable=
    broad-except,
    fixme,
    too-few-public-methods,
    protected-access, # To protect from OSEF protected
    too-many-instance-attributes,
    too-many-arguments,
    logging-fstring-interpolation,
    too-many-lines, # OSEF spec file
    pointless-string-statement, # OSEF spec type documentation


# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
enable=c-extension-no-member

# Ignore the generated _version.py file
ignore-paths=osef/_version.py

[REFACTORING]

# Maximum number of nested blocks for function / method body
max-nested-blocks=5


[FORMAT]

# Maximum number of characters on a single line.
max-line-length=120

# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=https?:\/\/\S+>?$|^\s*(\w*\s*=\s*)?(\"|\').*(\"|\'),?\s*$