pyproject.toml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. [build-system]
  2. requires = ["setuptools>=61.0.0", "wheel"]
  3. build-backend = "setuptools.build_meta"
  4. #[[tool.poetry.source]]
  5. #name = "aliyun"
  6. #url = "https://mirrors.aliyun.com/pypi/simple"
  7. #priority = "primary"
  8. [[tool.poetry.source]]
  9. name = "tsinghua"
  10. url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
  11. priority = "primary"
  12. [project]
  13. name = "r2r"
  14. version = "3.6.6"
  15. description = "SciPhi R2R"
  16. readme = "README.md"
  17. license = {text = "MIT"}
  18. authors = [
  19. {name = "Owen Colegrove", email = "owen@sciphi.ai"},
  20. ]
  21. requires-python = ">=3.10,<3.13"
  22. dependencies = [
  23. "aiofiles >=24.1.0,<25.0.0",
  24. "alembic >=1.13.3,<2.0.0",
  25. "fastapi >=0.115.11,<0.116.0",
  26. "httpx >=0.27.0",
  27. "openai >=1.95.0",
  28. "python-dotenv >=1.0.1,<2.0.0",
  29. "psycopg-binary >=3.2.3,<4.0.0",
  30. "requests >=2.31.0,<3.0.0",
  31. "tiktoken >=0.8.0,<0.9.0",
  32. "toml >=0.10.2,<0.11.0",
  33. "types-requests >=2.31.0,<3.0.0",
  34. "types-aiofiles >=24.1.0.20240626,<25.0.0",
  35. "typing-extensions >=4.12.2,<5.0.0",
  36. "pydantic>=2.10.6",
  37. "python-json-logger>=3.2.1",
  38. "filetype>=1.2.0",
  39. ]
  40. [project.optional-dependencies]
  41. core = [
  42. "aiohttp >=3.10.10,<4.0.0",
  43. "aioshutil >=1.5,<2.0",
  44. "aiosqlite >=0.20.0,<0.21.0",
  45. "anthropic >=0.49.0",
  46. "apscheduler >=3.10.4,<4.0.0",
  47. "asyncpg >=0.29.0,<0.30.0",
  48. "azure-ai-inference >=1.0.0b8,<2.0.0",
  49. "azure-ai-ml >=1.24.0,<2.0.0",
  50. "bcrypt >=4.1.3,<5.0.0",
  51. "beautifulsoup4 >=4.12.3,<5.0.0",
  52. "boto3 >=1.35.17,<2.0.0",
  53. "colorlog >=6.9.0,<7.0.0",
  54. "docutils >=0.21.2,<0.22.0",
  55. "epub >=0.5.2,<0.6.0",
  56. "firecrawl-py >=1.13.5",
  57. "fsspec >=2024.6.0,<2025.0.0",
  58. "future >=1.0.0,<2.0.0",
  59. "google-auth >=2.37.0,<3.0.0",
  60. "google-auth-oauthlib >=1.2.1,<2.0.0",
  61. "google-genai >=0.6.0,<0.7.0",
  62. "gunicorn >=21.2.0,<22.0.0",
  63. "hatchet-sdk ==0.47.0",
  64. "litellm >=1.69.3",
  65. "markdown >=3.6,<4.0",
  66. "mistralai>=1.5.2",
  67. "msg-parser>=1.2.0",
  68. "networkx >=3.3,<4.0",
  69. "numpy >=1.22.4,<1.29.0",
  70. "olefile >=0.47,<0.48",
  71. "ollama >=0.3.1,<0.4.0",
  72. "openpyxl >=3.1.2,<4.0.0",
  73. "orgparse >=0.4.20231004,<0.5.0",
  74. "pdf2image>=1.17.0",
  75. "pillow >=11.1.0,<12.0.0",
  76. "pillow-heif >=0.21.0,<0.22.0",
  77. "psutil >=6.0.0,<7.0.0",
  78. "pydantic[email] >=2.8.2,<3.0.0",
  79. "pyjwt >=2.8.0,<3.0.0",
  80. "pynacl >=1.5.0,<2.0.0",
  81. "pypdf >=4.2.0,<5.0.0",
  82. "pypdf2 >=3.0.1,<4.0.0",
  83. "python-docx >=1.1.0,<2.0.0",
  84. "python-multipart >=0.0.9,<0.0.19",
  85. "python-pptx >=1.0.1,<2.0.0",
  86. "pyyaml >=6.0.1,<7.0.0",
  87. "sendgrid >=6.11.0,<7.0.0",
  88. "mailersend >=0.5.6,<0.6.0",
  89. "sentry-sdk >=2.20.0,<3.0.0",
  90. "sqlalchemy >=2.0.30,<3.0.0",
  91. "striprtf >=0.0.28,<0.0.29",
  92. "supabase >=2.15.0,<3.0.0",
  93. "tokenizers ==0.19",
  94. "unstructured-client ==0.34.0",
  95. "uvicorn >=0.27.0.post1,<0.28.0",
  96. "vecs >=0.4.0,<0.5.0",
  97. "xlrd >=2.0.1,<3.0.0",
  98. ]
  99. [dependency-groups]
  100. dev = [
  101. "colorama >=0.4.6,<0.5.0",
  102. "mypy >=1.5.1,<2.0.0",
  103. "pre-commit >=2.9,<3.0",
  104. "pytest >=8.2.0,<9.0.0",
  105. "pytest-asyncio >=0.23.6,<0.24.0",
  106. "pytest-dependency >=0.6.0,<0.7.0",
  107. "pytest-mock >=3.14.0,<4.0.0",
  108. "pytest-cov>=5.0.0,<6.0.0",
  109. "pytest-html >=4.1.1,<5.0.0",
  110. "types-toml >=0.10.8,<0.11.0",
  111. "pytest-xdist >=3.6.1,<4.0.0",
  112. "ruff >=0.9.6,<0.10.0",
  113. ]
  114. tools = [
  115. "biopython>=1.85",
  116. "colorama >=0.4.6,<0.5.0",
  117. "firecrawl-py>=1.13.5",
  118. "numpy>=1.26.4",
  119. "pandas>=2.2.3",
  120. "scipy>=1.15.2",
  121. "simpy>=4.1.1",
  122. "statsmodels>=0.14.4",
  123. ]
  124. [project.scripts]
  125. r2r-serve = "r2r.serve:run_server"
  126. [tool.ruff]
  127. exclude = ["py/tests/*"]
  128. line-length = 79
  129. target-version = "py310"
  130. select = ["E", "F", "I", "B"]
  131. ignore = ["B008", "B024", "B026", "E501", "F402", "F403", "F405", "F841"]
  132. [tool.ruff.format]
  133. quote-style = "double"
  134. indent-style = "space"
  135. line-ending = "auto"
  136. [tool.mypy]
  137. ignore_missing_imports = true
  138. exclude = 'core/parsers/media/pyzerox/.*|playground/.*|deprecated/.*|dump/.*|docs/source|vecs/*|core/examples/*|sdk/examples/*|tests/*'
  139. [[tool.mypy.overrides]]
  140. module = "yaml"
  141. ignore_missing_imports = true
  142. [tool.pytest.ini_options]
  143. asyncio_mode = "auto"
  144. addopts = "--cov=r2r --cov-report=term-missing --cov-report=xml --cache-clear"
  145. testpaths = [
  146. "tests",
  147. ]
  148. filterwarnings = [
  149. "ignore::DeprecationWarning",
  150. "ignore::pytest.PytestUnraisableExceptionWarning",
  151. ]
  152. [tool.setuptools]
  153. packages = { find = { where = [ "." ], include = [ "r2r*", "sdk*", "shared*", "core*" ] } }
  154. include-package-data = true
  155. [tool.setuptools.package-data]
  156. core = ["configs/*.toml", "providers/database/prompts/*.yaml"]
  157. r2r = ["r2r.toml"]