pyproject.toml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. [tool.poetry]
  2. name = "embedchain"
  3. version = "0.1.29"
  4. description = "Data platform for LLMs - Load, index, retrieve and sync any unstructured data"
  5. authors = [
  6. "Taranjeet Singh <taranjeet@embedchain.ai>",
  7. "Deshraj Yadav <deshraj@embedchain.ai>",
  8. ]
  9. license = "Apache License"
  10. readme = "README.md"
  11. exclude = [
  12. "db",
  13. "configs",
  14. "notebooks"
  15. ]
  16. [build-system]
  17. requires = ["setuptools", "wheel"]
  18. build-backend = "setuptools.build_meta"
  19. [tool.ruff]
  20. select = ["E", "F"]
  21. ignore = []
  22. fixable = ["ALL"]
  23. unfixable = []
  24. exclude = [
  25. ".bzr",
  26. ".direnv",
  27. ".eggs",
  28. ".git",
  29. ".git-rewrite",
  30. ".hg",
  31. ".mypy_cache",
  32. ".nox",
  33. ".pants.d",
  34. ".pytype",
  35. ".ruff_cache",
  36. ".svn",
  37. ".tox",
  38. ".venv",
  39. "__pypackages__",
  40. "_build",
  41. "buck-out",
  42. "build",
  43. "dist",
  44. "node_modules",
  45. "venv"
  46. ]
  47. line-length = 120
  48. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
  49. target-version = "py38"
  50. [tool.ruff.mccabe]
  51. max-complexity = 10
  52. # Ignore `E402` (import violations) in all `__init__.py` files, and in `path/to/file.py`.
  53. [tool.ruff.per-file-ignores]
  54. "embedchain/__init__.py" = ["E401"]
  55. [tool.black]
  56. line-length = 120
  57. target-version = ["py38", "py39", "py310", "py311"]
  58. include = '\.pyi?$'
  59. exclude = '''
  60. /(
  61. \.eggs
  62. | \.git
  63. | \.hg
  64. | \.mypy_cache
  65. | \.nox
  66. | \.pants.d
  67. | \.pytype
  68. | \.ruff_cache
  69. | \.svn
  70. | \.tox
  71. | \.venv
  72. | __pypackages__
  73. | _build
  74. | buck-out
  75. | build
  76. | dist
  77. | node_modules
  78. | venv
  79. )/
  80. '''
  81. [tool.black.format]
  82. color = true
  83. [tool.poetry.dependencies]
  84. python = ">=3.9,<3.12"
  85. python-dotenv = "^1.0.0"
  86. langchain = "^0.0.336"
  87. requests = "^2.31.0"
  88. openai = ">=1.1.1"
  89. chromadb = "^0.4.17"
  90. posthog = "^3.0.2"
  91. tiktoken = { version = "^0.4.0", optional = true }
  92. youtube-transcript-api = { version = "^0.6.1", optional = true }
  93. beautifulsoup4 = { version = "^4.12.2", optional = true }
  94. pypdf = { version = "^3.11.0", optional = true }
  95. pytube = { version = "^15.0.0", optional = true }
  96. duckduckgo-search = { version = "^3.8.5", optional = true }
  97. llama-hub = { version = "^0.0.43", optional = true }
  98. llama-index = { version = "^0.8.65", optional = true }
  99. sentence-transformers = { version = "^2.2.2", optional = true }
  100. torch = { version = "2.0.0", optional = true }
  101. # Torch 2.0.1 is not compatible with poetry (https://github.com/pytorch/pytorch/issues/100974)
  102. gpt4all = { version = "2.0.2", optional = true }
  103. # 1.0.9 is not working for some users (https://github.com/nomic-ai/gpt4all/issues/1394)
  104. opensearch-py = { version = "2.3.1", optional = true }
  105. elasticsearch = { version = "^8.9.0", optional = true }
  106. flask = { version = "^2.3.3", optional = true }
  107. twilio = { version = "^8.5.0", optional = true }
  108. fastapi-poe = { version = "0.0.16", optional = true }
  109. discord = { version = "^2.3.2", optional = true }
  110. slack-sdk = { version = "3.21.3", optional = true }
  111. cohere = { version = "^4.27", optional = true }
  112. weaviate-client = { version = "^3.24.1", optional = true }
  113. docx2txt = { version = "^0.8", optional = true }
  114. pinecone-client = { version = "^2.2.4", optional = true }
  115. qdrant-client = { version = "1.6.3", optional = true }
  116. unstructured = {extras = ["local-inference", "all-docs"], version = "^0.10.18", optional = true}
  117. pillow = { version = "10.0.1", optional = true }
  118. torchvision = { version = ">=0.15.1, !=0.15.2", optional = true }
  119. ftfy = { version = "6.1.1", optional = true }
  120. regex = { version = "2023.8.8", optional = true }
  121. huggingface_hub = { version = "^0.17.3", optional = true }
  122. pymilvus = { version = "2.3.1", optional = true }
  123. google-cloud-aiplatform = { version = "^1.26.1", optional = true }
  124. replicate = { version = "^0.15.4", optional = true }
  125. schema = "^0.7.5"
  126. psycopg = { version = "^3.1.12", optional = true }
  127. psycopg-binary = { version = "^3.1.12", optional = true }
  128. psycopg-pool = { version = "^3.1.8", optional = true }
  129. mysql-connector-python = { version = "^8.1.0", optional = true }
  130. gitpython = { version = "^3.1.38", optional = true }
  131. yt_dlp = { version = "^2023.11.14", optional = true }
  132. PyGithub = { version = "^1.59.1", optional = true }
  133. feedparser = { version = "^6.0.10", optional = true }
  134. newspaper3k = { version = "^0.2.8", optional = true }
  135. listparser = { version = "^0.19", optional = true }
  136. [tool.poetry.group.dev.dependencies]
  137. black = "^23.3.0"
  138. pre-commit = "^3.2.2"
  139. ruff = "^0.0.220"
  140. pytest = "^7.3.1"
  141. pytest-mock = "^3.10.0"
  142. pytest-env = "^0.8.1"
  143. click = "^8.1.3"
  144. isort = "^5.12.0"
  145. pytest-cov = "^4.1.0"
  146. responses = "^0.23.3"
  147. mock = "^5.1.0"
  148. pytest-asyncio = "^0.21.1"
  149. [tool.poetry.extras]
  150. streamlit = ["streamlit"]
  151. community = ["llama-hub"]
  152. opensource = ["sentence-transformers", "torch", "gpt4all"]
  153. elasticsearch = ["elasticsearch"]
  154. opensearch = ["opensearch-py"]
  155. poe = ["fastapi-poe"]
  156. discord = ["discord"]
  157. slack = ["slack-sdk", "flask"]
  158. whatsapp = ["twilio", "flask"]
  159. weaviate = ["weaviate-client"]
  160. pinecone = ["pinecone-client"]
  161. qdrant = ["qdrant-client"]
  162. images = ["torch", "ftfy", "regex", "pillow", "torchvision"]
  163. huggingface_hub=["huggingface_hub"]
  164. cohere = ["cohere"]
  165. milvus = ["pymilvus"]
  166. dataloaders=[
  167. "youtube-transcript-api",
  168. "beautifulsoup4",
  169. "docx2txt",
  170. "duckduckgo-search",
  171. "pypdf",
  172. "pytube",
  173. "sentence-transformers",
  174. "unstructured",
  175. ]
  176. vertexai = ["google-cloud-aiplatform"]
  177. llama2 = ["replicate"]
  178. gmail = [
  179. "llama-hub",
  180. "requests",
  181. "google-api-python-client",
  182. "google-auth",
  183. "google-auth-oauthlib",
  184. "google-auth-httplib2",
  185. "google-api-core",
  186. ]
  187. json = ["llama-hub"]
  188. postgres = ["psycopg", "psycopg-binary", "psycopg-pool"]
  189. mysql = ["mysql-connector-python"]
  190. github = ["PyGithub", "gitpython"]
  191. youtube = [
  192. "yt_dlp",
  193. "youtube-transcript-api",
  194. ]
  195. rss_feed = ["feedparser", "listparser", "newspaper3k"]
  196. [tool.poetry.group.docs.dependencies]
  197. [tool.poetry.scripts]