[flake8]
inline-quotes = single
max-line-length = 120
max_complexity = 10
exclude = lambert_lm/__version__.py
# filename_check1 = filter_regex=^(?!__init__|__version__|__main__).+
#                   filename_regex=^[a-z](_{1}[a-z0-9]+|[a-z0-9]+)*$
classmethod-decorators = classmethod, classproperty
select =
  # minimal - do not remove it! (this set will be enforced by pipeline in the future)
  E,  # pep8 error
  W,  # pep8 warning
  F,  # pyflakes

  S,  # bandit
  BLK,  # black
  B0,  # bugbear
  A0,  # builtins
  I0,  # isort
  M,  # mutable
  N8,  # naming

  # recommended - you can disable it (move it to 'ignore')
  E8,  # eradicate
  T0,  # print
  Q0,  # quotes
  ABS,  # absolute imports
  A5,  # assertive
  H,  # cohesion
  CCR,  # cognitive complexity

ignore =
  # optional - you can enable it (move it to 'select')
  D1, # dostrings
  YTT, # flake8-2020
  C4,  # comprehensions
  EXE,  # executable
  T1,  # fixme
  I9,  # requirements
  SIM,  # simplify
  PD,  # pandas-vet
  FS,  # fstring
  PT,  # pytest-style

  D100,  # module docstring
  D104,  # package docstring
  D105,  # magic method docstring
  D107,  # __init__() docstring
  E501,  # line length, replaced by B950
  W503   # line break befor binary operator
per-file-ignores =
  tests/*:D101,D102,D103,D106,S101

[mypy]
platform = linux
ignore_missing_imports = True
show_column_numbers = True
show_error_context = False
follow_imports = skip
warn_return_any = True
strict_optional = True
warn_no_return = True
warn_redundant_casts = True
warn_unreachable = True

[isort]
line_length=120
default_section=THIRDPARTY
sections=FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER
known_first_party=lambert_lm
skip=setup_binary.py
# compatible with black
multi_line_output=3