# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
#
# This file is part of a Moko Consulting project.
#
# SPDX-License-Identifier: GPL-3.0-or-later

# Pylint configuration for MokoStandards projects

[MASTER]
# Python code to execute, usually for sys.path manipulation
init-hook='import sys; sys.path.append(".")'

# Use multiple processes to speed up Pylint
jobs=0

# Pickle collected data for later comparisons
persistent=yes

# List of plugins (as comma separated values of python module names)
load-plugins=

# Minimum Python version to use for version dependent checks
py-version=3.8

[MESSAGES CONTROL]
# Disable specific messages
disable=
    missing-module-docstring,
    missing-function-docstring,
    too-few-public-methods,
    too-many-arguments,
    too-many-locals,
    too-many-branches,
    too-many-statements,
    duplicate-code,
    fixme

[REPORTS]
# Set the output format
output-format=text

# Tells whether to display a full report or only the messages
reports=no

# Activate the evaluation score
score=yes

[BASIC]
# Good variable names
good-names=i,j,k,ex,Run,_,id,pk

# Regular expressions for acceptable names
variable-rgx=[a-z_][a-z0-9_]{0,30}$
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
class-rgx=[A-Z_][a-zA-Z0-9]+$
function-rgx=[a-z_][a-z0-9_]{0,49}$
method-rgx=[a-z_][a-z0-9_]{0,49}$

[FORMAT]
# Maximum number of characters on a single line
max-line-length=100

# Maximum number of lines in a module
max-module-lines=1000

# String used for indentation
indent-string='    '

[DESIGN]
# Maximum number of arguments for function / method
max-args=7

# Maximum number of attributes for a class
max-attributes=10

[IMPORTS]
# Deprecated modules which should not be used
deprecated-modules=optparse,imp

[CLASSES]
# List of method names used to declare instance attributes
defining-attr-methods=__init__,__new__,setUp

# List of valid names for the first argument in a class method
valid-classmethod-first-arg=cls

# List of valid names for the first argument in a metaclass class method
valid-metaclass-classmethod-first-arg=mcs

[EXCEPTIONS]
# Exceptions that will emit a warning when caught
overgeneral-exceptions=builtins.Exception
