[build-system] requires = ["setuptools >= 46.4.0", "wheel"] build-backend = "setuptools.build_meta" [tool.black] line-length = 100 exclude = ''' ( /( \.eggs # exclude a few common directories in the | \.git # root of the project | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist )/ # Exclude vendor directory | vendor ) ''' [tool.isort] line_length = 100 multi_line_output=0 lines_after_imports=2 skip_glob = ["**/.env*", "**/env/*", "**/.venv/*", "**/docs/*", "**/user_data/*"] [tool.pytest.ini_options] asyncio_mode = "auto" [tool.mypy] ignore_missing_imports = true namespace_packages = false warn_unused_ignores = true exclude = [ '^build_helpers\.py$' ] plugins = [ "sqlalchemy.ext.mypy.plugin" ] [[tool.mypy.overrides]] module = "tests.*" ignore_errors = true [[tool.mypy.overrides]] # Telegram does not use implicit_optional = false in the current version. module = "telegram.*" implicit_optional = true [tool.pyright] include = ["freqtrade"] exclude = [ "**/__pycache__", "build_helpers/*.py", ] ignore = ["freqtrade/vendor/**"] [tool.ruff] line-length = 100 extend-exclude = [".env"] target-version = "py38" extend-select = [ "C90", # mccabe # "N", # pep8-naming "UP", # pyupgrade "TID", # flake8-tidy-imports # "EXE", # flake8-executable "YTT", # flake8-2020 # "S", # flake8-bandit # "DTZ", # flake8-datetimez # "RSE", # flake8-raise # "TCH", # flake8-type-checking "PTH", # flake8-use-pathlib ] [tool.ruff.mccabe] max-complexity = 12 [tool.ruff.per-file-ignores] "tests/*" = ["S"]