[tool.poetry] name = "langflow" version = "1.0.18" description = "A Python package with a built-in web application" authors = ["Langflow "] maintainers = [ "Carlos Coelho ", "Cristhian Zanforlin ", "Gabriel Almeida ", "Igor Carvalho ", "Lucas Eduoli ", "Otávio Anovazzi ", "Rodrigo Nader ", "Italo dos Anjos ", ] repository = "https://github.com/langflow-ai/langflow" license = "MIT" readme = "README.md" keywords = ["nlp", "langchain", "openai", "gpt", "gui"] packages = [{ include = "langflow", from = "src/backend" }] include = ["src/backend/langflow/*", "src/backend/langflow/**/*"] documentation = "https://docs.langflow.org" [tool.poetry.scripts] langflow = "langflow.__main__:main" [tool.poetry.dependencies] python = ">=3.10,<3.13" langflow-base = { path = "./src/backend/base", develop = true } beautifulsoup4 = "^4.12.2" google-search-results = "^2.4.1" google-api-python-client = "^2.130.0" huggingface-hub = { version = "^0.23.2", extras = ["inference"] } llama-cpp-python = { version = "~0.2.0", optional = true } networkx = "^3.1" fake-useragent = "^1.5.0" psycopg2-binary = "^2.9.6" pyarrow = "^14.0.0" wikipedia = "^1.4.0" qdrant-client = "^1.9.0" weaviate-client = "*" sentence-transformers = { version = "^2.3.1", optional = true } ctransformers = { version = "^0.2.10", optional = true } cohere = "^5.5.3" faiss-cpu = "^1.8.0" types-cachetools = "^5.3.0.5" pymongo = "^4.6.0" supabase = "^2.3.0" certifi = ">=2023.11.17,<2025.0.0" psycopg = "3.1.9" # https://github.com/psycopg/psycopg/issues/858 fastavro = "^1.8.0" celery = { extras = ["redis"], version = "^5.3.6", optional = true } redis = "^5.0.1" flower = { version = "^2.0.0", optional = true } metaphor-python = "^0.1.11" pywin32 = { version = "^306", markers = "sys_platform == 'win32'" } langfuse = "^2.33.0" metal-sdk = "^2.5.0" markupsafe = "^2.1.3" boto3 = "~1.34.162" numexpr = "^2.8.6" qianfan = "0.3.5" pgvector = "^0.2.3" pyautogen = "^0.2.0" langchain-google-genai = "1.0.8" langchain-cohere = "^0.1.5" elasticsearch = "^8.12.0" pytube = "^15.0.0" dspy-ai = "^2.4.0" assemblyai = "^0.26.0" litellm = "^1.44.0" chromadb = "^0.4" langchain-anthropic = "^0.1.23" langchain-astradb = "^0.3.5" langchain-openai = "0.1.22" zep-python = { version = "^2.0.0rc5", allow-prereleases = true } langchain-google-vertexai = "1.0.10" langchain-groq = "0.1.9" langchain-pinecone = "^0.1.3" langchain-mistralai = "0.1.12" couchbase = { extras = ["couchbase"], version = "^4.2.1", optional = true } youtube-transcript-api = "^0.6.2" markdown = "^3.7" langchain-chroma = "^0.1.1" upstash-vector = "^0.5.0" gitpython = "^3.1.43" cassio = { extras = ["cassio"], version = "^0.1.7", optional = true } unstructured = {extras = ["docx", "md", "pptx"], version = "^0.14.4"} langchain-aws = "^0.1.16" langchain-mongodb = "^0.1.6" kubernetes = "^30.1.0" firecrawl-py = "^0.0.16" json-repair = "^0.25.2" langchain-nvidia-ai-endpoints = "0.1.6" langchain-google-calendar-tools = "^0.0.1" langchain-milvus = "^0.1.1" crewai = {extras = ["tools"], version = "^0.36.0"} langwatch = "^0.1.16" langsmith = "^0.1.86" yfinance = "^0.2.40" langchain-google-community = "1.0.7" wolframalpha = "^5.1.3" astra-assistants = "^2.1.0.10" composio-langchain = "0.5.9" spider-client = "^0.0.27" nltk = "^3.9.1" bson = "^0.5.10" lark = "^1.2.2" jq = "^1.8.0" clickhouse-connect = {version = "0.7.19", optional = true, extras = ["clickhouse-connect"]} langchain-unstructured = "^0.1.2" pydantic-settings = "2.4.0" ragstack-ai-knowledge-store = "^0.2.1" [tool.poetry.group.dev.dependencies] types-redis = "^4.6.0.5" ipykernel = "^6.29.0" mypy = "^1.11.0" ruff = ">=0.6.2,<0.7.0" httpx = "*" pytest = "^8.2.0" types-requests = "^2.32.0" requests = "^2.32.0" pytest-cov = "^5.0.0" pandas-stubs = "^2.1.4.231227" types-pillow = "^10.2.0.20240213" types-pyyaml = "^6.0.12.8" types-python-jose = "^3.3.4.8" types-passlib = "^1.7.7.13" pytest-mock = "^3.14.0" pytest-xdist = "^3.6.0" types-pywin32 = "^306.0.0.4" types-google-cloud-ndb = "^2.2.0.0" pytest-sugar = "^1.0.0" respx = "^0.21.1" pytest-instafail = "^0.5.0" pytest-asyncio = "^0.23.0" pytest-profiling = "^1.7.0" pre-commit = "^3.7.0" vulture = "^2.11" dictdiffer = "^0.9.0" pytest-split = "^0.9.0" pytest-flakefinder = "^1.1.0" types-markdown = "^3.7.0.20240822" packaging = ">=23.2,<24.0" [tool.poetry.extras] deploy = ["celery", "redis", "flower"] couchbase = ["couchbase"] cassio = ["cassio"] local = ["llama-cpp-python", "sentence-transformers", "ctransformers"] [tool.poetry.group.spelling] optional = true [tool.poetry.group.spelling.dependencies] codespell = "^2.3.0" [tool.codespell] skip = '.git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,*.trig.,**/node_modules/**,./stuff/*,*.csv' # Ignore latin etc ignore-regex = '.*(Stati Uniti|Tense=Pres).*' [tool.pytest.ini_options] minversion = "6.0" testpaths = ["tests", "integration"] console_output_style = "progress" filterwarnings = ["ignore::DeprecationWarning", "ignore::ResourceWarning"] log_cli = true log_cli_format = "%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)" log_cli_date_format = "%Y-%m-%d %H:%M:%S" markers = ["async_test", "api_key_required"] [tool.coverage.run] command_line = """ -m pytest --ignore=tests/integration --cov --cov-report=term --cov-report=html --instafail -ra -n auto -m "not api_key_required" """ source = ["src/backend/base/langflow/"] omit = ["*/alembic/*", "tests/*", "*/__init__.py"] [tool.coverage.report] sort = "Stmts" skip_empty = true show_missing = false ignore_errors = true [tool.coverage.html] directory = "coverage" [tool.ruff] exclude = ["src/backend/langflow/alembic/*"] line-length = 120 [tool.mypy] plugins = ["pydantic.mypy"] follow_imports = "skip" disable_error_code = ["type-var"] namespace_packages = true mypy_path = "langflow" ignore_missing_imports = true [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"