[tool.poetry] name = "arcade-ai" version = "0.1.0" description = "" packages = [ {include="arcade", from="."} ] authors = ["Arcade AI "] [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.poetry.dependencies] python = ">=3.10,<4.0" pydantic = "^2.7.0" pydantic-settings = "^2.2.1" typer = "^0.9.0" rich = "^13.7.1" toml = "^0.10.2" tomlkit = "^0.12.4" requests = "^2.26.0" # TODO: is this really needed? openai = "^1.36.0" # TODO: relax to an earlier version that still has what we need pyjwt = "^2.8.0" fastapi = { version = "^0.110.0", optional = true } flask = { version = "^3.0.3", optional = true } [tool.poetry.group.dev.dependencies] pytest = "^7.2.0" pytest-cov = "^4.0.0" mypy = "^1.5.1" pre-commit = "^3.4.0" tox = "^4.11.1" pytest-asyncio = "^0.23.7" types-toml = "^0.10.8" uvicorn = "^0.22.0" [tool.poetry.extras] fastapi = ["fastapi"] flask = ["flask"] [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"]