SurfSense/surfsense_backend/pyproject.toml
DESKTOP-RTLN3BA\$punk 2b1d33db19 security: CVE-2025-64712 fix
- Removed outdated dependencies: unstructured-client and langchain-unstructured.
- Added new versions for unstructured-client (0.42.3), unstructured[all-docs] (0.18.31), and langchain-unstructured (1.0.1).
2026-02-03 13:27:09 -08:00

167 lines
3.9 KiB
TOML

[project]
name = "surf-new-backend"
version = "0.0.12"
description = "SurfSense Backend"
requires-python = ">=3.12"
dependencies = [
"alembic>=1.13.0",
"asyncpg>=0.30.0",
"datasets>=2.21.0",
"pyarrow>=15.0.0,<19.0.0",
"discord-py>=2.5.2",
"docling>=2.15.0",
"fastapi>=0.115.8",
"github3.py==4.0.1",
"google-api-python-client>=2.156.0",
"google-auth-oauthlib>=1.2.1",
"kokoro>=0.9.4",
"linkup-sdk>=0.2.4",
"llama-cloud-services>=0.6.25",
"markdownify>=0.14.1",
"notion-client>=2.3.0",
"numpy>=1.24.0",
"pgvector>=0.3.6",
"playwright>=1.50.0",
"pypdf>=5.1.0",
"python-ffmpeg>=2.0.12",
"rerankers[flashrank]>=0.7.1",
"sentence-transformers>=3.4.1",
"slack-sdk>=3.34.0",
"soundfile>=0.13.1",
"spacy>=3.8.7",
"en-core-web-sm@https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl",
"static-ffmpeg>=2.13",
"tavily-python>=0.3.2",
"uvicorn[standard]>=0.34.0",
"validators>=0.34.0",
"youtube-transcript-api>=1.0.3",
"elasticsearch>=9.1.1",
"faster-whisper>=1.1.0",
"celery[redis]>=5.5.3",
"flower>=2.0.1",
"redis>=5.2.1",
"firecrawl-py>=4.9.0",
"boto3>=1.35.0",
"langchain-community>=0.3.31",
"litellm>=1.80.10",
"langchain-litellm>=0.3.5",
"fake-useragent>=2.2.0",
"trafilatura>=2.0.0",
"fastapi-users[oauth,sqlalchemy]>=15.0.3",
"chonkie[all]>=1.5.0",
"langgraph-checkpoint-postgres>=3.0.2",
"psycopg[binary,pool]>=3.3.2",
"mcp>=1.25.0",
"starlette>=0.40.0,<0.51.0",
"sse-starlette>=3.1.1,<3.1.2",
"gitingest>=0.3.1",
"composio>=0.10.9",
"deepagents>=0.3.8",
"langchain>=1.2.6",
"langgraph>=1.0.5",
"unstructured[all-docs]>=0.18.31",
"unstructured-client>=0.42.3",
"langchain-unstructured>=1.0.1",
]
[dependency-groups]
dev = [
"ruff>=0.12.5",
]
[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
# Python 3.12
target-version = "py312"
[tool.ruff.lint]
select = [
"E4", # pycodestyle errors
"E7", # pycodestyle errors
"E9", # pycodestyle errors
"F", # Pyflakes
"I", # isort
"N", # pep8-naming
"UP", # pyupgrade
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"T20", # flake8-print
"SIM", # flake8-simplify
"RUF", # Ruff-specific rules
]
ignore = [
"E501", # Line too long (handled by formatter)
"B008", # Do not perform function calls in argument defaults
"T201", # Print found (allow print statements)
"RUF012", # Mutable class attributes should be annotated with `typing.ClassVar`
]
extend-select = ["I"]
# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []
# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
[tool.ruff.format]
# Use double quotes for strings.
quote-style = "double"
# Indent with spaces, rather than tabs.
indent-style = "space"
# Respect magic trailing commas.
skip-magic-trailing-comma = false
# Automatically detect the appropriate line ending.
line-ending = "auto"
[tool.ruff.lint.isort]
# Group imports by type
known-first-party = ["app"]
force-single-line = false
combine-as-imports = true
[tool.setuptools.packages.find]
where = ["."]
include = ["app*", "alembic*"]
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"