arcade-mcp/arcade/pyproject.toml
Sam Partee 4b469eaa66
CI pipeline (#4)
Start of the CI/CD workflow for the python library and actor.

Covered:
- multiple python versions with Tox (3.10+) and pytest
- Docs eventually with mkdocs (commented out for now)
- Linting and formatting with Ruff and prettier
- Codecov
- include the mypy checks when the mypy errors are resolved.
2024-07-16 17:36:32 -07:00

128 lines
2.2 KiB
TOML

[tool.poetry]
name = "arcade-ai"
version = "0.1.0"
description = ""
packages = [
{include="arcade", from="."}
]
authors = ["Arcade AI <sam@arcade-ai.com>"]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.dependencies]
python = ">=3.10,<4.0"
pydantic = {extras = ["email"], version = "^2.7.0"}
fastapi = "^0.110.0"
redis = "^5.0.3"
uvicorn = "^0.28.0"
loguru = "^0.7.2"
pydantic-settings = "^2.2.1"
msgspec = "^0.18.6"
msgpack = "^1.0.8"
typer = "^0.9.0"
rich = "^13.7.1"
toml = "^0.10.2"
tomlkit = "^0.12.4"
stdlib-list = "^0.10.0"
requests = "^2.26.0"
[tool.poetry.group.dev.dependencies]
pytest = "^7.2.0"
pytest-cov = "^4.0.0"
deptry = "^0.12.0"
mypy = "^1.5.1"
pre-commit = "^3.4.0"
tox = "^4.11.1"
pytest-asyncio = "^0.23.7"
types-toml = "^0.10.8"
[tool.poetry.group.docs.dependencies]
mkdocs = "^1.4.2"
mkdocs-material = "^9.2.7"
mkdocstrings = {extras = ["python"], version = "^0.23.0"}
[tool.poetry.scripts]
arcade = "arcade.cli.main:cli"
[tool.mypy]
files = ["arcade"]
disallow_untyped_defs = "True"
disallow_any_unimported = "True"
no_implicit_optional = "True"
check_untyped_defs = "True"
warn_return_any = "True"
warn_unused_ignores = "True"
show_error_codes = "True"
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.ruff]
target-version = "py39"
line-length = 100
fix = true
select = [
# flake8-2020
"YTT",
# flake8-bandit
"S",
# flake8-bugbear
"B",
# flake8-builtins
"A",
# flake8-comprehensions
"C4",
# flake8-debugger
"T10",
# flake8-simplify
"SIM",
# isort
"I",
# mccabe
"C90",
# pycodestyle
"E", "W",
# pyflakes
"F",
# pygrep-hooks
"PGH",
# pyupgrade
"UP",
# ruff
"RUF",
# tryceratops
"TRY",
]
ignore = [ # TODO work to remove these
# LineTooLong
"E501",
# DoNotAssignLambda
"E731",
# raise from (cli specific)
"TRY200",
# Depends function in arg string
"B008",
# raise from (cli specific)
"B904",
# long message exceptions
"TRY003"
]
[tool.ruff.format]
preview = true
[tool.coverage.report]
skip_empty = true
[tool.coverage.run]
branch = true
source = ["arcade"]
[tool.ruff.per-file-ignores]
"tests/*" = ["S101"]