content: [tool.poetry]
  name = "embedchain"
  version = "0.1.128"
  description = "Simplest open source retrieval (RAG) framework"
  authors = [
      "Taranjeet Singh <taranjeet@embedchain.ai>",
      "Deshraj Yadav <deshraj@embedchain.ai>",
  ]
  license = "Apache License"
  readme = "README.md"
  exclude = [
      "db",
      "configs",
      "notebooks"
  ]
  packages = [
      { include = "embedchain" },
  ]
  
  [build-system]
  build-backend = "poetry.core.masonry.api"
  requires = ["poetry-core"]
  
  [tool.ruff]
  line-length = 120
  exclude = [
      ".bzr",
      ".direnv",
      ".eggs",
      ".git",
      ".git-rewrite",
      ".hg",
      ".mypy_cache",
      ".nox",
      ".pants.d",
      ".pytype",
      ".ruff_cache",
      ".svn",
      ".tox",
      ".venv",
      "__pypackages__",
      "_build",
      "buck-out",
      "build",
      "dist",
      "node_modules",
      "venv"
  ]
  target-version = "py38"
  
  [tool.ruff.lint]
  select = ["ASYNC", "E", "F"]
  ignore = []
  fixable = ["ALL"]
  unfixable = []
  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
  
  # Ignore `E402` (import violations) in all `__init__.py` files, and in `path/to/file.py`.
  [tool.ruff.lint.per-file-ignores]
  "embedchain/__init__.py" = ["E401"]
  
  [tool.ruff.lint.mccabe]
  max-complexity = 10
  
  [tool.black]
  line-length = 120
  target-version = ["py38", "py39", "py310", "py311"]
  include = '\.pyi?$'
  exclude = '''
  /(
      \.eggs
    | \.git
    | \.hg
    | \.mypy_cache
    | \.nox
    | \.pants.d
    | \.pytype
    | \.ruff_cache
    | \.svn
    | \.tox
    | \.venv
    | __pypackages__
    | _build
    | buck-out
    | build
    | dist
    | node_modules
    | venv
  )/
  '''
  
  [tool.black.format]
  color = true
  
  [tool.poetry.dependencies]
  python = ">=3.9,<=3.13.2"
  python-dotenv = "^1.0.0"
  langchain = "^0.3.1"
  requests = "^2.31.0"
  openai = ">=1.1.1"
  chromadb = "^0.5.10"
  posthog = "^3.0.2"
  rich = "^13.7.0"
  beautifulsoup4 = "^4.12.2"
  pypdf = "^5.0.0"
  gptcache = "^0.1.43"
  pysbd = "^0.3.4"
  mem0ai = "^0.1.54"
  tiktoken = { version = "^0.7.0", optional = true }
  sentence-transformers = { version = "^2.2.2", optional = true }
  torch = { version = "2.3.0", optional = true }
  # Torch 2.0.1 is not compatible with poetry (https://github.com/pytorch/pytorch/issues/100974)
  gpt4all = { version = "2.0.2", optional = true }
  # 1.0.9 is not working for some users (https://github.com/nomic-ai/gpt4all/issues/1394)
  opensearch-py = { version = "2.3.1", optional = true }
  elasticsearch = { version = "^8.9.0", optional = true }
  cohere = { version = "^5.3", optional = true }
  together = { version = "^1.2.1", optional = true }
  lancedb = { version = "^0.6.2", optional = true }
  weaviate-client = { version = "^3.24.1", optional = true }
  qdrant-client = { version = "^1.6.3", optional = true }
  pymilvus = { version = "2.4.3", optional = true }
  google-cloud-aiplatform = { version = "^1.26.1", optional = true }
  replicate = { version = "^0.15.4", optional = true }
  schema = "^0.7.5"
  psycopg = { version = "^3.1.12", optional = true }
  psycopg-binary = { version = "^3.1.12", optional = true }
  psycopg-pool = { version = "^3.1.8", optional = true }
  mysql-connector-python = { version = "^8.1.0", optional = true }
  google-generativeai = { version = "^0.3.0", optional = true }
  google-api-python-client = { version = "^2.111.0", optional = true }
  google-auth-oauthlib = { version = "^1.2.0", optional = true }
  google-auth = { version = "^2.25.2", optional = true }
  google-auth-httplib2 = { version = "^0.2.0", optional = true }
  google-api-core = { version = "^2.15.0", optional = true }
  langchain-mistralai = { version = "^0.2.0", optional = true }
  langchain-openai = "^0.2.1"
  langchain-google-vertexai = { version = "^2.0.2", optional = true }
  sqlalchemy = "^2.0.27"
  alembic = "^1.13.1"
  langchain-cohere = "^0.3.0"
  langchain-community = "^0.3.1"
  langchain-aws = {version = "^0.2.1", optional = true}
  langsmith = "^0.3.18"
  
  [tool.poetry.group.dev.dependencies]
  black = "^23.3.0"
  pre-commit = "^3.2.2"
  ruff = "^0.1.11"
  pytest = "^7.3.1"
  pytest-mock = "^3.10.0"
  pytest-env = "^0.8.1"
  click = "^8.1.3"
  isort = "^5.12.0"
  pytest-cov = "^4.1.0"
  responses = "^0.23.3"
  mock = "^5.1.0"
  pytest-asyncio = "^0.21.1"
  
  [tool.poetry.extras]
  opensource = ["sentence-transformers", "torch", "gpt4all"]
  lancedb = ["lancedb"]
  elasticsearch = ["elasticsearch"]
  opensearch = ["opensearch-py"]
  weaviate = ["weaviate-client"]
  qdrant = ["qdrant-client"]
  together = ["together"]
  milvus = ["pymilvus"]
  vertexai = ["langchain-google-vertexai"]
  llama2 = ["replicate"]
  gmail = [
      "requests",
      "google-api-python-client",
      "google-auth",
      "google-auth-oauthlib",
      "google-auth-httplib2",
      "google-api-core",
  ]
  googledrive = ["google-api-python-client", "google-auth-oauthlib", "google-auth-httplib2"]
  postgres = ["psycopg", "psycopg-binary", "psycopg-pool"]
  mysql = ["mysql-connector-python"]
  google = ["google-generativeai"]
  mistralai = ["langchain-mistralai"]
  aws = ["langchain-aws"]
  
  [tool.poetry.group.docs.dependencies]
  
  [tool.poetry.scripts]
  ec = "embedchain.cli:cli"