mirror of
https://github.com/langchain-ai/deepagents.git
synced 2026-07-21 17:25:26 -04:00
44daa243bb
Raises the minimum versions for LangChain integration packages across package and example `pyproject.toml` files to the latest stable releases currently available. Regenerates each package/example `uv.lock` by running `uv lock` in every directory with a `pyproject.toml`, so lockfiles match the updated dependency constraints.
182 lines
6.7 KiB
TOML
182 lines
6.7 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "deepagents-cli"
|
|
version = "0.2.2"
|
|
description = "Deployment tooling for Deep Agents - bundle, run, and ship agents to LangGraph Platform."
|
|
readme = "README.md"
|
|
license = { text = "MIT" }
|
|
requires-python = ">=3.11,<4.0"
|
|
keywords = ["agents", "ai", "cli", "deploy", "llm", "langgraph", "langchain", "deep-agent"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Environment :: Console",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Programming Language :: Python :: 3.14",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
]
|
|
dependencies = [
|
|
# Framework
|
|
"deepagents>=0.6.12",
|
|
"langchain>=1.3.12,<2.0.0",
|
|
|
|
# Bundling & deploy server
|
|
"langgraph-sdk>=0.4.2,<1.0.0",
|
|
"httpx>=0.28.1,<1.0.0",
|
|
|
|
# LangSmith
|
|
"langsmith>=0.9.3",
|
|
|
|
# Utilities
|
|
"python-dotenv>=1.2.2,<2.0.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
deepagents = "deepagents_cli:cli_main"
|
|
deepagents-cli = "deepagents_cli:cli_main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://docs.langchain.com/oss/python/deepagents/overview"
|
|
Documentation = "https://reference.langchain.com/python/deepagents/"
|
|
Repository = "https://github.com/langchain-ai/deepagents"
|
|
Issues = "https://github.com/langchain-ai/deepagents/issues"
|
|
Changelog = "https://github.com/langchain-ai/deepagents/blob/main/libs/cli/CHANGELOG.md"
|
|
Twitter = "https://x.com/langchain_oss"
|
|
Slack = "https://www.langchain.com/join-community"
|
|
Reddit = "https://www.reddit.com/r/LangChain/"
|
|
|
|
[dependency-groups]
|
|
test = [
|
|
"build>=1.5.0,<2.0.0",
|
|
"ruff>=0.15.20,<1.0.0",
|
|
"ty>=0.0.54,<1.0.0",
|
|
"pytest>=9.1.1,<10.0.0",
|
|
"pytest-asyncio>=1.4.0,<2.0.0",
|
|
"pytest-cov>=7.1.0,<8.0.0",
|
|
"pytest-mock>=3.15.1,<4.0.0",
|
|
"pytest-socket>=0.8.0,<1.0.0",
|
|
"pytest-timeout>=2.4.0,<3.0.0",
|
|
"pytest-watcher>=0.6.3,<1.0.0",
|
|
"pytest-xdist>=3.8.0,<4.0.0",
|
|
"responses>=0.26.1,<1.0.0",
|
|
"twine>=6.2.0,<7.0.0",
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["deepagents_cli"]
|
|
|
|
[tool.uv.sources]
|
|
deepagents = { path = "../deepagents", editable = true }
|
|
|
|
[tool.ty.environment]
|
|
python-version = "3.11"
|
|
extra-paths = ["../deepagents"]
|
|
|
|
[tool.ty.rules]
|
|
# https://docs.astral.sh/ty/rules/
|
|
division-by-zero = "error"
|
|
|
|
[tool.ruff.format]
|
|
docstring-code-format = true
|
|
docstring-code-line-length = 100
|
|
|
|
[tool.ruff.lint]
|
|
preview = true
|
|
select = ["ALL"]
|
|
ignore = [
|
|
"C90", # McCabe complexity
|
|
"COM812", # Messes with the formatter
|
|
"CPY", # No copyright
|
|
"FBT", # Boolean positional arguments (too pedantic)
|
|
"FIX002", # Line contains TODO
|
|
"ISC001", # Messes with the formatter
|
|
"PERF203", # Rarely useful
|
|
"PLC0414", # Inconsistent with how type checkers expect to be notified of intentional re-exports
|
|
"PLC0415", # Lazy imports are used extensively throughout the CLI for startup performance (deferred heavy imports)
|
|
"PLR09", # Too many something (args, branches, returns, statements, etc)
|
|
"PLR1702", # Too many nested blocks
|
|
"SLF001", # Private member access
|
|
"TD002", # Missing author in TODO
|
|
"TD003", # Missing issue link in TODO
|
|
]
|
|
unfixable = ["B028"] # People should intentionally tune the stacklevel
|
|
extend-safe-fixes = ["PLR6201"]
|
|
|
|
flake8-annotations.allow-star-arg-any = true
|
|
flake8-annotations.mypy-init-return = true
|
|
|
|
[tool.ruff.lint.flake8-tidy-imports]
|
|
ban-relative-imports = "all"
|
|
|
|
[tool.ruff.lint.isort]
|
|
force-single-line = false
|
|
combine-as-imports = true
|
|
known-first-party = ["deepagents_cli"]
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
ignore-var-parameters = true
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests/**" = [
|
|
"ANN001", # Missing type annotation for function argument — not needed in tests
|
|
"ANN201", # Missing return type annotation — not needed in tests
|
|
"D1", # Missing docstrings — not needed in tests
|
|
"DOC", # Docstring conventions — not needed in tests
|
|
"F401", # Imported but unused — test fixtures may appear unused
|
|
"PLC0415", # Lazy imports — test organization patterns
|
|
"PLC1901", # Comparison to empty string — fine in test assertions
|
|
"PLC2701", # Private name import — tests need access to internals
|
|
"PLR2004", # Magic value used in comparison — fine in test assertions
|
|
"PLR6201", # Literal membership test — fine in tests
|
|
"PLR6301", # Method could be a function — test class organization
|
|
"PLW0108", # Lambda may be unnecessary — fine in test mocks
|
|
"RUF001", # Ambiguous characters — fine in test strings
|
|
"S", # Security warnings — not applicable to tests
|
|
"SLF", # Private member access — tests need access to internals
|
|
]
|
|
"scripts/**" = [
|
|
"BLE001", # Blind exception catch — resilience in standalone scripts
|
|
"INP", # Missing `__init__.py` — scripts are standalone
|
|
"S", # Security warnings — not applicable to scripts
|
|
"T201", # `print` found — scripts use print for output
|
|
]
|
|
"examples/**" = [
|
|
"ANN001", # Missing type annotation for function argument — examples prioritize clarity
|
|
"ANN201", # Missing return type annotation — examples prioritize clarity
|
|
"BLE001", # Blind exception catch — resilience in example scripts
|
|
"INP001", # Missing `__init__.py` — examples are standalone
|
|
"N806", # Variable in function should be lowercase — example naming conventions
|
|
"PLC0415", # Lazy import — example organization patterns
|
|
"PLR2004", # Magic value used in comparison — fine in examples
|
|
"T201", # `print` found — examples use print for output
|
|
"TRY300", # Consider moving to `else` block — examples prioritize readability
|
|
]
|
|
"deepagents_cli/deploy/**" = [
|
|
"BLE001", # Blind exception catch — resilience in CLI commands
|
|
"DOC", # Docstring conventions — internal CLI module
|
|
"PLW0108", # Lambda may be unnecessary — closures over local vars require lambdas
|
|
"S", # Security warnings — subprocess calls are controlled CLI invocations
|
|
"SIM105", # contextlib.suppress — try/except/pass is clearer in these contexts
|
|
"T201", # `print` found — CLI commands use print for user output
|
|
"TC003", # Move import into TYPE_CHECKING — imports are used at runtime
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
omit = ["tests/*"]
|
|
|
|
[tool.pytest.ini_options]
|
|
timeout = 30 # Default timeout for all tests (can be overridden per-test)
|
|
|
|
addopts = "--strict-markers --strict-config --durations=5"
|
|
asyncio_mode = "auto"
|
|
asyncio_default_fixture_loop_scope = "function"
|