pyproject.toml
Rama main · réplica de lectura del repositorio original.
[build-system]
requires = ["hatchling>=1.26.3"]
build-backend = "hatchling.build"
[project]
name = "agentcrawl-ai"
version = "0.7.0"
description = "Self-hosted web scraping and Markdown extraction for AI agents."
readme = "README.md"
requires-python = ">=3.10"
license = "Apache-2.0"
authors = [{ name = "AgentCrawl contributors" }]
keywords = [
"ai-agents",
"crawler",
"markdown",
"mcp",
"scraping",
"self-hosted",
"web-extraction",
]
classifiers = [
"Development Status :: 3 - Alpha",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
"html2text>=2025.4.15,<2026.0.0",
"regex>=2024.11.6",
]
[project.urls]
Homepage = "https://github.com/JorG18/agentcrawl"
Repository = "https://github.com/JorG18/agentcrawl"
Issues = "https://github.com/JorG18/agentcrawl/issues"
Documentation = "https://github.com/JorG18/agentcrawl#readme"
[project.optional-dependencies]
browser = ["playwright>=1.60.0,<2.0.0"]
# Playwright patched against automation detection (browser_engine="patchright").
stealth = ["playwright>=1.60.0,<2.0.0", "patchright>=1.58.0,<2.0.0"]
# CloakBrowser's patched Chromium (browser_engine="cloak"); the binary is
# downloaded by the user under its own license: python -m cloakbrowser install.
cloak = ["playwright>=1.60.0,<2.0.0", "cloakbrowser>=0.6.0,<0.7.0"]
docs = ["PyMuPDF>=1.26.0,<2.0.0"]
llm = [
"langchain>=1.3.2,<2.0.0",
"pydantic>=2.13.4,<3.0.0",
]
quality = ["semchunk>=4.0.0,<5.0.0"]
openai = [
"langchain>=1.3.2,<2.0.0",
"langchain-openai>=1.2.2,<2.0.0",
"pydantic>=2.13.4,<3.0.0",
]
anthropic = [
"langchain>=1.3.2,<2.0.0",
"langchain-anthropic>=1.4.4,<2.0.0",
"pydantic>=2.13.4,<3.0.0",
]
ollama = [
"langchain>=1.3.2,<2.0.0",
"langchain-ollama>=1.1.0,<2.0.0",
"pydantic>=2.13.4,<3.0.0",
]
server = [
# 0.133 is the first fastapi that accepts the starlette floor below.
"fastapi>=0.133.0,<1.0.0",
"pydantic>=2.13.4,<3.0.0",
# Security floor for fastapi's transitive dependency (CVE-2026-54282/54283).
"starlette>=1.3.1,<2.0.0",
"uvicorn[standard]>=0.38.0,<1.0.0",
]
mcp = [
"mcp>=1.30.0,<2.0.0",
"pydantic>=2.13.4,<3.0.0",
]
dev = ["httpx2>=2.0.0,<3.0.0", "pytest>=8.0.0", "ruff>=0.13.0,<0.17"]
[project.scripts]
agentcrawl = "agentcrawl.cli:main"
agentcrawl-mcp = "agentcrawl.mcp_server:main"
[tool.hatch.build.targets.wheel]
packages = ["agentcrawl"]
# Explicit allowlist: without it hatch packs every file not excluded by the
# repo's own .gitignore, so locally ignored working files (agent plans, notes)
# ended up in the published sdist.
[tool.hatch.build.targets.sdist]
include = [
"/agentcrawl",
"/tests",
"/benchmarks",
"/docs",
"/examples",
"/integrations",
"/README.md",
"/CHANGELOG.md",
"/ROADMAP.md",
"/SECURITY.md",
"/CONTRIBUTING.md",
"/INSTALL_FOR_AGENTS.md",
"/LICENSE",
"/.env.example",
]
exclude = ["__pycache__", "*.pyc"]
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["."]
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
# Pinned explicitly: Ruff 0.16 widened its default rule set, which turned a
# green tree red in CI without a single code change. Widen on purpose, not by
# upgrading.
select = ["E4", "E7", "E9", "F"]