haystack/setup.cfg

263 lines
7.0 KiB
INI

[metadata]
name = farm-haystack
version = file: VERSION.txt
url = https://github.com/deepset-ai/haystack
project_urls =
Docs: RTD = https://haystack.deepset.ai/overview/intro
CI: GitHub = https://github.com/deepset-ai/haystack/actions
GitHub: issues = https://github.com/deepset-ai/haystack/issues
GitHub: repo = https://github.com/deepset-ai/haystack
description = Neural Question Answering & Semantic Search at Scale. Use modern transformer based models like BERT to find answers in large document collections
long_description = file: README.md
long_description_content_type = text/markdown
keywords=
QA
Question-Answering
Reader
Retriever
semantic-search
search
BERT
roberta
albert
squad
mrc
transfer-learning
language-model
transformer
author = deepset.ai
author_email = malte.pietsch@deepset.ai
license = Apache License 2.0
license_file = LICENSE
platforms = any
classifiers =
Development Status :: 5 - Production/Stable
Intended Audience :: Science/Research
License :: Freely Distributable
License :: OSI Approved :: Apache Software License
Topic :: Scientific/Engineering :: Artificial Intelligence
Operating System :: OS Independent
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
[options]
use_scm_version = True
python_requires = >=3.7, <4
packages = find:
setup_requires =
setuptools
wheel
install_requires =
importlib-metadata; python_version < '3.8'
torch>1.9,<1.13
requests
pydantic
transformers==4.20.1
nltk
pandas
# Utils
dill # pickle extension for (de-)serialization
tqdm # progress bars in model download and training scripts
networkx # graphs library
mmh3 # fast hashing function (murmurhash3)
quantulum3 # quantities extraction from text
posthog # telemetry
azure-ai-formrecognizer==3.2.0b2 # forms reader
# audio's espnet-model-zoo requires huggingface-hub version <0.8 while we need >=0.5 to be able to use create_repo in FARMReader
huggingface-hub<0.8.0,>=0.5.0
# Preprocessing
more_itertools # for windowing
python-docx
langdetect # for PDF conversions
tika # Apache Tika (text & metadata extractor)
# See haystack/nodes/retriever/_embedding_encoder.py, _SentenceTransformersEmbeddingEncoder
sentence-transformers>=2.2.0
# for stats in run_classifier
scipy>=1.3.2
scikit-learn>=1.0.0
# Metrics and logging
seqeval
mlflow
# Elasticsearch
elasticsearch>=7.7,<7.11
elastic-apm
# context matching
rapidfuzz>=2.0.15,<3
# Schema validation
jsonschema
[options.packages.find]
exclude =
rest_api*
test*
tutorials*
ui*
[options.package_data]
haystack =
json-schemas/*.schema.json
[options.extras_require]
sql =
sqlalchemy>=1.4.2,<2
sqlalchemy_utils
psycopg2-binary; platform_system != 'Windows'
only-faiss =
faiss-cpu>=1.6.3,<2
faiss =
farm-haystack[sql,only-faiss]
only-faiss-gpu =
faiss-gpu>=1.6.3,<2
faiss-gpu =
farm-haystack[sql,only-faiss-gpu]
only-milvus1 =
pymilvus<2.0.0 # Refer milvus version support matrix at https://github.com/milvus-io/pymilvus#install-pymilvus
milvus1 =
farm-haystack[sql,only-milvus1]
only-milvus =
pymilvus>=2.0.0,<3 # Refer milvus version support matrix at https://github.com/milvus-io/pymilvus#install-pymilvus
milvus =
farm-haystack[sql,only-milvus]
weaviate =
weaviate-client==3.6.0
only-pinecone =
pinecone-client
pinecone =
farm-haystack[sql,only-pinecone]
graphdb =
SPARQLWrapper
inmemorygraph =
SPARQLWrapper
opensearch =
opensearch-py>=2
docstores =
farm-haystack[faiss,milvus,weaviate,graphdb,inmemorygraph,pinecone,opensearch]
docstores-gpu =
farm-haystack[faiss-gpu,milvus,weaviate,graphdb,inmemorygraph,pinecone,opensearch]
audio =
pyworld<=0.2.12; python_version >= '3.10'
espnet
espnet-model-zoo
pydub
beir =
beir; platform_system != 'Windows'
crawler =
selenium>=4.0.0,!=4.1.4 # Avoid 4.1.4 due to https://github.com/SeleniumHQ/selenium/issues/10612
webdriver-manager
preprocessing =
beautifulsoup4
markdown
python-magic; platform_system != 'Windows' # Depends on libmagic: https://pypi.org/project/python-magic/
python-magic-bin; platform_system == 'Windows' # Needs to be installed without python-magic, otherwise Windows CI gets stuck.
ocr =
pytesseract==0.3.7
pillow
pdf2image==1.14.0
onnx =
onnxruntime
onnxruntime_tools
onnx-gpu =
onnxruntime-gpu
onnxruntime_tools
ray =
ray>=1.9.1,<2; platform_system != 'Windows'
ray>=1.9.1,<2,!=1.12.0; platform_system == 'Windows' # Avoid 1.12.0 due to https://github.com/ray-project/ray/issues/24169 (fails on windows)
aiorwlock>=1.3.0,<2
colab =
grpcio==1.47.0
requests>=2.25 # Needed to avoid dependency conflict with crawler https://github.com/deepset-ai/haystack/pull/2921
dev =
pre-commit
# Type check
mypy
typing_extensions; python_version < '3.8'
# Test
pytest
pytest-custom_exit_code # used in the CI
responses
tox
coverage
python-multipart
psutil
# Linting
pylint
# Code formatting
black[jupyter]==22.6.0
# Documentation
pydoc-markdown==4.5.1 # FIXME Unpin!
# azure-core is a dependency of azure-ai-formrecognizer
# In order to stop malicious pip backtracking during pip install farm-haystack[all] documented in https://github.com/deepset-ai/haystack/issues/2280
# we have to resolve a dependency version conflict ourself.
# azure-core>=1.23 conflicts with pydoc-markdown's dependency on databind>=1.5.0 which itself requires typing-extensions<4.0.0
# azure-core>=1.23 needs typing-extensions>=4.0.1
# pip unfortunately backtracks into the databind direction ultimately getting lost.
azure-core<1.23
mkdocs
jupytercontrib
watchdog #==1.0.2
requests-cache
test =
farm-haystack[docstores,audio,crawler,preprocessing,ocr,ray,dev]
all =
farm-haystack[docstores,audio,crawler,preprocessing,ocr,ray,dev,onnx,beir]
all-gpu =
farm-haystack[docstores-gpu,audio,crawler,preprocessing,ocr,ray,dev,onnx-gpu,beir]
[tool:pytest]
testpaths =
test
rest_api/test
ui/test
python_files =
test_*.py
addopts =
-vv
[mypy]
warn_return_any = false
warn_unused_configs = true
ignore_missing_imports = true
plugins = pydantic.mypy
[tox]
requires = tox-venv
setuptools >= 30.0.0
envlist = py36,py37
[testenv]
changedir = test
deps =
coverage
pytest
pandas
setenv =
COVERAGE_FILE = test-reports/.coverage
PYTEST_ADDOPTS = --junitxml=test-reports/{envname}/junit.xml -vv
commands =
coverage run --source haystack --parallel-mode -m pytest {posargs}
coverage combine
coverage report -m
coverage html -d test-reports/coverage-html
coverage xml -o test-reports/coverage.xml