aboutsummaryrefslogtreecommitdiff
path: root/R2R/pyproject.toml
blob: 153e2cd47621c36bc0c84d27203b11f7e90c95d3 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
[build-system]
requires = ["poetry-core", "setuptools", "wheel"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "r2r"
version = "0.2.59"
description = "SciPhi R2R"
authors = ["Owen Colegrove <owen@sciphi.ai>"]
license = "MIT"
readme = "README.md"
include = ["config.json", "compose.yaml", "compose.neo4j.yaml"]

[tool.poetry.dependencies]
# Python Versions
python = ">=3.9,<3.13"

# Required dependencies

# python
pydantic = "^2.6.3"
python-multipart = "^0.0.9"

# infrastructure
fastapi = "^0.109.2"
fire = "^0.5.0"
gunicorn = "^21.2.0"
requests = "^2.31.0"
types-requests = "^2.31.0"
uvicorn = "^0.27.0.post1"

# TODO - Make some of these optional
# async db providers
aiosqlite = "^0.20.0"
asyncpg = "^0.29.0"
redis = "^5.0.4"

# ingestion
beautifulsoup4 = "^4.12.3"
openpyxl = "^3.1.2"
markdown = "^3.6"
pypdf = "^4.2.0"
python-pptx = "^0.6.23"
python-docx = "^1.1.0"
nest-asyncio = "^1.6.0"
opencv-python = { version = "^4.10.0.82", optional = true }
moviepy = { version = "^1.0.3", optional = true }

# embedding providers
tiktoken = {version = "^0.5.2", optional = true}
sentence-transformers = {version = "^2.7.0", optional = true}

# vector db providers
vecs = "^0.4.0"

# llm providers
litellm = "^1.35.18"
openai = "^1.11.1"

# integrations
fsspec = "^2024.6.0"
posthog = "^3.5.0"
sqlalchemy = "^2.0.30"
ollama = "^0.2.1"
neo4j = "^5.21.0"

[tool.poetry.extras]
all = ["tiktoken", "sentence-transformers", "moviepy", "opencv-python"]
local-embedding = ["sentence-transformers"]
ingest-movies = ["moviepy", "opencv-python"]

[tool.poetry.group.dev.dependencies]
black = "^24.3.0"
codecov = "^2.1.13"
flake8 = "6.1.0"
isort = "5.12.0"
mypy = "^1.5.1"
pre-commit = "^2.9"
pytest = "^8.2.0"
pytest-asyncio = "^0.23.6"
pytest-dependency = "^0.6.0"
pytest-mock = "^3.14.0"
pytest-cov = "^5.0.0"

[tool.poetry.scripts]
r2r = "r2r.cli.cli:main"

[tool.black]
line-length = 79

[tool.mypy]
ignore_missing_imports = true
exclude = 'playground/.*|deprecated/.*|dump/.*|docs/source|vecs/*'

[[tool.mypy.overrides]]
module = "yaml"
ignore_missing_imports = true

[tool.pytest.ini_options]
asyncio_mode = "auto"
addopts = "--cov=r2r --cov-report=term-missing --cov-report=xml"
testpaths = [
    "tests",
]
filterwarnings = [
    "ignore::DeprecationWarning",
    "ignore::pytest.PytestUnraisableExceptionWarning",
]