pgvector-haystack 6.0.0__tar.gz → 6.2.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 (29) hide show
  1. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/CHANGELOG.md +18 -0
  2. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/PKG-INFO +2 -2
  3. pgvector_haystack-6.2.0/pydoc/config_docusaurus.yml +15 -0
  4. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/pyproject.toml +6 -2
  5. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/document_stores/pgvector/converters.py +5 -1
  6. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/document_stores/pgvector/document_store.py +594 -0
  7. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/document_stores/pgvector/filters.py +9 -0
  8. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/tests/test_converters.py +17 -0
  9. pgvector_haystack-6.2.0/tests/test_document_store.py +595 -0
  10. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/tests/test_document_store_async.py +349 -0
  11. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/tests/test_filters.py +5 -0
  12. pgvector_haystack-6.0.0/pydoc/config_docusaurus.yml +0 -30
  13. pgvector_haystack-6.0.0/tests/test_document_store.py +0 -480
  14. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/.gitignore +0 -0
  15. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/LICENSE.txt +0 -0
  16. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/README.md +0 -0
  17. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/examples/embedding_retrieval.py +0 -0
  18. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/examples/hybrid_retrieval.py +0 -0
  19. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/components/retrievers/pgvector/__init__.py +0 -0
  20. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/components/retrievers/pgvector/embedding_retriever.py +0 -0
  21. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/components/retrievers/pgvector/keyword_retriever.py +0 -0
  22. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/components/retrievers/py.typed +0 -0
  23. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/document_stores/pgvector/__init__.py +0 -0
  24. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/src/haystack_integrations/document_stores/py.typed +0 -0
  25. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/tests/__init__.py +0 -0
  26. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/tests/conftest.py +0 -0
  27. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/tests/test_retrieval.py +0 -0
  28. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/tests/test_retrieval_async.py +0 -0
  29. {pgvector_haystack-6.0.0 → pgvector_haystack-6.2.0}/tests/test_retrievers.py +0 -0
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [integrations/pgvector-v6.1.0] - 2026-01-28
4
+
5
+ ### 🚀 Features
6
+
7
+ - Adding count, filtering and metadata related operations to `PGVectorDocumentStore` (#2768)
8
+
9
+
10
+ ## [integrations/pgvector-v6.0.0] - 2026-01-12
11
+
12
+ ### 🧹 Chores
13
+
14
+ - Make fmt command more forgiving (#2671)
15
+ - [**breaking**] Pgvector - drop Python 3.9 and use X|Y typing (#2722)
16
+
17
+ ### 🌀 Miscellaneous
18
+
19
+ - Fix: Fix doc links (#2661)
20
+
3
21
  ## [integrations/pgvector-v5.5.0] - 2026-01-02
4
22
 
5
23
  ### 🚀 Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pgvector-haystack
3
- Version: 6.0.0
3
+ Version: 6.2.0
4
4
  Summary: An integration of pgvector (vector search extension for Postgres) 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/pgvector/README.md
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.13
18
18
  Classifier: Programming Language :: Python :: Implementation :: CPython
19
19
  Classifier: Programming Language :: Python :: Implementation :: PyPy
20
20
  Requires-Python: >=3.10
21
- Requires-Dist: haystack-ai>=2.22.0
21
+ Requires-Dist: haystack-ai>=2.24.0
22
22
  Requires-Dist: pgvector>=0.3.0
23
23
  Requires-Dist: psycopg[binary]
24
24
  Description-Content-Type: text/markdown
@@ -0,0 +1,15 @@
1
+ loaders:
2
+ - modules:
3
+ - haystack_integrations.components.retrievers.pgvector.embedding_retriever
4
+ - haystack_integrations.components.retrievers.pgvector.keyword_retriever
5
+ - haystack_integrations.document_stores.pgvector.document_store
6
+ search_path: [../src]
7
+ processors:
8
+ - type: filter
9
+ documented_only: true
10
+ skip_empty_modules: true
11
+ renderer:
12
+ description: Pgvector integration for Haystack
13
+ id: integrations-pgvector
14
+ filename: pgvector.md
15
+ title: Pgvector
@@ -22,7 +22,11 @@ classifiers = [
22
22
  "Programming Language :: Python :: Implementation :: CPython",
23
23
  "Programming Language :: Python :: Implementation :: PyPy",
24
24
  ]
25
- dependencies = ["haystack-ai>=2.22.0", "pgvector>=0.3.0", "psycopg[binary]"]
25
+ dependencies = [
26
+ "haystack-ai>=2.24.0",
27
+ "pgvector>=0.3.0",
28
+ "psycopg[binary]"
29
+ ]
26
30
 
27
31
  [project.urls]
28
32
  Source = "https://github.com/deepset-ai/haystack-core-integrations"
@@ -45,7 +49,7 @@ installer = "uv"
45
49
  dependencies = ["haystack-pydoc-tools", "ruff"]
46
50
 
47
51
  [tool.hatch.envs.default.scripts]
48
- docs = ["pydoc-markdown pydoc/config_docusaurus.yml"]
52
+ docs = ["haystack-pydoc pydoc/config_docusaurus.yml"]
49
53
  fmt = "ruff check --fix {args}; ruff format {args}"
50
54
  fmt-check = "ruff check {args} && ruff format --check {args}"
51
55
 
@@ -1,3 +1,4 @@
1
+ from dataclasses import replace
1
2
  from typing import Any
2
3
 
3
4
  from haystack import logging
@@ -22,6 +23,9 @@ def _from_haystack_to_pg_documents(documents: list[Document]) -> list[dict[str,
22
23
  db_document["blob_meta"] = Jsonb(blob.meta) if blob and blob.meta else None
23
24
  db_document["blob_mime_type"] = blob.mime_type if blob and blob.mime_type else None
24
25
  db_document["meta"] = Jsonb(db_document["meta"])
26
+ # PostgreSQL text fields cannot contain NUL (0x00) bytes, removing NUL bytes
27
+ if content := db_document["content"]:
28
+ db_document["content"] = content.replace("\x00", "")
25
29
 
26
30
  if "sparse_embedding" in db_document:
27
31
  sparse_embedding = db_document.pop("sparse_embedding", None)
@@ -65,7 +69,7 @@ def _from_pg_to_haystack_documents(documents: list[dict[str, Any]]) -> list[Docu
65
69
 
66
70
  if blob_data:
67
71
  blob = ByteStream(data=blob_data, meta=blob_meta, mime_type=blob_mime_type)
68
- haystack_document.blob = blob
72
+ haystack_document = replace(haystack_document, blob=blob)
69
73
 
70
74
  haystack_documents.append(haystack_document)
71
75