mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-14 14:46:53 +00:00
DataFusion 54 (pulled in by lance v9) replaced its hashing RandomState (ahash -> foldhash), which changes hash-based split output. Update the hardcoded expectations in test_hash_split, and hash a high-cardinality column in the Python test_split_hash_with_discard so its discard behavior is stable. The new lance file reader returns no batches for an empty file (the old read_record_batch returned a single empty batch), so concat_batches on batches[0] panicked when a shuffle output file was empty. Build the batch from the known schema instead, which handles the empty case. Bump the datafusion Python package to v54 to match the bundled DataFusion, avoiding an FFI ABI mismatch in register_table_provider. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
146 lines
4.0 KiB
TOML
146 lines
4.0 KiB
TOML
[project]
|
|
name = "lancedb"
|
|
# version in Cargo.toml
|
|
dynamic = ["version"]
|
|
dependencies = [
|
|
"deprecation>=2.1.0",
|
|
"numpy>=1.24.0",
|
|
"overrides>=0.7; python_version<'3.12'",
|
|
"packaging>=23.0",
|
|
"pyarrow>=16",
|
|
"pydantic>=1.10",
|
|
"tqdm>=4.27.0",
|
|
"lance-namespace>=0.3.2"
|
|
]
|
|
description = "lancedb"
|
|
authors = [{ name = "LanceDB Devs", email = "dev@lancedb.com" }]
|
|
license = { file = "LICENSE" }
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
keywords = [
|
|
"data-format",
|
|
"data-science",
|
|
"machine-learning",
|
|
"arrow",
|
|
"data-analytics",
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Environment :: Console",
|
|
"Intended Audience :: Science/Research",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Scientific/Engineering",
|
|
]
|
|
|
|
[project.urls]
|
|
repository = "https://github.com/lancedb/lancedb"
|
|
|
|
[project.optional-dependencies]
|
|
pylance = [
|
|
"pylance>=5.0.0b5",
|
|
]
|
|
# A library only needs the OpenTelemetry API; the application supplies and
|
|
# configures the SDK (the actual exporter/reader). See
|
|
# https://opentelemetry.io/docs/languages/python/instrumentation/
|
|
otel = ["opentelemetry-api"]
|
|
tests = [
|
|
"aiohttp>=3.9.0",
|
|
"boto3>=1.28.57",
|
|
"pandas>=1.4",
|
|
"pytest>=7.0",
|
|
"pytest-mock>=3.10",
|
|
"pytest-asyncio>=0.21",
|
|
"duckdb>=0.9.0",
|
|
"pytz>=2023.3",
|
|
"polars>=0.19, <=1.3.0",
|
|
"pyarrow<25",
|
|
"pyarrow-stubs>=16.0",
|
|
"pylance>=7,<8",
|
|
"requests>=2.31.0",
|
|
"datafusion>=54,<55",
|
|
"opentelemetry-sdk>=1.30.0",
|
|
]
|
|
dev = [
|
|
"ruff>=0.3.0",
|
|
"pre-commit>=3.5.0",
|
|
"pyright>=1.1.350",
|
|
'typing-extensions>=4.0.0; python_version < "3.11"',
|
|
]
|
|
docs = ["mkdocs", "mkdocs-jupyter", "mkdocs-material", "mkdocstrings-python"]
|
|
clip = ["torch", "pillow>=12.1.1", "open-clip-torch"]
|
|
siglip = ["torch", "pillow>=12.1.1", "transformers>=4.41.0","sentencepiece"]
|
|
embeddings = [
|
|
"requests>=2.31.0",
|
|
"openai>=1.6.1",
|
|
"sentence-transformers>=2.2.0",
|
|
"torch>=2.0.0",
|
|
"pillow>=12.1.1",
|
|
"open-clip-torch>=2.20.0",
|
|
"cohere>=4.0",
|
|
"colpali-engine>=0.3.10",
|
|
"huggingface_hub>=0.19.0",
|
|
"InstructorEmbedding>=1.0.1",
|
|
"google-genai>=1.0.0",
|
|
"boto3>=1.28.57",
|
|
"awscli>=1.44.38",
|
|
"botocore>=1.31.57",
|
|
'ibm-watsonx-ai>=1.1.2; python_version >= "3.10"',
|
|
"ollama>=0.3.0",
|
|
"sentencepiece>=0.1.99"
|
|
]
|
|
azure = ["adlfs>=2024.2.0"]
|
|
|
|
[tool.maturin]
|
|
python-source = "python"
|
|
module-name = "lancedb._lancedb"
|
|
|
|
[build-system]
|
|
requires = ["maturin>=1.4"]
|
|
build-backend = "maturin"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["F", "E", "W", "G", "PERF"]
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "--strict-markers --ignore-glob=lancedb/embeddings/*.py"
|
|
markers = [
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
"asyncio",
|
|
"s3_test",
|
|
]
|
|
|
|
[tool.pyright]
|
|
include = [
|
|
"python/lancedb/index.py",
|
|
"python/lancedb/rerankers/util.py",
|
|
"python/lancedb/rerankers/__init__.py",
|
|
"python/lancedb/rerankers/voyageai.py",
|
|
"python/lancedb/rerankers/jinaai.py",
|
|
"python/lancedb/rerankers/openai.py",
|
|
"python/lancedb/rerankers/cross_encoder.py",
|
|
"python/lancedb/rerankers/colbert.py",
|
|
"python/lancedb/rerankers/answerdotai.py",
|
|
"python/lancedb/rerankers/cohere.py",
|
|
"python/lancedb/arrow.py",
|
|
"python/lancedb/__init__.py",
|
|
"python/lancedb/types.py",
|
|
"python/lancedb/integrations/__init__.py",
|
|
"python/lancedb/exceptions.py",
|
|
"python/lancedb/background_loop.py",
|
|
"python/lancedb/schema.py",
|
|
"python/lancedb/remote/__init__.py",
|
|
"python/lancedb/remote/errors.py",
|
|
"python/lancedb/embeddings/__init__.py",
|
|
"python/lancedb/_lancedb.pyi",
|
|
]
|
|
exclude = ["python/tests/"]
|
|
pythonVersion = "3.13"
|