qdrant-haystack 6.0.0__tar.gz → 7.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/CHANGELOG.md +2 -0
  2. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/PKG-INFO +1 -1
  3. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/pyproject.toml +9 -5
  4. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/src/haystack_integrations/document_stores/qdrant/document_store.py +6 -14
  5. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/.gitignore +0 -0
  6. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/LICENSE.txt +0 -0
  7. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/README.md +0 -0
  8. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/examples/embedding_retrieval.py +0 -0
  9. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/pydoc/config.yml +0 -0
  10. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/src/haystack_integrations/components/retrievers/qdrant/__init__.py +0 -0
  11. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/src/haystack_integrations/components/retrievers/qdrant/retriever.py +0 -0
  12. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/src/haystack_integrations/document_stores/qdrant/__init__.py +0 -0
  13. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/src/haystack_integrations/document_stores/qdrant/converters.py +0 -0
  14. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/src/haystack_integrations/document_stores/qdrant/filters.py +0 -0
  15. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/src/haystack_integrations/document_stores/qdrant/migrate_to_sparse.py +0 -0
  16. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/tests/__init__.py +0 -0
  17. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/tests/conftest.py +0 -0
  18. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/tests/test_converters.py +0 -0
  19. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/tests/test_dict_converters.py +0 -0
  20. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/tests/test_document_store.py +0 -0
  21. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/tests/test_filters.py +0 -0
  22. {qdrant_haystack-6.0.0 → qdrant_haystack-7.0.0}/tests/test_retriever.py +0 -0
@@ -1,5 +1,7 @@
1
1
  # Changelog
2
2
 
3
+ ## [integrations/qdrant-v6.0.0] - 2024-09-13
4
+
3
5
  ## [integrations/qdrant-v5.1.0] - 2024-09-12
4
6
 
5
7
  ### 🚀 Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: qdrant-haystack
3
- Version: 6.0.0
3
+ Version: 7.0.0
4
4
  Summary: An integration of Qdrant ANN vector database backend with Haystack
5
5
  Project-URL: Source, https://github.com/deepset-ai/haystack-core-integrations
6
6
  Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/qdrant/README.md
@@ -44,6 +44,7 @@ root = "../.."
44
44
  git_describe_command = 'git describe --tags --match="integrations/qdrant-v[0-9]*"'
45
45
 
46
46
  [tool.hatch.envs.default]
47
+ installer = "uv"
47
48
  dependencies = ["coverage[toml]>=6.5", "pytest", "pytest-rerunfailures", "haystack-pydoc-tools"]
48
49
  [tool.hatch.envs.default.scripts]
49
50
  test = "pytest {args:tests}"
@@ -58,12 +59,13 @@ docs = ["pydoc-markdown pydoc/config.yml"]
58
59
  python = ["3.8", "3.9", "3.10", "3.11"]
59
60
 
60
61
  [tool.hatch.envs.lint]
62
+ installer = "uv"
61
63
  detached = true
62
- dependencies = ["black>=23.1.0", "mypy>=1.0.0", "ruff>=0.0.243"]
64
+ dependencies = ["pip", "black>=23.1.0", "mypy>=1.0.0", "ruff>=0.0.243"]
63
65
  [tool.hatch.envs.lint.scripts]
64
66
  typing = "mypy --install-types --non-interactive --explicit-package-bases {args:src/ tests}"
65
- style = ["ruff check {args:. --exclude tests/, examples/}", "black --check --diff {args:.}"]
66
- fmt = ["black {args:.}", "ruff --fix {args:. --exclude tests/, examples/}", "style"]
67
+ style = ["ruff check {args:.}", "black --check --diff {args:.}"]
68
+ fmt = ["black {args:.}", "ruff check --fix {args:.}", "style"]
67
69
  all = ["style", "typing"]
68
70
 
69
71
  [tool.black]
@@ -74,6 +76,8 @@ skip-string-normalization = true
74
76
  [tool.ruff]
75
77
  target-version = "py38"
76
78
  line-length = 120
79
+
80
+ [tool.ruff.lint]
77
81
  select = [
78
82
  "A",
79
83
  "ARG",
@@ -125,10 +129,10 @@ unfixable = [
125
129
  "F401",
126
130
  ]
127
131
 
128
- [tool.ruff.flake8-tidy-imports]
132
+ [tool.ruff.lint.flake8-tidy-imports]
129
133
  ban-relative-imports = "parents"
130
134
 
131
- [tool.ruff.per-file-ignores]
135
+ [tool.ruff.lint.per-file-ignores]
132
136
  # Tests can use magic values, assertions, and relative imports
133
137
  "tests/**/*" = ["PLR2004", "S101", "TID252"]
134
138
  # examples can contain "print" commands
@@ -362,7 +362,6 @@ class QdrantDocumentStore:
362
362
 
363
363
  document_objects = self._handle_duplicate_documents(
364
364
  documents=documents,
365
- index=self.index,
366
365
  policy=policy,
367
366
  )
368
367
 
@@ -468,7 +467,6 @@ class QdrantDocumentStore:
468
467
  def get_documents_by_id(
469
468
  self,
470
469
  ids: List[str],
471
- index: Optional[str] = None,
472
470
  ) -> List[Document]:
473
471
  """
474
472
  Retrieves documents from Qdrant by their IDs.
@@ -480,13 +478,11 @@ class QdrantDocumentStore:
480
478
  :returns:
481
479
  A list of documents.
482
480
  """
483
- index = index or self.index
484
-
485
481
  documents: List[Document] = []
486
482
 
487
483
  ids = [convert_id(_id) for _id in ids]
488
484
  records = self.client.retrieve(
489
- collection_name=index,
485
+ collection_name=self.index,
490
486
  ids=ids,
491
487
  with_payload=True,
492
488
  with_vectors=True,
@@ -987,7 +983,6 @@ class QdrantDocumentStore:
987
983
  def _handle_duplicate_documents(
988
984
  self,
989
985
  documents: List[Document],
990
- index: Optional[str] = None,
991
986
  policy: DuplicatePolicy = None,
992
987
  ):
993
988
  """
@@ -995,31 +990,28 @@ class QdrantDocumentStore:
995
990
  documents that are not in the index yet.
996
991
 
997
992
  :param documents: A list of Haystack Document objects.
998
- :param index: name of the index
999
993
  :param policy: The duplicate policy to use when writing documents.
1000
994
  :returns: A list of Haystack Document objects.
1001
995
  """
1002
996
 
1003
- index = index or self.index
1004
997
  if policy in (DuplicatePolicy.SKIP, DuplicatePolicy.FAIL):
1005
- documents = self._drop_duplicate_documents(documents, index)
1006
- documents_found = self.get_documents_by_id(ids=[doc.id for doc in documents], index=index)
998
+ documents = self._drop_duplicate_documents(documents)
999
+ documents_found = self.get_documents_by_id(ids=[doc.id for doc in documents])
1007
1000
  ids_exist_in_db: List[str] = [doc.id for doc in documents_found]
1008
1001
 
1009
1002
  if len(ids_exist_in_db) > 0 and policy == DuplicatePolicy.FAIL:
1010
- msg = f"Document with ids '{', '.join(ids_exist_in_db)} already exists in index = '{index}'."
1003
+ msg = f"Document with ids '{', '.join(ids_exist_in_db)} already exists in index = '{self.index}'."
1011
1004
  raise DuplicateDocumentError(msg)
1012
1005
 
1013
1006
  documents = list(filter(lambda doc: doc.id not in ids_exist_in_db, documents))
1014
1007
 
1015
1008
  return documents
1016
1009
 
1017
- def _drop_duplicate_documents(self, documents: List[Document], index: Optional[str] = None) -> List[Document]:
1010
+ def _drop_duplicate_documents(self, documents: List[Document]) -> List[Document]:
1018
1011
  """
1019
1012
  Drop duplicate documents based on same hash ID.
1020
1013
 
1021
1014
  :param documents: A list of Haystack Document objects.
1022
- :param index: Name of the index.
1023
1015
  :returns: A list of Haystack Document objects.
1024
1016
  """
1025
1017
  _hash_ids: Set = set()
@@ -1030,7 +1022,7 @@ class QdrantDocumentStore:
1030
1022
  logger.info(
1031
1023
  "Duplicate Documents: Document with id '%s' already exists in index '%s'",
1032
1024
  document.id,
1033
- index or self.index,
1025
+ self.index,
1034
1026
  )
1035
1027
  continue
1036
1028
  _documents.append(document)