[tool.poetry] name = "skyvern" version = "0.1.77" description = "" authors = ["Skyvern AI "] readme = "README.md" packages = [{ include = "skyvern" }, { include = "alembic" }] [tool.poetry.dependencies] python = "^3.11,<3.12" python-dotenv = "^1.0.0" openai = ">=1.68.2" sqlalchemy = {extras = ["mypy"], version = "^2.0.29"} aiohttp = "^3.8.5" python-multipart = "^0.0.6" toml = "^0.10.2" jinja2 = "^3.1.2" uvicorn = {extras = ["standard"], version = "^0.24.0.post1"} litellm = "1.66.1" playwright = "1.46.0" pillow = "^10.1.0" starlette-context = "^0.3.6" ddtrace = "^2.3.2" pydantic = "^2.5.2" pydantic-settings = "^2.1.0" fastapi = "^0.115.4" psycopg = {version = "3.1.18", extras = ["binary", "pool"]} alembic = "^1.12.1" python-jose = {extras = ["cryptography"], version = "^3.3.0"} cachetools = "^5.3.2" aioboto3 = "^12.0.0" commentjson = "^0.9.0" asyncache = "^0.3.1" orjson = "^3.9.10" structlog = "^23.2.0" typer = ">=0.9.0,<1.0" types-toml = "^0.10.8.7" httpx = {version = "^0.27.0", extras = ["socks"]} filetype = "^1.2.0" redis = "^5.0.3" onnxruntime = "<1.17" aioredlock = "^0.7.3" stripe = "^9.7.0" tldextract = "^5.1.2" websockets = "^12.0" email-validator = "^2.2.0" temporalio = "^1.6.0" requests-toolbelt = "^1.0.0" posthog = "^3.7.0" aiofiles = "^24.1.0" pyotp = "^2.9.0" asyncpg = "^0.30.0" json-repair = "^0.34.0" pypdf = "^5.1.0" fastmcp = "^0.4.1" psutil = ">=7.0.0" tiktoken = ">=0.9.0" [tool.poetry.group.dev.dependencies] isort = "^5.13.2" mypy = "^1.4.1" flake8 = "^6.0.0" types-requests = "^2.31.0.2" pytest = "^7.4.0" pytest-asyncio = "^0.21.1" watchdog = "^3.0.0" mock = "^5.1.0" autoflake = "^2.2.0" pydevd-pycharm = "^233.6745.319" ipython = "^8.17.2" typer = "^0.9.0" ipykernel = "^6.26.0" notebook = "^7.0.6" freezegun = "^1.2.2" snoop = "^0.4.3" rich = {extras = ["jupyter"], version = "^13.7.0"} fpdf = "^1.7.2" pypdf = "^5.0.1" twine = "^6.1.0" build = "^1.2.2.post1" pandas = "^2.2.3" pre-commit = "^4.2.0" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.ruff] exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", ".pyenv", ".pytest_cache", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "site-packages", "venv", "alembic/env.py", ] line-length = 120 target-version = "py311" [tool.isort] profile = "black" multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true ensure_newline_before_comments = true line_length = 120 sections = ["FUTURE", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"] skip_glob = [".tox", "__pycache__", "*.pyc", "venv*/*", "reports", "venv", "env", "node_modules", ".env", ".venv", "dist"] skip = ["webeye/actions/__init__.py", "forge/sdk/__init__.py"] [tool.mypy] plugins = "sqlalchemy.ext.mypy.plugin" [tool.poetry.scripts] skyvern = "skyvern.cli.commands:cli_app" [tool.codeflash] # All paths are relative to this pyproject.toml's directory. module-root = "skyvern" tests-root = "codeflash-tests" test-framework = "pytest" ignore-paths = ["skyvern/client"] formatter-cmds = ["ruff check --exit-zero --fix $file", "ruff format $file"]