Spaces:
Running
Running
| [tool.uv.sources] | |
| langflow-base = { workspace = true } | |
| langflow = { workspace = true } | |
| [tool.uv.workspace] | |
| members = ["src/backend/base", "."] | |
| [tool.hatch.build.targets.wheel] | |
| packages = ["src/backend/langflow"] | |
| [project] | |
| name = "langflow" | |
| version = "1.1.1" | |
| description = "A Python package with a built-in web application" | |
| requires-python = ">=3.10,<3.13" | |
| license = "MIT" | |
| keywords = ["nlp", "langchain", "openai", "gpt", "gui"] | |
| readme = "README.md" | |
| maintainers = [ | |
| { name = "Carlos Coelho", email = "[email protected]" }, | |
| { name = "Cristhian Zanforlin", email = "[email protected]" }, | |
| { name = "Gabriel Almeida", email = "[email protected]" }, | |
| { name = "Igor Carvalho", email = "[email protected]" }, | |
| { name = "Lucas Eduoli", email = "[email protected]" }, | |
| { name = "Otávio Anovazzi", email = "[email protected]" }, | |
| { name = "Rodrigo Nader", email = "[email protected]" }, | |
| { name = "Italo dos Anjos", email = "[email protected]" }, | |
| ] | |
| # Define your main dependencies here | |
| dependencies = [ | |
| "langflow-base==0.1.1", | |
| "beautifulsoup4>=4.12.2,<5.0.0", | |
| "google-search-results>=2.4.1,<3.0.0", | |
| "google-api-python-client>=2.130.0,<3.0.0", | |
| "huggingface-hub[inference]>=0.23.2,<1.0.0", | |
| "networkx>=3.1,<4.0.0", | |
| "fake-useragent>=1.5.0,<2.0.0", | |
| "pyarrow>=14.0.0,<18.0.0", | |
| "wikipedia>=1.4.0,<2.0.0", | |
| "qdrant-client~=1.9.2", | |
| "weaviate-client>=4.8,<5.0.0", | |
| "cohere>=5.5.3,<6.0.0", | |
| "faiss-cpu>=1.8.0,<2.0.0", | |
| "types-cachetools>=5.3.0.5,<6.0.0", | |
| "pymongo>=4.6.0,<5.0.0", | |
| "supabase~=2.6.0", | |
| "certifi>=2023.11.17,<2025.0.0", | |
| "fastavro>=1.8.0,<2.0.0", | |
| "redis>=5.0.1,<6.0.0", | |
| "metaphor-python>=0.1.11,<1.0.0", | |
| 'pywin32>=306,<307; sys_platform == "win32"', | |
| "langfuse~=2.53.1", | |
| "metal-sdk>=2.5.0,<3.0.0", | |
| "markupsafe>=2.1.3,<4.0.0", | |
| "boto3~=1.34.162", | |
| "numexpr>=2.8.6,<3.0.0", | |
| "qianfan==0.3.5", | |
| "pgvector>=0.2.3,<1.0.0", | |
| "pyautogen>=0.2.0,<1.0.0", | |
| "langchain~=0.3.3", | |
| "elasticsearch>=8.12.0,<9.0.0", | |
| "pytube>=15.0.0,<16.0.0", | |
| "dspy-ai>=2.4.0,<3.0.0", | |
| "assemblyai>=0.33.0,<1.0.0", | |
| "litellm>=1.44.0,<2.0.0", | |
| "chromadb>=0.4,<1.0.0", | |
| "zep-python>=2.0.0,<3.0.0", | |
| "langchain-groq>=0.1.9,<1.0.0", | |
| "langchain-pinecone>=0.1.3,<1.0.0", | |
| "youtube-transcript-api>=0.6.2,<1.0.0", | |
| "markdown>=3.7,<4.0.0", | |
| "upstash-vector>=0.5.0,<1.0.0", | |
| "gitpython>=3.1.43,<4.0.0", | |
| "kubernetes>=30.1.0,<32.0.0", | |
| "json-repair>=0.25.2,<1.0.0", | |
| "langchain-google-calendar-tools>=0.0.1,<1.0.0", | |
| "langchain-milvus>=0.1.1,<1.0.0", | |
| "langwatch==0.1.16", | |
| "langsmith~=0.1.137", | |
| "yfinance>=0.2.40,<1.0.0", | |
| "wolframalpha>=5.1.3,<6.0.0", | |
| "astra-assistants[tools]~=2.2.6", | |
| "composio-langchain==0.5.42", | |
| "spider-client>=0.0.27,<1.0.0", | |
| "nltk>=3.9.1,<4.0.0", | |
| "lark>=1.2.2,<2.0.0", | |
| "jq>=1.8.0,<2.0.0", | |
| "pydantic-settings==2.4.0", | |
| "ragstack-ai-knowledge-store>=0.2.1,<1.0.0", | |
| "duckduckgo-search>=6.3.4,<7.0.0", | |
| "opensearch-py>=2.7.1,<3.0.0", | |
| "langchain-google-genai>=2.0.1,<3.0.0", | |
| "langchain-cohere>=0.1.5,<1.0.0", | |
| "langchain-anthropic>=0.1.23,<1.0.0", | |
| "langchain-astradb~=0.5.2", | |
| "langchain-openai~=0.2.2", | |
| "langchain-google-vertexai~=2.0.5", | |
| "langchain-groq>=0.1.9,<1.0.0", | |
| "langchain-pinecone~=0.2.0", | |
| "langchain-mistralai~=0.2.0", | |
| "langchain-chroma>=0.1.1,<1.0.0", | |
| "langchain-aws>=0.1.16,<1.0.0", | |
| "langchain-unstructured~=0.1.5", | |
| "langchain-mongodb>=0.1.6,<1.0.0", | |
| "langchain-nvidia-ai-endpoints~=0.3.0", | |
| "langchain-google-community~=2.0.1", | |
| "langchain-elasticsearch>=0.2.0,<1.0.0", | |
| "langchain-ollama>=0.2.0,<1.0.0", | |
| "sqlalchemy[aiosqlite,postgresql_psycopg2binary,postgresql_psycopgbinary]>=2.0.36,<3.0.0", | |
| "atlassian-python-api>=3.41.16,<4.0.0", | |
| "mem0ai>=0.1.26,<1.0.0", | |
| "aiofile>=3.9.0,<4.0.0", | |
| "sseclient-py==1.8.0", | |
| "arize-phoenix-otel>=0.6.1", | |
| "openinference-instrumentation-langchain>=0.1.29", | |
| ] | |
| [project.urls] | |
| Repository = "https://github.com/langflow-ai/langflow" | |
| Documentation = "https://docs.langflow.org" | |
| [project.optional-dependencies] | |
| deploy = [ | |
| "celery[redis]>=5.3.6", | |
| "flower>=2.0.0" | |
| ] | |
| couchbase = [ | |
| "couchbase>=4.2.1" | |
| ] | |
| cassio = [ | |
| "cassio>=0.1.7" | |
| ] | |
| local = [ | |
| "llama-cpp-python~=0.2.0", | |
| "sentence-transformers>=2.3.1", | |
| "ctransformers>=0.2.10" | |
| ] | |
| clickhouse-connect = [ | |
| "clickhouse-connect==0.7.19" | |
| ] | |
| [project.scripts] | |
| langflow = "langflow.__main__:main" | |
| [tool.uv] | |
| dev-dependencies = [ | |
| "pytest-instafail>=0.5.0", | |
| "types-redis>=4.6.0.5", | |
| "ipykernel>=6.29.0", | |
| "mypy>=1.11.0", | |
| "ruff>=0.8.2,<0.9.0", | |
| "httpx>=0.27.0", | |
| "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-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>=24.1,<25.0", | |
| "asgi-lifespan>=2.1.0", | |
| "pytest-github-actions-annotate-failures>=0.2.0", | |
| "pytest-codspeed>=3.0.0", | |
| "blockbuster>=1.3.2,<1.4", | |
| "types-aiofiles>=24.1.0.20240626", | |
| ] | |
| [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"] | |
| asyncio_mode = "auto" | |
| asyncio_default_fixture_loop_scope = "function" | |
| [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/base/langflow/alembic/*"] | |
| line-length = 120 | |
| [tool.ruff.lint] | |
| pydocstyle.convention = "google" | |
| select = ["ALL"] | |
| ignore = [ | |
| "C90", # McCabe complexity | |
| "CPY", # Missing copyright | |
| "COM812", # Messes with the formatter | |
| "ERA", # Eradicate commented-out code | |
| "FIX002", # Line contains TODO | |
| "ISC001", # Messes with the formatter | |
| "PERF203", # Rarely useful | |
| "PLR09", # Too many something (arg, statements, etc) | |
| "RUF012", # Pydantic models are currently not well detected. See https://github.com/astral-sh/ruff/issues/13630 | |
| "TD002", # Missing author in TODO | |
| "TD003", # Missing issue link in TODO | |
| "TRY301", # A bit too harsh (Abstract `raise` to an inner function) | |
| # Rules that are TODOs | |
| "ANN", | |
| ] | |
| # Preview rules that are not yet activated | |
| external = ["RUF027"] | |
| [tool.ruff.lint.per-file-ignores] | |
| "scripts/*" = [ | |
| "D1", | |
| "INP", | |
| "T201", | |
| ] | |
| "src/backend/tests/*" = [ | |
| "D1", | |
| "PLR2004", | |
| "S101", | |
| "SLF001", | |
| ] | |
| [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 = ["hatchling"] | |
| build-backend = "hatchling.build" | |