best-doctor/flake8-adjustable-complexity

View on GitHub
flake8_adjustable_complexity/config.py

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
from typing import Dict, List, NamedTuple, Set

BAD_VAR_NAME_PENALTY: int = 2
ALLOW_SINGLE_NAMES_IN_VARS: bool = False
DEFAULT_MAX_MCCABE_COMPLEXITY: int = 7

DEFAULT_VAR_NAMES_BLACKLIST: Set[str] = {
    # from https://github.com/wemake-services/wemake-python-styleguide/
    'val',
    'vals',
    'var',
    'vars',
    'variable',
    'contents',
    'handle',
    'file',
    'objs',
    'some',
    'do',
    'no',
    'true',
    'false',
    'foo',
    'bar',
    'baz',
    'data',
    'result',
    'results',
    'item',
    'items',
    'value',
    'values',
    'content',
    'obj',
    'info',
    'handler',
}
SINGLE_LETTER_VAR_WHITELIST: List[str] = ['_']


class Config(NamedTuple):
    max_mccabe_complexity: int
    max_complexity_per_path: Dict[str, int]
    var_names_blacklist: Set[str]
    bad_var_name_penalty: int = BAD_VAR_NAME_PENALTY
    allow_single_names_in_vars: bool = ALLOW_SINGLE_NAMES_IN_VARS
    single_letter_var_whitelist: List[str] = SINGLE_LETTER_VAR_WHITELIST


DEFAULT_CONFIG = Config(
    max_mccabe_complexity=DEFAULT_MAX_MCCABE_COMPLEXITY,
    max_complexity_per_path={},
    var_names_blacklist=DEFAULT_VAR_NAMES_BLACKLIST,
)