Files
EvoScientist/pyproject.toml
T
2026-08-13 10:18:33 +08:00

195 lines
4.6 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[project]
name = "EvoScientist"
version = "0.2.3"
description = "EvoScientist: Towards Self-Evolving AI Scientists for End-to-End Scientific Discovery"
readme = "README.md"
requires-python = ">=3.11"
license = "Apache-2.0"
authors = [
{ name = "Xi Zhang" },
]
maintainers = [
{ name = "Xi Zhang" },
]
keywords = ["ai-scientific", "scientific-discovery", "self-evolving", "ai-scientists", "end-to-end"]
classifiers = [
"Programming Language :: Python :: 3",
]
dependencies = [
"deepagents[quickjs]~=0.6.12",
"langchain>=1.3",
"langchain-anthropic>=1.4",
"langchain-openai>=1.2",
"langchain-nvidia-ai-endpoints>=1.2",
"langchain-google-genai>=4.2",
"langchain-ollama>=1.1",
"langchain-openrouter>=0.2.5",
"tavily-python>=0.7",
"pyyaml>=6.0",
"rich>=15.0",
"prompt-toolkit>=3.0",
"questionary>=2.1",
"typer>=0.24",
"python-dotenv>=1.0",
"langgraph-cli[inmem]>=0.4",
"langgraph-checkpoint-sqlite>=3.0",
"httpx>=0.28",
"pydantic>=2.10",
# Delegation JWT verification for the model registry HTTP API (7.3);
# previously only a transitive dependency, now used directly.
"PyJWT>=2.8",
# read_file image pipeline (sniff/downsample) in middleware/read_file_images.
"Pillow>=10",
"psutil>=6.0",
"filelock>=3.16",
"lazy-loader>=0.5",
"markdownify>=1.2",
"nest-asyncio>=1.6",
"tzlocal>=5.0",
"langchain-mcp-adapters>=0.2",
# <8.2.7: 8.2.7 Kitty "report-all-keys" breaks CJK input on iTerm2
"textual>=8.0,<8.2.7",
]
[dependency-groups]
dev = [
"pytest>=8.0",
"pytest-asyncio>=1.0",
"pytest-cov>=5.0",
"pytest-timeout>=2.4",
"ruff>=0.5",
"build>=1.0",
"pre-commit>=3.5.0",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-asyncio>=1.0",
"pytest-cov>=5.0",
"pytest-timeout>=2.4",
"ruff>=0.5",
"build>=1.0",
"pre-commit>=3.5.0",
]
telegram = ["python-telegram-bot>=21.0"]
discord = ["discord.py>=2.3"]
slack = ["slack-sdk>=3.27", "aiohttp>=3.9"]
wechat = ["pycryptodome>=3.20", "aiohttp>=3.9", "qrcode>=7.4", "certifi>=2024.0"]
feishu = ["lark-oapi>=1.4.0"]
qq = [
"qq-botpy>=1.0",
"cryptography>=41.0",
"qrcode>=7.4",
]
stt = ["faster-whisper>=1.0"]
oauth = ["ccproxy-api>=0.2.7"]
all-channels = [
"python-telegram-bot>=21.0",
"discord.py>=2.3",
"aiohttp>=3.9",
"slack-sdk>=3.27",
"pycryptodome>=3.20",
"qrcode>=7.4",
"certifi>=2024.0",
"lark-oapi>=1.4.0",
"qq-botpy>=1.0",
"cryptography>=41.0",
"qrcode>=7.4",
]
[project.urls]
"Homepage" = "https://github.com/EvoScientist/EvoScientist"
"Bug Tracker" = "https://github.com/EvoScientist/EvoScientist/issues"
"Documentation" = "https://github.com/EvoScientist/EvoScientist#readme"
[project.scripts]
evoscientist = "EvoScientist.cli:main"
EvoScientist = "EvoScientist.cli:main"
evosci = "EvoScientist.cli:main"
EvoSci = "EvoScientist.cli:main"
[build-system]
requires = ["setuptools>=68.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
include = ["EvoScientist*"]
[tool.setuptools.package-data]
EvoScientist = [
"subagents/*.yaml",
"langgraph_dev/*.json",
"skills/**/*",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
filterwarnings = [
"ignore::UserWarning:langchain_nvidia_ai_endpoints",
]
[tool.ruff]
# Exclude a variety of commonly ignored directories.
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",
]
line-length = 88
indent-width = 4
target-version = "py311"
[tool.ruff.lint]
select = [
"E", "W", # pycodestyle (Error & Warning)
"F", # Pyflakes (Logical errors)
"I", # isort (Import sorting)
"B", # flake8-bugbear (Common bugs)
"C4", # flake8-comprehensions (List/Dict perf)
"UP", # pyupgrade (Modern Python syntax)
"PT", # flake8-pytest-style (If using Pytest)
"PLE", # Pylint Error
"RUF", # Ruff specific rules
"FURB", # Refurb rules
]
ignore = [
"E501", # Formatter takes care of that
]
fixable = ["ALL"]
unfixable = []
allowed-confusables = ["–", "❯", ":", "(", ")", ","]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
docstring-code-format = false