freqtrade_origin/pyproject.toml

185 lines
4.2 KiB
TOML
Raw Normal View History

[build-system]
requires = ["setuptools >= 64.0.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "freqtrade"
dynamic = ["version", "dependencies", "optional-dependencies"]
authors = [
{name = "Freqtrade Team"},
{name = "Freqtrade Team", email = "freqtrade@protonmail.com"},
]
description = "Freqtrade - Crypto Trading Bot"
readme = "README.md"
requires-python = ">=3.9"
license = {text = "GPLv3"}
# license = "GPLv3"
classifiers = [
"Environment :: Console",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
2024-03-29 06:37:21 +00:00
"Programming Language :: Python :: 3.12",
"Operating System :: MacOS",
"Operating System :: Unix",
"Topic :: Office/Business :: Financial :: Investment",
]
[project.urls]
Homepage = "https://github.com/freqtrade/freqtrade"
Documentation = "https://freqtrade.io"
"Bug Tracker" = "https://github.com/freqtrade/freqtrade/issues"
[project.scripts]
freqtrade = "freqtrade.main:main"
[tool.setuptools]
include-package-data = true
zip-safe = false
2023-12-17 07:31:17 +00:00
[tool.setuptools.packages.find]
where = ["."]
include = ["freqtrade*"]
2024-03-29 06:47:27 +00:00
exclude = ["tests", "tests.*", "user_data", "user_data*"]
2023-12-17 07:31:17 +00:00
namespaces = true
[tool.setuptools.dynamic]
version = {attr = "freqtrade.__version__"}
2021-05-27 12:00:13 +00:00
[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
2024-05-12 13:01:17 +00:00
profile = "black"
# multi_line_output=3
2024-05-12 13:07:00 +00:00
lines_after_imports=2
2022-04-29 09:54:54 +00:00
skip_glob = ["**/.env*", "**/env/*", "**/.venv/*", "**/docs/*", "**/user_data/*"]
2024-05-12 13:20:36 +00:00
known_first_party = ["freqtrade_client"]
2021-05-27 12:00:13 +00:00
2022-01-17 19:02:59 +00:00
[tool.pytest.ini_options]
asyncio_mode = "auto"
addopts = "--dist loadscope"
2022-01-17 19:02:59 +00:00
[tool.mypy]
ignore_missing_imports = true
namespace_packages = false
warn_unused_ignores = true
exclude = [
2024-03-31 07:35:17 +00:00
'^build_helpers\.py$',
'^ft_client/build/.*$',
]
2023-02-14 10:05:04 +00:00
plugins = [
"sqlalchemy.ext.mypy.plugin"
]
[[tool.mypy.overrides]]
module = "tests.*"
ignore_errors = true
2023-01-21 19:00:45 +00:00
[[tool.mypy.overrides]]
# Telegram does not use implicit_optional = false in the current version.
module = "telegram.*"
implicit_optional = true
2022-05-25 10:13:37 +00:00
[tool.pyright]
include = ["freqtrade"]
exclude = [
"**/__pycache__",
"build_helpers/*.py",
]
ignore = ["freqtrade/vendor/**"]
[tool.ruff]
line-length = 100
2023-08-16 11:16:23 +00:00
extend-exclude = [".env", ".venv"]
2023-02-25 19:50:26 +00:00
target-version = "py38"
[tool.ruff.lint]
2023-09-18 05:08:08 +00:00
# Exclude UP036 as it's causing the "exit if < 3.9" to fail.
extend-select = [
2023-02-25 19:50:26 +00:00
"C90", # mccabe
2024-04-20 08:25:23 +00:00
# "B", # bugbear
2023-02-25 19:50:26 +00:00
# "N", # pep8-naming
2023-04-17 18:32:07 +00:00
"F", # pyflakes
"E", # pycodestyle
"W", # pycodestyle
2023-03-19 17:05:08 +00:00
"UP", # pyupgrade
2024-05-12 13:07:00 +00:00
"I", # isort
2023-02-23 06:12:54 +00:00
"TID", # flake8-tidy-imports
# "EXE", # flake8-executable
2024-04-20 08:25:23 +00:00
# "C4", # flake8-comprehensions
2023-02-23 06:12:54 +00:00
"YTT", # flake8-2020
2023-03-19 16:57:56 +00:00
# "S", # flake8-bandit
2023-02-23 06:12:54 +00:00
# "DTZ", # flake8-datetimez
# "RSE", # flake8-raise
# "TCH", # flake8-type-checking
2023-03-19 16:57:56 +00:00
"PTH", # flake8-use-pathlib
2024-05-12 16:08:47 +00:00
# "RUF", # ruff
]
2023-10-23 16:06:31 +00:00
extend-ignore = [
"E241", # Multiple spaces after comma
"E272", # Multiple spaces before keyword
"E221", # Multiple spaces before operator
2024-04-20 08:13:14 +00:00
"B007", # Loop control variable not used
2023-10-23 16:06:31 +00:00
]
2023-02-25 19:50:26 +00:00
[tool.ruff.lint.mccabe]
2023-02-25 19:50:26 +00:00
max-complexity = 12
2023-03-19 16:57:56 +00:00
[tool.ruff.lint.per-file-ignores]
2023-03-19 16:57:56 +00:00
"tests/*" = ["S"]
2024-04-20 08:13:14 +00:00
[tool.ruff.lint.flake8-bugbear]
# Allow default arguments like, e.g., `data: List[str] = fastapi.Query(None)`.
extend-immutable-calls = ["fastapi.Depends", "fastapi.Query"]
2024-05-12 13:07:00 +00:00
[tool.ruff.lint.isort]
lines-after-imports = 2
2024-05-12 13:20:36 +00:00
known-first-party = ["freqtrade_client"]
2024-05-12 13:07:00 +00:00
[tool.flake8]
# Default from https://flake8.pycqa.org/en/latest/user/options.html#cmdoption-flake8-ignore
# minus E226
ignore = ["E121","E123","E126","E24", "E203","E704","W503","W504"]
max-line-length = 100
max-complexity = 12
exclude = [
".git",
"__pycache__",
".eggs",
"user_data",
".venv",
".env",
]
2024-04-19 05:02:39 +00:00
[tool.codespell]
ignore-words-list = "coo,fo,strat,zar,selectin"
skip="*.svg,./user_data,./freqtrade/rpc/api_server/ui/installed"