# Pylint configuration for ReBrain
# Focused on practical checks, relaxed on style to avoid conflicts with google-genai

[MASTER]
# Use multiple processes for faster linting
jobs=0

# Pickle collected data for later comparisons
persistent=yes

# Allow loading of arbitrary C extensions
unsafe-load-any-extension=no

# Allow optimization markers
optimize-ast=no

[MESSAGES CONTROL]
# Disable checks that are too strict or conflict with our needs
disable=
    C0103,  # Invalid name (snake_case vs camelCase in ML/data contexts)
    C0114,  # Missing module docstring
    C0115,  # Missing class docstring  
    C0116,  # Missing function docstring
    R0913,  # Too many arguments (common in ML pipelines)
    R0914,  # Too many local variables
    R0915,  # Too many statements
    W0212,  # Access to protected member (needed for some APIs)
    E1101,  # No member (false positives with dynamic attrs)
    R0903,  # Too few public methods (for config classes)
    R0801,  # Similar lines (common in scripts)
    W0511,  # TODO comments
    C0301,  # Line too long (handled by black)
    C0330,  # Wrong hanging indentation (handled by black)
    W0621,  # Redefining name from outer scope
    
[FORMAT]
# Maximum line length (match black)
max-line-length=100

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

# String quote preference
string-quote=double

[BASIC]
# Good variable names
good-names=i,j,k,e,x,y,z,df,db,ax,fig,id,_,f

# Include hints for naming patterns
include-naming-hint=yes

# Regular expressions for various naming styles (relaxed)
attr-rgx=[a-z_][a-z0-9_]{1,30}$
argument-rgx=[a-z_][a-z0-9_]{1,30}$
variable-rgx=[a-z_][a-z0-9_]{1,30}$
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{1,30}|(__.*__))$

[DESIGN]
# Maximum arguments for functions
max-args=10

# Maximum local variables
max-locals=25

# Maximum branches
max-branches=15

[IMPORTS]
# Allow wildcard imports in specific cases
allow-wildcard-with-all=no

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

