diff --git a/integrations/agent_pack/pyproject.toml b/integrations/agent_pack/pyproject.toml index 0b52eb17b9..31bdf4b9b0 100644 --- a/integrations/agent_pack/pyproject.toml +++ b/integrations/agent_pack/pyproject.toml @@ -7,7 +7,7 @@ name = "agent-pack-haystack" dynamic = ["version"] description = "Pre-configured Haystack Agents" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "agents"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/aimlapi/pyproject.toml b/integrations/aimlapi/pyproject.toml index 9ef0fb6e3b..1af97434fc 100644 --- a/integrations/aimlapi/pyproject.toml +++ b/integrations/aimlapi/pyproject.toml @@ -7,7 +7,7 @@ name = "aimlapi-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }, { name = "Dmitry Tumanov", email = "d1m7asis@gmail.com" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/alloydb/pyproject.toml b/integrations/alloydb/pyproject.toml index fbc563afe2..9af7290bd7 100644 --- a/integrations/alloydb/pyproject.toml +++ b/integrations/alloydb/pyproject.toml @@ -7,7 +7,7 @@ name = "alloydb-haystack" dynamic = ["version"] description = "An integration of Google Cloud AlloyDB with Haystack for vector search" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/amazon_bedrock/pyproject.toml b/integrations/amazon_bedrock/pyproject.toml index 52937999cf..d90724690a 100644 --- a/integrations/amazon_bedrock/pyproject.toml +++ b/integrations/amazon_bedrock/pyproject.toml @@ -7,7 +7,7 @@ name = "amazon-bedrock-haystack" dynamic = ["version"] description = 'An integration of AWS S3 and Bedrock as a Downloader and Generator components.' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/amazon_bedrock/src/haystack_integrations/components/generators/amazon_bedrock/chat/utils.py b/integrations/amazon_bedrock/src/haystack_integrations/components/generators/amazon_bedrock/chat/utils.py index bf4e71e666..922e096916 100644 --- a/integrations/amazon_bedrock/src/haystack_integrations/components/generators/amazon_bedrock/chat/utils.py +++ b/integrations/amazon_bedrock/src/haystack_integrations/components/generators/amazon_bedrock/chat/utils.py @@ -4,7 +4,7 @@ import json import os import re -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any from botocore.eventstream import EventStream @@ -553,7 +553,7 @@ def _convert_event_to_streaming_chunk( # Initialize an empty StreamingChunk to return if no relevant event is found # (e.g. for messageStart and contentBlockStop) - base_meta = {"model": model, "received_at": datetime.now(timezone.utc).isoformat()} + base_meta = {"model": model, "received_at": datetime.now(UTC).isoformat()} streaming_chunk = StreamingChunk(content="", meta=base_meta) if "contentBlockStart" in event: diff --git a/integrations/amazon_sagemaker/pyproject.toml b/integrations/amazon_sagemaker/pyproject.toml index 3d59d168aa..c8b563a3f3 100644 --- a/integrations/amazon_sagemaker/pyproject.toml +++ b/integrations/amazon_sagemaker/pyproject.toml @@ -10,7 +10,7 @@ name = "amazon-sagemaker-haystack" dynamic = ["version"] description = 'An integration of Amazon Sagemaker as an SagemakerGenerator component.' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/amazon_textract/pyproject.toml b/integrations/amazon_textract/pyproject.toml index e632ecd5c3..c5b29105da 100644 --- a/integrations/amazon_textract/pyproject.toml +++ b/integrations/amazon_textract/pyproject.toml @@ -7,7 +7,7 @@ name = "amazon-textract-haystack" dynamic = ["version"] description = "Haystack integration for AWS Textract document text extraction and analysis" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "AWS", @@ -22,7 +22,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/anthropic/pyproject.toml b/integrations/anthropic/pyproject.toml index 26c8f88d7b..86645380aa 100644 --- a/integrations/anthropic/pyproject.toml +++ b/integrations/anthropic/pyproject.toml @@ -7,7 +7,7 @@ name = "anthropic-haystack" dynamic = ["version"] description = 'An integration of Anthropic Claude models into the Haystack framework.' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/anthropic/src/haystack_integrations/components/generators/anthropic/chat/chat_generator.py b/integrations/anthropic/src/haystack_integrations/components/generators/anthropic/chat/chat_generator.py index 9416ccc442..af052a3a79 100644 --- a/integrations/anthropic/src/haystack_integrations/components/generators/anthropic/chat/chat_generator.py +++ b/integrations/anthropic/src/haystack_integrations/components/generators/anthropic/chat/chat_generator.py @@ -1,5 +1,5 @@ import inspect -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any, ClassVar from haystack import component, default_from_dict, default_to_dict, logging @@ -441,7 +441,7 @@ def _process_response( reasoning = _process_reasoning_contents(chunks) completion.meta.update( - {"received_at": datetime.now(timezone.utc).isoformat(), "model": model}, + {"received_at": datetime.now(UTC).isoformat(), "model": model}, ) # `completion.meta["usage"]` is the usage of the last message_delta chunk @@ -527,7 +527,7 @@ async def _process_response_async( reasoning = _process_reasoning_contents(chunks) completion.meta.update( - {"received_at": datetime.now(timezone.utc).isoformat(), "model": model}, + {"received_at": datetime.now(UTC).isoformat(), "model": model}, ) # `completion.meta["usage"]` is the usage of the last message_delta chunk diff --git a/integrations/arangodb/pyproject.toml b/integrations/arangodb/pyproject.toml index 42a90dfa88..07f580908c 100644 --- a/integrations/arangodb/pyproject.toml +++ b/integrations/arangodb/pyproject.toml @@ -7,7 +7,7 @@ name = "arangodb-haystack" dynamic = ["version"] description = "Haystack integration for arangodb" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["arangodb", "document-store", "vector-search", "haystack", "llm", "rag"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/arcadedb/pyproject.toml b/integrations/arcadedb/pyproject.toml index 149668806d..c01a23c34f 100644 --- a/integrations/arcadedb/pyproject.toml +++ b/integrations/arcadedb/pyproject.toml @@ -7,7 +7,7 @@ name = "arcadedb-haystack" dynamic = ["version"] description = "An integration of ArcadeDB with Haystack — document storage + HNSW vector search + SQL filtering" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["arcadedb", "haystack", "vector-search", "document-store", "rag"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }, { name = "ArcadeData Ltd", email = "info@arcadedb.com" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/astra/pyproject.toml b/integrations/astra/pyproject.toml index a08dd38abf..1601b4aaa9 100644 --- a/integrations/astra/pyproject.toml +++ b/integrations/astra/pyproject.toml @@ -7,7 +7,7 @@ name = "astra-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }, { name = "Anant Corporation", email = "support@anant.us" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/azure_ai_search/pyproject.toml b/integrations/azure_ai_search/pyproject.toml index 5829d26e58..df6a2ce085 100644 --- a/integrations/azure_ai_search/pyproject.toml +++ b/integrations/azure_ai_search/pyproject.toml @@ -7,7 +7,7 @@ name = "azure-ai-search-haystack" dynamic = ["version"] description = 'Haystack 2.x Document Store for Azure AI Search' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/azure_ai_search/tests/test_document_store.py b/integrations/azure_ai_search/tests/test_document_store.py index 4ff2e8461e..690dcfdd27 100644 --- a/integrations/azure_ai_search/tests/test_document_store.py +++ b/integrations/azure_ai_search/tests/test_document_store.py @@ -5,7 +5,7 @@ import logging import os import random -from datetime import datetime, timezone +from datetime import UTC, datetime from unittest.mock import Mock, patch import pytest @@ -870,8 +870,8 @@ def test_comparison_greater_than_with_iso_date(self, document_store, filterable_ d for d in filterable_docs if d.meta.get("date") is not None - and datetime.strptime(d.meta["date"], "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) - > datetime.strptime("1972-12-11T19:54:58Z", "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) + and datetime.strptime(d.meta["date"], "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=UTC) + > datetime.strptime("1972-12-11T19:54:58Z", "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=UTC) ], ) @@ -887,8 +887,8 @@ def test_comparison_greater_than_equal_with_iso_date(self, document_store, filte d for d in filterable_docs if d.meta.get("date") is not None - and datetime.strptime(d.meta["date"], "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) - >= datetime.strptime("1969-07-21T20:17:40Z", "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) + and datetime.strptime(d.meta["date"], "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=UTC) + >= datetime.strptime("1969-07-21T20:17:40Z", "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=UTC) ], ) @@ -904,8 +904,8 @@ def test_comparison_less_than_with_iso_date(self, document_store, filterable_doc d for d in filterable_docs if d.meta.get("date") is not None - and datetime.strptime(d.meta["date"], "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) - < datetime.strptime("1969-07-21T20:17:40Z", "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) + and datetime.strptime(d.meta["date"], "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=UTC) + < datetime.strptime("1969-07-21T20:17:40Z", "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=UTC) ], ) @@ -921,8 +921,8 @@ def test_comparison_less_than_equal_with_iso_date(self, document_store, filterab d for d in filterable_docs if d.meta.get("date") is not None - and datetime.strptime(d.meta["date"], "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) - <= datetime.strptime("1969-07-21T20:17:40Z", "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) + and datetime.strptime(d.meta["date"], "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=UTC) + <= datetime.strptime("1969-07-21T20:17:40Z", "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=UTC) ], ) diff --git a/integrations/azure_doc_intelligence/pyproject.toml b/integrations/azure_doc_intelligence/pyproject.toml index 3aa3d948c9..05e45bcc48 100644 --- a/integrations/azure_doc_intelligence/pyproject.toml +++ b/integrations/azure_doc_intelligence/pyproject.toml @@ -7,7 +7,7 @@ name = "azure-doc-intelligence-haystack" dynamic = ["version"] description = "Haystack integration for Azure Document Intelligence" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "Azure", @@ -24,7 +24,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/azure_documentdb/pyproject.toml b/integrations/azure_documentdb/pyproject.toml index e8216c0a60..8082616b5e 100644 --- a/integrations/azure_documentdb/pyproject.toml +++ b/integrations/azure_documentdb/pyproject.toml @@ -7,7 +7,7 @@ name = "azure-documentdb-haystack" dynamic = ["version"] description = "An integration of Azure DocumentDB with Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "azure", "documentdb", "vector-search", "rag"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/azure_form_recognizer/pyproject.toml b/integrations/azure_form_recognizer/pyproject.toml index 6fedb29843..78c5d2f2ca 100644 --- a/integrations/azure_form_recognizer/pyproject.toml +++ b/integrations/azure_form_recognizer/pyproject.toml @@ -7,7 +7,7 @@ name = "azure-form-recognizer-haystack" dynamic = ["version"] description = "Haystack integration for Azure Document Intelligence using the Form Recognizer SDK" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "Azure", @@ -25,7 +25,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/brave/pyproject.toml b/integrations/brave/pyproject.toml index 81424bfce4..2252893f3e 100644 --- a/integrations/brave/pyproject.toml +++ b/integrations/brave/pyproject.toml @@ -7,7 +7,7 @@ name = "brave-haystack" dynamic = ["version"] description = "Haystack integration for Brave Search API" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Brave", "Web Search", "AI Search"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/chonkie/pyproject.toml b/integrations/chonkie/pyproject.toml index 7169c0bb7b..e1edec20c1 100644 --- a/integrations/chonkie/pyproject.toml +++ b/integrations/chonkie/pyproject.toml @@ -7,7 +7,7 @@ name = "chonkie-haystack" dynamic = ["version"] description = "Haystack integration for chonkie" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/chroma/pyproject.toml b/integrations/chroma/pyproject.toml index efea6f00a4..00e44b79a8 100644 --- a/integrations/chroma/pyproject.toml +++ b/integrations/chroma/pyproject.toml @@ -7,7 +7,7 @@ name = "chroma-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/cognee/pyproject.toml b/integrations/cognee/pyproject.toml index 96ade0ef29..0ed646cf39 100644 --- a/integrations/cognee/pyproject.toml +++ b/integrations/cognee/pyproject.toml @@ -7,7 +7,7 @@ name = "cognee-haystack" dynamic = ["version"] description = "Haystack integration for Cognee — memory for AI agents" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 3 - Alpha", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -30,13 +29,6 @@ dependencies = [ # wheels and caps requires-python at <3.14, so on Python 3.14 constrain to the last pure-Python # release. "litellm<1.83.8; python_version >= '3.14'", - # On Python 3.10, litellm 1.98.0 imports `NotRequired` from `typing` (3.11+ only), so `import - # litellm` fails outright even though litellm still declares requires-python >=3.10. 1.97.0 - # imports, but leaves the `Message` pydantic model with an unresolved forward reference, so every - # completion raises (BerriAI/litellm#36384). 1.96.2 is the last release that works on 3.10; both - # regressions are fixed for 3.11+ in 1.98.0, so only 3.10 needs the cap. Drop it once a release - # imports and completes on 3.10 again. - "litellm<1.97.0; python_version < '3.11'", ] [project.urls] diff --git a/integrations/cohere/pyproject.toml b/integrations/cohere/pyproject.toml index 88492fc4e8..bbc46f012a 100644 --- a/integrations/cohere/pyproject.toml +++ b/integrations/cohere/pyproject.toml @@ -7,7 +7,7 @@ name = "cohere-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/cometapi/pyproject.toml b/integrations/cometapi/pyproject.toml index 34ab4bc9bd..d2766fc005 100644 --- a/integrations/cometapi/pyproject.toml +++ b/integrations/cometapi/pyproject.toml @@ -7,7 +7,7 @@ name = "cometapi-haystack" dynamic = ["version"] description = 'Use Comet API with Haystack to build AI applications with 500+ AI models.' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/datadog/pyproject.toml b/integrations/datadog/pyproject.toml index c79ce4bcf1..d6081fa4a6 100644 --- a/integrations/datadog/pyproject.toml +++ b/integrations/datadog/pyproject.toml @@ -7,7 +7,7 @@ name = "datadog-haystack" dynamic = ["version"] description = "Haystack integration for datadog" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/ddgs/pyproject.toml b/integrations/ddgs/pyproject.toml index 5628d4e2d0..edfb759ed4 100644 --- a/integrations/ddgs/pyproject.toml +++ b/integrations/ddgs/pyproject.toml @@ -7,7 +7,7 @@ name = "ddgs-haystack" dynamic = ["version"] description = "Haystack integration for ddgs" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "web search", "websearch", "ddgs", "duckduckgo", "metasearch", "agent tool"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/deepeval/pyproject.toml b/integrations/deepeval/pyproject.toml index 4143ee8b1a..138e0aad20 100644 --- a/integrations/deepeval/pyproject.toml +++ b/integrations/deepeval/pyproject.toml @@ -7,7 +7,7 @@ name = "deepeval-haystack" dynamic = ["version"] description = 'An integration of DeepEval LLM evaluation framework with Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -78,7 +77,6 @@ module = ["deepeval.*"] ignore_missing_imports = true [tool.ruff] -target-version = "py310" line-length = 120 [tool.ruff.lint] diff --git a/integrations/docling/pyproject.toml b/integrations/docling/pyproject.toml index fba0db644c..3d579803eb 100644 --- a/integrations/docling/pyproject.toml +++ b/integrations/docling/pyproject.toml @@ -7,7 +7,7 @@ name = "docling-haystack" dynamic = ["version"] description = "Haystack integration for docling" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "Docling", @@ -24,7 +24,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/docling/src/haystack_integrations/components/converters/docling/converter.py b/integrations/docling/src/haystack_integrations/components/converters/docling/converter.py index e3c9b9ee4d..2c6abb3529 100644 --- a/integrations/docling/src/haystack_integrations/components/converters/docling/converter.py +++ b/integrations/docling/src/haystack_integrations/components/converters/docling/converter.py @@ -46,7 +46,7 @@ def _bytestream_to_document_stream(source: ByteStream) -> DocumentStream: return DocumentStream(name=name, stream=BytesIO(source.data)) -class ExportType(str, Enum): +class ExportType(str, Enum): # noqa: UP042 # StrEnum would change str() of this public enum """Enumeration of available export types.""" MARKDOWN = "markdown" diff --git a/integrations/docling_serve/pyproject.toml b/integrations/docling_serve/pyproject.toml index 74fd1631ca..086634582b 100644 --- a/integrations/docling_serve/pyproject.toml +++ b/integrations/docling_serve/pyproject.toml @@ -7,7 +7,7 @@ name = "docling-serve-haystack" dynamic = ["version"] description = "Haystack converter component for DoclingServe — document conversion via HTTP" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Docling", "DoclingServe", "document conversion", "PDF", "OCR"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/docling_serve/src/haystack_integrations/components/converters/docling_serve/converter.py b/integrations/docling_serve/src/haystack_integrations/components/converters/docling_serve/converter.py index 664e1fc0ce..348c22a3c1 100644 --- a/integrations/docling_serve/src/haystack_integrations/components/converters/docling_serve/converter.py +++ b/integrations/docling_serve/src/haystack_integrations/components/converters/docling_serve/converter.py @@ -27,7 +27,7 @@ _FAILED_CONVERSION_STATUSES = {"failure", "skipped"} -class ExportType(str, Enum): +class ExportType(str, Enum): # noqa: UP042 # StrEnum would change str() of this public enum """ Enumeration of export formats supported by DoclingServe. @@ -41,7 +41,7 @@ class ExportType(str, Enum): JSON = "json" -class ConversionMode(str, Enum): +class ConversionMode(str, Enum): # noqa: UP042 # StrEnum would change str() of this public enum """ Execution mode for DoclingServe conversions. diff --git a/integrations/dspy/pyproject.toml b/integrations/dspy/pyproject.toml index 517806ee8f..e4113f615e 100644 --- a/integrations/dspy/pyproject.toml +++ b/integrations/dspy/pyproject.toml @@ -7,7 +7,7 @@ name = "dspy-haystack" dynamic = ["version"] description = 'An integration between DSPy and Haystack for prompt optimization and structured generation' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "dspy", "prompt-optimization", "llm", "nlp"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }, { name = "Arsenii Shkunkov", email = "shkunkov.as@gmail.com" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/dynamodb/pyproject.toml b/integrations/dynamodb/pyproject.toml index 57cd6eeabd..2d09fddee1 100644 --- a/integrations/dynamodb/pyproject.toml +++ b/integrations/dynamodb/pyproject.toml @@ -7,7 +7,7 @@ name = "dynamodb-haystack" dynamic = ["version"] description = "Haystack integration for dynamodb" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "dynamodb", "aws", "vector-search", "document-store"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/e2b/pyproject.toml b/integrations/e2b/pyproject.toml index 4f526510df..0b5352ea8f 100644 --- a/integrations/e2b/pyproject.toml +++ b/integrations/e2b/pyproject.toml @@ -7,7 +7,7 @@ name = "e2b-haystack" dynamic = ["version"] description = "Haystack integration for E2B cloud sandboxes" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["E2B", "Haystack", "sandbox", "code execution", "tools"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/edenai/pyproject.toml b/integrations/edenai/pyproject.toml index 0c8dc6feeb..d410225e0b 100644 --- a/integrations/edenai/pyproject.toml +++ b/integrations/edenai/pyproject.toml @@ -7,7 +7,7 @@ name = "edenai-haystack" dynamic = ["version"] description = 'Use Eden AI with Haystack to build AI applications with 500+ AI models through one unified, OpenAI-compatible API.' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/elasticsearch/pyproject.toml b/integrations/elasticsearch/pyproject.toml index a35e0f8d6a..f303b8f774 100644 --- a/integrations/elasticsearch/pyproject.toml +++ b/integrations/elasticsearch/pyproject.toml @@ -7,7 +7,7 @@ name = "elasticsearch-haystack" dynamic = ["version"] description = 'Haystack 2.x Document Store for ElasticSearch' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }, { name = "Silvano Cerza", email = "silvanocerza@gmail.com" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/faiss/pyproject.toml b/integrations/faiss/pyproject.toml index e805092196..b7ce9990b1 100644 --- a/integrations/faiss/pyproject.toml +++ b/integrations/faiss/pyproject.toml @@ -7,7 +7,7 @@ name = "faiss-haystack" dynamic = ["version"] description = 'An integration of FAISS (library for efficient similarity search of dense vectors) with Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/falkordb/pyproject.toml b/integrations/falkordb/pyproject.toml index 0806d6ecf1..69bb4beb2b 100644 --- a/integrations/falkordb/pyproject.toml +++ b/integrations/falkordb/pyproject.toml @@ -7,7 +7,7 @@ name = "falkordb-haystack" dynamic = ["version"] description = "FalkorDB graph database integration for Haystack — enables GraphRAG with OpenCypher" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "falkordb", "graphrag", "graph", "vector-search", "document-store", "rag", "openCypher", "graph-database"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/fastembed/pyproject.toml b/integrations/fastembed/pyproject.toml index c140663bf3..bf1d47ad75 100644 --- a/integrations/fastembed/pyproject.toml +++ b/integrations/fastembed/pyproject.toml @@ -7,7 +7,7 @@ name = "fastembed-haystack" dynamic = ["version"] description = "Haystack 2.x component to embed strings and Documents using fastembed embedding model" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/firecrawl/pyproject.toml b/integrations/firecrawl/pyproject.toml index 12b4493823..d5b5af2531 100644 --- a/integrations/firecrawl/pyproject.toml +++ b/integrations/firecrawl/pyproject.toml @@ -7,7 +7,7 @@ name = "firecrawl-haystack" dynamic = ["version"] description = "Haystack integration for Firecrawl" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "Firecrawl", @@ -23,7 +23,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/firecrawl/src/haystack_integrations/components/fetchers/firecrawl/firecrawl_crawler.py b/integrations/firecrawl/src/haystack_integrations/components/fetchers/firecrawl/firecrawl_crawler.py index c5c4cf3f66..6f1fc22e02 100644 --- a/integrations/firecrawl/src/haystack_integrations/components/fetchers/firecrawl/firecrawl_crawler.py +++ b/integrations/firecrawl/src/haystack_integrations/components/fetchers/firecrawl/firecrawl_crawler.py @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: Apache-2.0 -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any from haystack import Document, component, logging @@ -157,7 +157,7 @@ def _documents_from_crawl_response(self, url: str, crawl_response: Any) -> list[ doc = Document( content=page.markdown, meta={ - "timestamp": datetime.now(tz=timezone.utc).isoformat(), + "timestamp": datetime.now(tz=UTC).isoformat(), **metadata, }, ) diff --git a/integrations/funasr/pyproject.toml b/integrations/funasr/pyproject.toml index ad8f7d669e..387b15698a 100644 --- a/integrations/funasr/pyproject.toml +++ b/integrations/funasr/pyproject.toml @@ -7,7 +7,7 @@ name = "funasr-haystack" dynamic = ["version"] description = "FunASR speech-to-text transcriber for Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["funasr", "speech-to-text", "asr", "audio", "transcription", "haystack", "llm", "rag"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/github/pyproject.toml b/integrations/github/pyproject.toml index f735f7c95e..5c1d7b8744 100644 --- a/integrations/github/pyproject.toml +++ b/integrations/github/pyproject.toml @@ -7,7 +7,7 @@ name = "github-haystack" dynamic = ["version"] description = 'Haystack components for interacting with GitHub repositories' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/github/src/haystack_integrations/components/connectors/github/file_editor.py b/integrations/github/src/haystack_integrations/components/connectors/github/file_editor.py index eb17606f2b..2cc7afafcb 100644 --- a/integrations/github/src/haystack_integrations/components/connectors/github/file_editor.py +++ b/integrations/github/src/haystack_integrations/components/connectors/github/file_editor.py @@ -12,7 +12,7 @@ logger = logging.getLogger(__name__) -class Command(str, Enum): +class Command(str, Enum): # noqa: UP042 # StrEnum would change str() of this public enum """ Available commands for file operations in GitHub. diff --git a/integrations/google_drive/pyproject.toml b/integrations/google_drive/pyproject.toml index 2e6652d500..1525447c9c 100644 --- a/integrations/google_drive/pyproject.toml +++ b/integrations/google_drive/pyproject.toml @@ -7,7 +7,7 @@ name = "google-drive-haystack" dynamic = ["version"] description = "Haystack integration for google_drive" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "haystack", @@ -21,7 +21,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/google_genai/pyproject.toml b/integrations/google_genai/pyproject.toml index 97fc351e51..b90ce2bf05 100644 --- a/integrations/google_genai/pyproject.toml +++ b/integrations/google_genai/pyproject.toml @@ -7,7 +7,7 @@ name = "google-genai-haystack" dynamic = ["version"] description = 'Use models like Gemini via Google Gen AI SDK' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/multimodal_document_embedder.py b/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/multimodal_document_embedder.py index bc982c0a7e..d4d7786150 100644 --- a/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/multimodal_document_embedder.py +++ b/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/multimodal_document_embedder.py @@ -6,7 +6,7 @@ import mimetypes from dataclasses import replace from pathlib import Path -from typing import Any, Literal +from typing import Any, Literal, NotRequired from google.genai import Client from google.genai.client import AsyncClient @@ -21,7 +21,7 @@ from haystack.utils import Secret, deserialize_secrets_inplace from tqdm import tqdm from tqdm.asyncio import tqdm as async_tqdm -from typing_extensions import NotRequired, TypedDict +from typing_extensions import TypedDict from haystack_integrations.common.google_genai.utils import _get_client diff --git a/integrations/google_genai/src/haystack_integrations/components/generators/google_genai/chat/utils.py b/integrations/google_genai/src/haystack_integrations/components/generators/google_genai/chat/utils.py index 92f65f0986..e397ffa140 100644 --- a/integrations/google_genai/src/haystack_integrations/components/generators/google_genai/chat/utils.py +++ b/integrations/google_genai/src/haystack_integrations/components/generators/google_genai/chat/utils.py @@ -4,7 +4,7 @@ import base64 import json -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any from google.genai import types @@ -697,7 +697,7 @@ def _convert_google_chunk_to_streaming_chunk( start = index == 0 or len(tool_calls) > 0 meta: dict[str, Any] = { - "received_at": datetime.now(timezone.utc).isoformat(), + "received_at": datetime.now(UTC).isoformat(), "model": model, "usage": usage, } diff --git a/integrations/gotenberg/pyproject.toml b/integrations/gotenberg/pyproject.toml index d91b01edbb..260c212d6d 100644 --- a/integrations/gotenberg/pyproject.toml +++ b/integrations/gotenberg/pyproject.toml @@ -7,7 +7,7 @@ name = "gotenberg-haystack" dynamic = ["version"] description = "Gotenberg document to PDF converter integration for Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "gotenberg", "libreoffice", "pdf", "document-conversion"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }, { name = "Max Swain" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/gotenberg/src/haystack_integrations/components/converters/gotenberg/converter.py b/integrations/gotenberg/src/haystack_integrations/components/converters/gotenberg/converter.py index 6c8b90f9cc..21861ea5ac 100644 --- a/integrations/gotenberg/src/haystack_integrations/components/converters/gotenberg/converter.py +++ b/integrations/gotenberg/src/haystack_integrations/components/converters/gotenberg/converter.py @@ -6,14 +6,13 @@ import mimetypes import re from pathlib import Path -from typing import Any, Literal +from typing import Any, Literal, Self import httpx2 from haystack import component, default_from_dict, default_to_dict from haystack.components.converters.utils import normalize_metadata from haystack.dataclasses import ByteStream from httpx2._types import FileTypes, RequestFiles -from typing_extensions import Self _Route = Literal["libreoffice", "html", "markdown", "url"] # Supported Gotenberg LibreOffice conversion input formats: diff --git a/integrations/hanlp/pyproject.toml b/integrations/hanlp/pyproject.toml index a0c2d2cdf3..54eac76d31 100644 --- a/integrations/hanlp/pyproject.toml +++ b/integrations/hanlp/pyproject.toml @@ -7,7 +7,7 @@ name = "hanlp-haystack" dynamic = ["version"] description = 'An integration of Han Language Processing - HanLP as a ChineseDocumentSplitter component.' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/hetzner/pyproject.toml b/integrations/hetzner/pyproject.toml index 765498d0e4..3e1d37a264 100644 --- a/integrations/hetzner/pyproject.toml +++ b/integrations/hetzner/pyproject.toml @@ -7,7 +7,7 @@ name = "hetzner-haystack" dynamic = ["version"] description = 'An integration between the Hetzner Inference API and Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "hetzner", "inference", "llm", "chat generator", "qwen"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/huggingface_api/pyproject.toml b/integrations/huggingface_api/pyproject.toml index f907ee0cc1..1c5de72fc7 100644 --- a/integrations/huggingface_api/pyproject.toml +++ b/integrations/huggingface_api/pyproject.toml @@ -7,7 +7,7 @@ name = "huggingface-api-haystack" dynamic = ["version"] description = "Haystack integration for Hugging Face API" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/huggingface_api/src/haystack_integrations/components/generators/huggingface_api/chat/chat_generator.py b/integrations/huggingface_api/src/haystack_integrations/components/generators/huggingface_api/chat/chat_generator.py index 8b0a67495f..a27050919b 100644 --- a/integrations/huggingface_api/src/haystack_integrations/components/generators/huggingface_api/chat/chat_generator.py +++ b/integrations/huggingface_api/src/haystack_integrations/components/generators/huggingface_api/chat/chat_generator.py @@ -5,7 +5,7 @@ import inspect import json from collections.abc import AsyncIterable, Iterable -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any, Union from haystack import component, default_from_dict, default_to_dict, logging @@ -221,7 +221,7 @@ def _convert_chat_completion_stream_output_to_streaming_chunk( usage = {"prompt_tokens": chunk.usage.prompt_tokens, "completion_tokens": chunk.usage.completion_tokens} return StreamingChunk( content="", - meta={"model": chunk.model, "received_at": datetime.now(timezone.utc).isoformat(), "usage": usage}, + meta={"model": chunk.model, "received_at": datetime.now(UTC).isoformat(), "usage": usage}, component_info=component_info, ) @@ -238,7 +238,7 @@ def _convert_chat_completion_stream_output_to_streaming_chunk( content=choice.delta.content or "", meta={ "model": chunk.model, - "received_at": datetime.now(timezone.utc).isoformat(), + "received_at": datetime.now(UTC).isoformat(), "finish_reason": choice.finish_reason, }, component_info=component_info, diff --git a/integrations/huggingface_api/src/haystack_integrations/components/rankers/huggingface_api/ranker.py b/integrations/huggingface_api/src/haystack_integrations/components/rankers/huggingface_api/ranker.py index 394ff9ed34..6c049f72d8 100644 --- a/integrations/huggingface_api/src/haystack_integrations/components/rankers/huggingface_api/ranker.py +++ b/integrations/huggingface_api/src/haystack_integrations/components/rankers/huggingface_api/ranker.py @@ -21,7 +21,7 @@ from grpc_requests.aio import AsyncClient -class TruncationDirection(str, Enum): +class TruncationDirection(str, Enum): # noqa: UP042 # StrEnum would change str() of this public enum """ Defines the direction to truncate text when input length exceeds the model's limit. diff --git a/integrations/huggingface_api/tests/test_chat_generator.py b/integrations/huggingface_api/tests/test_chat_generator.py index 02c46f7177..ab960c0599 100644 --- a/integrations/huggingface_api/tests/test_chat_generator.py +++ b/integrations/huggingface_api/tests/test_chat_generator.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 import os -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any from unittest.mock import AsyncMock, MagicMock, Mock, patch @@ -935,7 +935,7 @@ def test_live_run_serverless_streaming(self): response_meta = response["replies"][0].meta assert "completion_start_time" in response_meta - assert datetime.fromisoformat(response_meta["completion_start_time"]) <= datetime.now(timezone.utc) + assert datetime.fromisoformat(response_meta["completion_start_time"]) <= datetime.now(UTC) assert "usage" in response_meta assert "prompt_tokens" in response_meta["usage"] assert response_meta["usage"]["prompt_tokens"] >= 0 diff --git a/integrations/ibm_db/pyproject.toml b/integrations/ibm_db/pyproject.toml index bc61594dc5..0d28a8a9d3 100644 --- a/integrations/ibm_db/pyproject.toml +++ b/integrations/ibm_db/pyproject.toml @@ -7,7 +7,7 @@ name = "ibm-db-haystack" dynamic = ["version"] description = "Haystack integration for IBM Db2" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/ibm_db/tests/test_document_store.py b/integrations/ibm_db/tests/test_document_store.py index 82bd40f766..0d217fe62c 100644 --- a/integrations/ibm_db/tests/test_document_store.py +++ b/integrations/ibm_db/tests/test_document_store.py @@ -6,7 +6,7 @@ import math import sys -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from unittest.mock import MagicMock, Mock import pytest @@ -75,8 +75,8 @@ def _generate_self_signed_cert_pem() -> bytes: .issuer_name(issuer) .public_key(private_key.public_key()) .serial_number(x509.random_serial_number()) - .not_valid_before(datetime.now(timezone.utc)) - .not_valid_after(datetime.now(timezone.utc) + timedelta(days=365)) + .not_valid_before(datetime.now(UTC)) + .not_valid_after(datetime.now(UTC) + timedelta(days=365)) .add_extension( x509.SubjectAlternativeName([x509.DNSName("localhost")]), critical=False, diff --git a/integrations/jina/pyproject.toml b/integrations/jina/pyproject.toml index 6cf88286c8..559fa0aaaf 100644 --- a/integrations/jina/pyproject.toml +++ b/integrations/jina/pyproject.toml @@ -7,7 +7,7 @@ name = "jina-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/kreuzberg/pyproject.toml b/integrations/kreuzberg/pyproject.toml index f55b661b7e..0cf2635301 100644 --- a/integrations/kreuzberg/pyproject.toml +++ b/integrations/kreuzberg/pyproject.toml @@ -18,7 +18,7 @@ name = "kreuzberg-haystack" dynamic = ["version"] description = "Kreuzberg document converter for Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "kreuzberg", "document-conversion", "pdf", "ocr"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -26,7 +26,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/langdetect/pyproject.toml b/integrations/langdetect/pyproject.toml index 57f94fda08..7c2edba165 100644 --- a/integrations/langdetect/pyproject.toml +++ b/integrations/langdetect/pyproject.toml @@ -7,7 +7,7 @@ name = "langdetect-haystack" dynamic = ["version"] description = "Haystack integration for langdetect" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "langdetect", "language detection", "language classification", "language routing"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/langfuse/pyproject.toml b/integrations/langfuse/pyproject.toml index 71dd2d84c3..6a5ac46bb1 100644 --- a/integrations/langfuse/pyproject.toml +++ b/integrations/langfuse/pyproject.toml @@ -7,14 +7,13 @@ name = "langfuse-haystack" dynamic = ["version"] description = "Langfuse integration for Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/lara/pyproject.toml b/integrations/lara/pyproject.toml index c261017973..942ba75edf 100644 --- a/integrations/lara/pyproject.toml +++ b/integrations/lara/pyproject.toml @@ -7,7 +7,7 @@ name = "lara-haystack" dynamic = ["version"] description = "Haystack integration for Lara, translated's AI translator" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "Haystack", @@ -22,7 +22,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/libreoffice/pyproject.toml b/integrations/libreoffice/pyproject.toml index 025df1383b..7d43de8a49 100644 --- a/integrations/libreoffice/pyproject.toml +++ b/integrations/libreoffice/pyproject.toml @@ -7,7 +7,7 @@ name = "libreoffice-haystack" dynamic = ["version"] description = "LibreOffice integration for Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }, { name = "Max Swain" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/libreoffice/src/haystack_integrations/components/converters/libreoffice/converter.py b/integrations/libreoffice/src/haystack_integrations/components/converters/libreoffice/converter.py index e38dcb82ed..e7e4821cc2 100644 --- a/integrations/libreoffice/src/haystack_integrations/components/converters/libreoffice/converter.py +++ b/integrations/libreoffice/src/haystack_integrations/components/converters/libreoffice/converter.py @@ -10,11 +10,10 @@ from collections.abc import Iterable from pathlib import Path from tempfile import TemporaryDirectory -from typing import Any, ClassVar, Literal, TypedDict, get_args +from typing import Any, ClassVar, Literal, Self, TypedDict, get_args from haystack import component, default_from_dict, default_to_dict from haystack.dataclasses import ByteStream -from typing_extensions import Self OUTPUT_FILE_TYPE = Literal[ "pdf", diff --git a/integrations/linkup/pyproject.toml b/integrations/linkup/pyproject.toml index bbe41b7930..107de130af 100644 --- a/integrations/linkup/pyproject.toml +++ b/integrations/linkup/pyproject.toml @@ -7,7 +7,7 @@ name = "linkup-haystack" dynamic = ["version"] description = "Haystack integration for Linkup Search API" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Linkup", "Web Search", "AI Search"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/litellm/pyproject.toml b/integrations/litellm/pyproject.toml index bf7c0b9a20..4b3f7b1940 100644 --- a/integrations/litellm/pyproject.toml +++ b/integrations/litellm/pyproject.toml @@ -7,7 +7,7 @@ name = "litellm-haystack" dynamic = ["version"] description = "An integration of LiteLLM AI gateway into the Haystack framework, routing to 100+ LLM providers." readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "litellm", "llm", "ai-gateway"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/llama_cpp/pyproject.toml b/integrations/llama_cpp/pyproject.toml index e5d85592a0..fe2a7955ee 100644 --- a/integrations/llama_cpp/pyproject.toml +++ b/integrations/llama_cpp/pyproject.toml @@ -7,7 +7,7 @@ name = "llama-cpp-haystack" dynamic = ["version"] description = 'An integration between the llama.cpp LLM framework and Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/llama_cpp/src/haystack_integrations/components/generators/llama_cpp/chat/chat_generator.py b/integrations/llama_cpp/src/haystack_integrations/components/generators/llama_cpp/chat/chat_generator.py index c78a629e09..4de8a2eb25 100644 --- a/integrations/llama_cpp/src/haystack_integrations/components/generators/llama_cpp/chat/chat_generator.py +++ b/integrations/llama_cpp/src/haystack_integrations/components/generators/llama_cpp/chat/chat_generator.py @@ -5,7 +5,7 @@ import asyncio import json from collections.abc import Iterator -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any from haystack import component, default_from_dict, default_to_dict, logging @@ -556,7 +556,7 @@ def _handle_streaming_response( finish_reason=mapped_finish_reason, meta={ "model": chunk["model"], - "received_at": datetime.fromtimestamp(chunk["created"], tz=timezone.utc).isoformat(), + "received_at": datetime.fromtimestamp(chunk["created"], tz=UTC).isoformat(), }, # llama.cpp does not provide usage metadata during streaming ) diff --git a/integrations/llama_stack/pyproject.toml b/integrations/llama_stack/pyproject.toml index 0708eb32cf..98ac6e13d5 100644 --- a/integrations/llama_stack/pyproject.toml +++ b/integrations/llama_stack/pyproject.toml @@ -75,7 +75,6 @@ disallow_incomplete_defs = true [tool.ruff] -target-version = "py39" line-length = 120 [tool.ruff.lint] diff --git a/integrations/mariadb/pyproject.toml b/integrations/mariadb/pyproject.toml index f6af157ff2..a7a3fbed1f 100644 --- a/integrations/mariadb/pyproject.toml +++ b/integrations/mariadb/pyproject.toml @@ -7,7 +7,7 @@ name = "mariadb-haystack" dynamic = ["version"] description = "An integration of MariaDB 11.7+ (native VECTOR support) with Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/markitdown/pyproject.toml b/integrations/markitdown/pyproject.toml index 30f0e9f45c..ddb9f5b5e4 100644 --- a/integrations/markitdown/pyproject.toml +++ b/integrations/markitdown/pyproject.toml @@ -7,7 +7,7 @@ name = "markitdown-haystack" dynamic = ["version"] description = "Haystack integration for MarkItDown — Microsoft's multi-format to Markdown converter" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "MarkItDown", "document-conversion", "markdown", "pdf", "docx"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/mcp/pyproject.toml b/integrations/mcp/pyproject.toml index 53970ae482..9401bb9b7a 100644 --- a/integrations/mcp/pyproject.toml +++ b/integrations/mcp/pyproject.toml @@ -7,7 +7,7 @@ name = "mcp-haystack" dynamic = ["version"] description = "Haystack integration for Model Context Protocol (MCP)" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "MCP", @@ -21,7 +21,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -31,7 +30,6 @@ classifiers = [ dependencies = [ "mcp>=1.24.0", "haystack-ai>=2.23.0", - "exceptiongroup", # Backport of ExceptionGroup for Python < 3.11 ] [project.urls] @@ -88,7 +86,6 @@ disallow_incomplete_defs = true [tool.ruff] -target-version = "py310" line-length = 120 [tool.ruff.lint] diff --git a/integrations/mcp/src/haystack_integrations/tools/mcp/mcp_tool.py b/integrations/mcp/src/haystack_integrations/tools/mcp/mcp_tool.py index 8588cfaead..4f4b39b285 100644 --- a/integrations/mcp/src/haystack_integrations/tools/mcp/mcp_tool.py +++ b/integrations/mcp/src/haystack_integrations/tools/mcp/mcp_tool.py @@ -17,7 +17,6 @@ from dataclasses import dataclass, fields from typing import Any, cast -from exceptiongroup import ExceptionGroup from haystack import logging from haystack.core.serialization import generate_qualified_class_name, import_class_by_name from haystack.tools import Tool @@ -1121,7 +1120,7 @@ async def ainvoke(self, **kwargs: Any) -> str | dict[str, Any]: return _extract_first_text_element(result) return result - except asyncio.TimeoutError as e: + except TimeoutError as e: message = f"Tool invocation timed out after {self._invocation_timeout} seconds" raise TimeoutError(message) from e except Exception as e: diff --git a/integrations/mcp/src/haystack_integrations/tools/mcp/mcp_toolset.py b/integrations/mcp/src/haystack_integrations/tools/mcp/mcp_toolset.py index 3e4eb5d046..5fb2451fc7 100644 --- a/integrations/mcp/src/haystack_integrations/tools/mcp/mcp_toolset.py +++ b/integrations/mcp/src/haystack_integrations/tools/mcp/mcp_toolset.py @@ -7,7 +7,6 @@ from typing import Any, cast from urllib.parse import urlparse -from exceptiongroup import ExceptionGroup from haystack import logging from haystack.core.serialization import generate_qualified_class_name, import_class_by_name from haystack.tools import Tool, Toolset diff --git a/integrations/mcp/tests/test_mcp_tool.py b/integrations/mcp/tests/test_mcp_tool.py index 6cabc875dc..f6a434686b 100644 --- a/integrations/mcp/tests/test_mcp_tool.py +++ b/integrations/mcp/tests/test_mcp_tool.py @@ -6,7 +6,6 @@ from unittest.mock import AsyncMock, MagicMock, patch import pytest -from exceptiongroup import ExceptionGroup from haystack.components.agents import Agent from haystack.components.generators.chat import OpenAIChatGenerator from haystack.core.pipeline import Pipeline diff --git a/integrations/mem0/pyproject.toml b/integrations/mem0/pyproject.toml index e555795965..396a2b19b7 100644 --- a/integrations/mem0/pyproject.toml +++ b/integrations/mem0/pyproject.toml @@ -7,7 +7,7 @@ name = "mem0-haystack" dynamic = ["version"] description = "Haystack integration for mem0" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "mem0", "memory", "agents", "llm"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/microsoft_sharepoint/pyproject.toml b/integrations/microsoft_sharepoint/pyproject.toml index 74875a03bd..6494cef4e4 100644 --- a/integrations/microsoft_sharepoint/pyproject.toml +++ b/integrations/microsoft_sharepoint/pyproject.toml @@ -7,7 +7,7 @@ name = "microsoft-sharepoint-haystack" dynamic = ["version"] description = "Haystack integration for microsoft_sharepoint" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "haystack", @@ -21,7 +21,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/mistral/pyproject.toml b/integrations/mistral/pyproject.toml index 34789b1c6c..e47b00ddc9 100644 --- a/integrations/mistral/pyproject.toml +++ b/integrations/mistral/pyproject.toml @@ -7,7 +7,7 @@ name = "mistral-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/mongodb_atlas/pyproject.toml b/integrations/mongodb_atlas/pyproject.toml index bae4677bef..b8f97809e7 100644 --- a/integrations/mongodb_atlas/pyproject.toml +++ b/integrations/mongodb_atlas/pyproject.toml @@ -7,7 +7,7 @@ name = "mongodb-atlas-haystack" dynamic = ["version"] description = "An integration of MongoDB Atlas with Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/monty/pyproject.toml b/integrations/monty/pyproject.toml index ec151c9ff0..135ec78ba8 100644 --- a/integrations/monty/pyproject.toml +++ b/integrations/monty/pyproject.toml @@ -7,7 +7,7 @@ name = "monty-haystack" dynamic = ["version"] description = "Sandboxed Python code execution tool for Haystack Agents, powered by Pydantic Monty" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "monty", "pydantic", "sandbox", "code-execution", "agents", "tools"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/nvidia/pyproject.toml b/integrations/nvidia/pyproject.toml index eb12c8038b..d65d3d10bd 100644 --- a/integrations/nvidia/pyproject.toml +++ b/integrations/nvidia/pyproject.toml @@ -7,7 +7,7 @@ name = "nvidia-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/nvidia/src/haystack_integrations/components/rankers/nvidia/truncate.py b/integrations/nvidia/src/haystack_integrations/components/rankers/nvidia/truncate.py index 0d21a08441..d30edbfcb7 100644 --- a/integrations/nvidia/src/haystack_integrations/components/rankers/nvidia/truncate.py +++ b/integrations/nvidia/src/haystack_integrations/components/rankers/nvidia/truncate.py @@ -5,7 +5,7 @@ from enum import Enum -class RankerTruncateMode(str, Enum): +class RankerTruncateMode(str, Enum): # noqa: UP042 # StrEnum would change str() of this public enum """ Specifies how inputs to the NVIDIA ranker components are truncated. diff --git a/integrations/oauth/pyproject.toml b/integrations/oauth/pyproject.toml index 89bdae9b09..46d5cfeb15 100644 --- a/integrations/oauth/pyproject.toml +++ b/integrations/oauth/pyproject.toml @@ -7,7 +7,7 @@ name = "oauth-haystack" dynamic = ["version"] description = "Haystack integration for oauth" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "haystack", @@ -19,7 +19,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/ollama/pyproject.toml b/integrations/ollama/pyproject.toml index 76ddb75e6c..030135d802 100644 --- a/integrations/ollama/pyproject.toml +++ b/integrations/ollama/pyproject.toml @@ -7,7 +7,7 @@ name = "ollama-haystack" dynamic = ["version"] description = 'An integration between the Ollama LLM framework and Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -19,7 +19,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/openapi/pyproject.toml b/integrations/openapi/pyproject.toml index bd51f9f08d..aff64e0724 100644 --- a/integrations/openapi/pyproject.toml +++ b/integrations/openapi/pyproject.toml @@ -7,7 +7,7 @@ name = "openapi-haystack" dynamic = ["version"] description = "Haystack integration for openapi" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "openapi", "rest", "api", "connector", "function-calling"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/opendataloader_pdf/pyproject.toml b/integrations/opendataloader_pdf/pyproject.toml index 8a6f4e7f33..9f0dd7ccdd 100644 --- a/integrations/opendataloader_pdf/pyproject.toml +++ b/integrations/opendataloader_pdf/pyproject.toml @@ -7,7 +7,7 @@ name = "opendataloader-pdf-haystack" dynamic = ["version"] description = "Haystack integration for opendataloader_pdf" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/openrouter/pyproject.toml b/integrations/openrouter/pyproject.toml index 091d320627..91d8ad3ca7 100644 --- a/integrations/openrouter/pyproject.toml +++ b/integrations/openrouter/pyproject.toml @@ -7,7 +7,7 @@ name = "openrouter-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/opensearch/pyproject.toml b/integrations/opensearch/pyproject.toml index 5fb3452ba9..108617da63 100644 --- a/integrations/opensearch/pyproject.toml +++ b/integrations/opensearch/pyproject.toml @@ -7,7 +7,7 @@ name = "opensearch-haystack" dynamic = ["version"] description = 'Haystack 2.x Document Store for OpenSearch' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/opentelemetry/pyproject.toml b/integrations/opentelemetry/pyproject.toml index e4ff50b1c0..177eabca1e 100644 --- a/integrations/opentelemetry/pyproject.toml +++ b/integrations/opentelemetry/pyproject.toml @@ -7,7 +7,7 @@ name = "opentelemetry-haystack" dynamic = ["version"] description = "Haystack integration for opentelemetry" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "OpenTelemetry", "OTel", "tracing", "observability", "monitoring"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/optimum/pyproject.toml b/integrations/optimum/pyproject.toml index d06c88f741..da95f0f4fe 100644 --- a/integrations/optimum/pyproject.toml +++ b/integrations/optimum/pyproject.toml @@ -7,7 +7,7 @@ name = "optimum-haystack" dynamic = ["version"] description = "Component to embed strings and Documents using models loaded with the HuggingFace Optimum library. This component is designed to seamlessly inference models using the high speed ONNX runtime." readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/oracle/pyproject.toml b/integrations/oracle/pyproject.toml index a256274ab5..26f1e047aa 100644 --- a/integrations/oracle/pyproject.toml +++ b/integrations/oracle/pyproject.toml @@ -7,7 +7,7 @@ name = "oracle-haystack" dynamic = ["version"] description = "Oracle AI Vector Search DocumentStore integration for Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "oracle", "vector search", "document store", "RAG", "OCI"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 3 - Alpha", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/orcarouter/pyproject.toml b/integrations/orcarouter/pyproject.toml index 4239863877..9722e3b122 100644 --- a/integrations/orcarouter/pyproject.toml +++ b/integrations/orcarouter/pyproject.toml @@ -7,7 +7,7 @@ name = "orcarouter-haystack" dynamic = ["version"] description = "Haystack integration for orcarouter" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/paddleocr/pyproject.toml b/integrations/paddleocr/pyproject.toml index 8567df01e3..0b16633245 100644 --- a/integrations/paddleocr/pyproject.toml +++ b/integrations/paddleocr/pyproject.toml @@ -7,7 +7,7 @@ name = "paddleocr-haystack" dynamic = ["version"] description = 'An integration of PaddleOCR with Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -16,7 +16,6 @@ authors = [ classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", diff --git a/integrations/parallel/pyproject.toml b/integrations/parallel/pyproject.toml index 6e5aabdaa3..4697252a2a 100644 --- a/integrations/parallel/pyproject.toml +++ b/integrations/parallel/pyproject.toml @@ -7,7 +7,7 @@ name = "parallel-haystack" dynamic = ["version"] description = "Haystack integration for Parallel web search and web-research models" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Parallel", "Web Search", "AI Search", "Deep Research"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/parallel/tests/test_parallel_chat_generator.py b/integrations/parallel/tests/test_parallel_chat_generator.py index 6815560bcb..3539a0dd03 100644 --- a/integrations/parallel/tests/test_parallel_chat_generator.py +++ b/integrations/parallel/tests/test_parallel_chat_generator.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 import os -from datetime import datetime, timezone +from datetime import UTC, datetime from unittest.mock import patch import httpx @@ -24,7 +24,7 @@ def _make_response() -> Response: response_data = { "id": "resp_test", - "created_at": datetime.now(tz=timezone.utc).timestamp(), + "created_at": datetime.now(tz=UTC).timestamp(), "model": "parallel", "object": "response", "output": [], diff --git a/integrations/perplexity/pyproject.toml b/integrations/perplexity/pyproject.toml index eb4993f504..9ba8f478c4 100644 --- a/integrations/perplexity/pyproject.toml +++ b/integrations/perplexity/pyproject.toml @@ -7,7 +7,7 @@ name = "perplexity-haystack" dynamic = ["version"] description = "Haystack integration for Perplexity Web Search" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Perplexity", "Web Search", "AI Search"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/perplexity/tests/test_perplexity_chat_generator.py b/integrations/perplexity/tests/test_perplexity_chat_generator.py index daa19ca058..481aaa9cc1 100644 --- a/integrations/perplexity/tests/test_perplexity_chat_generator.py +++ b/integrations/perplexity/tests/test_perplexity_chat_generator.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 import os -from datetime import datetime, timezone +from datetime import UTC, datetime from unittest.mock import patch import httpx @@ -24,7 +24,7 @@ def _make_response() -> Response: response_data = { "id": "resp_test", - "created_at": datetime.now(tz=timezone.utc).timestamp(), + "created_at": datetime.now(tz=UTC).timestamp(), "model": "openai/gpt-5.4", "object": "response", "output": [], @@ -45,7 +45,7 @@ def handler(request: httpx.Request) -> httpx.Response: 200, json={ "id": "resp_test", - "created_at": datetime.now(tz=timezone.utc).timestamp(), + "created_at": datetime.now(tz=UTC).timestamp(), "model": "openai/gpt-5.4", "object": "response", "output": [], diff --git a/integrations/pgvector/pyproject.toml b/integrations/pgvector/pyproject.toml index edcf02321c..8f4b7f52e8 100644 --- a/integrations/pgvector/pyproject.toml +++ b/integrations/pgvector/pyproject.toml @@ -7,7 +7,7 @@ name = "pgvector-haystack" dynamic = ["version"] description = "An integration of pgvector (vector search extension for Postgres) with Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/pinecone/pyproject.toml b/integrations/pinecone/pyproject.toml index f486dc2422..9c3493709c 100644 --- a/integrations/pinecone/pyproject.toml +++ b/integrations/pinecone/pyproject.toml @@ -7,7 +7,7 @@ name = "pinecone-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/presidio/pyproject.toml b/integrations/presidio/pyproject.toml index 4c187836cb..b66c621af7 100644 --- a/integrations/presidio/pyproject.toml +++ b/integrations/presidio/pyproject.toml @@ -7,7 +7,7 @@ name = "presidio-haystack" dynamic = ["version"] description = "Haystack integration for Microsoft Presidio — PII detection and anonymization" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Presidio", "PII", "anonymization", "privacy", "NLP"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/pyversity/pyproject.toml b/integrations/pyversity/pyproject.toml index 59a8e338b2..06cd5af198 100644 --- a/integrations/pyversity/pyproject.toml +++ b/integrations/pyversity/pyproject.toml @@ -7,7 +7,7 @@ name = "pyversity-haystack" dynamic = ["version"] description = 'Haystack component wrapping pyversity for result diversification in retrieval pipelines' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/qdrant/pyproject.toml b/integrations/qdrant/pyproject.toml index 8762bf698f..e95a9e6d18 100644 --- a/integrations/qdrant/pyproject.toml +++ b/integrations/qdrant/pyproject.toml @@ -7,7 +7,7 @@ name = "qdrant-haystack" dynamic = ["version"] description = 'An integration of Qdrant ANN vector database backend with Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -19,7 +19,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/ragas/pyproject.toml b/integrations/ragas/pyproject.toml index c172b523bd..48e2822862 100644 --- a/integrations/ragas/pyproject.toml +++ b/integrations/ragas/pyproject.toml @@ -7,7 +7,7 @@ name = "ragas-haystack" dynamic = ["version"] description = 'An integration of Ragas LLM evaluation framework with Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/rhesis/pyproject.toml b/integrations/rhesis/pyproject.toml index 6171d741d8..b15b45ca2e 100644 --- a/integrations/rhesis/pyproject.toml +++ b/integrations/rhesis/pyproject.toml @@ -7,7 +7,7 @@ name = "rhesis-haystack" dynamic = ["version"] description = "Haystack integration for rhesis" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "rhesis", "tracing", "observability", "opentelemetry", "llm"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/searchapi/pyproject.toml b/integrations/searchapi/pyproject.toml index 6950ce4b97..0c14895eee 100644 --- a/integrations/searchapi/pyproject.toml +++ b/integrations/searchapi/pyproject.toml @@ -7,7 +7,7 @@ name = "searchapi-haystack" dynamic = ["version"] description = "Haystack integration for SearchApi Web Search" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "SearchApi", "Web Search", "AI Search"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/sentence_transformers/pyproject.toml b/integrations/sentence_transformers/pyproject.toml index 81235cb0fe..a4417b4257 100644 --- a/integrations/sentence_transformers/pyproject.toml +++ b/integrations/sentence_transformers/pyproject.toml @@ -7,7 +7,7 @@ name = "sentence-transformers-haystack" dynamic = ["version"] description = "Haystack integration for sentence_transformers" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "sentence-transformers", "embeddings", "reranking"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/serperdev/pyproject.toml b/integrations/serperdev/pyproject.toml index 2b7cbee6be..e0f9155bcf 100644 --- a/integrations/serperdev/pyproject.toml +++ b/integrations/serperdev/pyproject.toml @@ -7,7 +7,7 @@ name = "serperdev-haystack" dynamic = ["version"] description = "Haystack integration for SerperDev Web Search" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "SerperDev", "Serper", "Web Search", "AI Search"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/snowflake/pyproject.toml b/integrations/snowflake/pyproject.toml index 9decc6afdc..cae278772f 100644 --- a/integrations/snowflake/pyproject.toml +++ b/integrations/snowflake/pyproject.toml @@ -7,7 +7,7 @@ name = "snowflake-haystack" dynamic = ["version"] description = 'A Snowflake integration for the Haystack framework.' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }, @@ -16,7 +16,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/solr/pyproject.toml b/integrations/solr/pyproject.toml index 27a575a613..068f5609f1 100644 --- a/integrations/solr/pyproject.toml +++ b/integrations/solr/pyproject.toml @@ -7,7 +7,7 @@ name = "solr-haystack" dynamic = ["version"] description = "Haystack Document Store for Apache Solr" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["haystack", "solr", "apache-solr", "document-store", "retriever", "vector-search", "bm25"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/spacy/pyproject.toml b/integrations/spacy/pyproject.toml index a005d08d99..006f06c084 100644 --- a/integrations/spacy/pyproject.toml +++ b/integrations/spacy/pyproject.toml @@ -7,7 +7,7 @@ name = "spacy-haystack" dynamic = ["version"] description = "Haystack integration for spacy" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/sqlalchemy/pyproject.toml b/integrations/sqlalchemy/pyproject.toml index ee71a56984..3724e2009d 100644 --- a/integrations/sqlalchemy/pyproject.toml +++ b/integrations/sqlalchemy/pyproject.toml @@ -7,7 +7,7 @@ name = "sqlalchemy-haystack" dynamic = ["version"] description = 'A SQLAlchemy integration for the Haystack framework.' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -26,8 +25,7 @@ classifiers = [ dependencies = [ "haystack-ai>=2.22.0", "sqlalchemy>=2.0.36", - "pandas>=2.2.3; python_version < '3.11'", - "pandas>=3.0.0; python_version >= '3.11'", + "pandas>=3.0.0", ] [project.urls] diff --git a/integrations/stackit/pyproject.toml b/integrations/stackit/pyproject.toml index 7dbc36a197..1a714a491b 100644 --- a/integrations/stackit/pyproject.toml +++ b/integrations/stackit/pyproject.toml @@ -7,7 +7,7 @@ name = "stackit-haystack" dynamic = ["version"] description = 'An integration of STACKIT as a StackitChatGenerator' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/supabase/pyproject.toml b/integrations/supabase/pyproject.toml index d0f80ea17e..64f98e86d6 100644 --- a/integrations/supabase/pyproject.toml +++ b/integrations/supabase/pyproject.toml @@ -7,7 +7,7 @@ name = "supabase-haystack" dynamic = ["version"] description = "Haystack integration for supabase" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/tavily/pyproject.toml b/integrations/tavily/pyproject.toml index 3715c9c779..36568368bd 100644 --- a/integrations/tavily/pyproject.toml +++ b/integrations/tavily/pyproject.toml @@ -7,7 +7,7 @@ name = "tavily-haystack" dynamic = ["version"] description = "Haystack integration for Tavily Web Search" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Tavily", "Web Search", "AI Search"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/tika/pyproject.toml b/integrations/tika/pyproject.toml index 015a03c7de..3b400ebeba 100644 --- a/integrations/tika/pyproject.toml +++ b/integrations/tika/pyproject.toml @@ -7,7 +7,7 @@ name = "tika-haystack" dynamic = ["version"] description = "Haystack integration for Apache Tika document conversion" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Tika", "Apache Tika", "Document Converter", "PDF", "DOCX"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/togetherai/pyproject.toml b/integrations/togetherai/pyproject.toml index d3f3414bd7..c39ae6b4b1 100644 --- a/integrations/togetherai/pyproject.toml +++ b/integrations/togetherai/pyproject.toml @@ -7,7 +7,7 @@ name = "togetherai-haystack" dynamic = ["version"] description = 'An integration between the Together AI framework and Haystack' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -16,7 +16,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/transformers/pyproject.toml b/integrations/transformers/pyproject.toml index b66c7b02ed..5b125a36bb 100644 --- a/integrations/transformers/pyproject.toml +++ b/integrations/transformers/pyproject.toml @@ -7,7 +7,7 @@ name = "transformers-haystack" dynamic = ["version"] description = "Haystack integration for transformers" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/transformers/src/haystack_integrations/components/generators/transformers/chat/chat_generator.py b/integrations/transformers/src/haystack_integrations/components/generators/transformers/chat/chat_generator.py index 3650079b50..2f794c6d5a 100644 --- a/integrations/transformers/src/haystack_integrations/components/generators/transformers/chat/chat_generator.py +++ b/integrations/transformers/src/haystack_integrations/components/generators/transformers/chat/chat_generator.py @@ -511,7 +511,7 @@ async def _manage_queue_processor( # Ensure the queue processor is cleaned up properly try: await asyncio.wait_for(queue_processor, timeout=0.1) - except asyncio.TimeoutError: + except TimeoutError: queue_processor.cancel() with suppress(asyncio.CancelledError): await queue_processor diff --git a/integrations/twelvelabs/pyproject.toml b/integrations/twelvelabs/pyproject.toml index 5ecd3e19da..9e4ba4be44 100644 --- a/integrations/twelvelabs/pyproject.toml +++ b/integrations/twelvelabs/pyproject.toml @@ -7,7 +7,7 @@ name = "twelvelabs-haystack" dynamic = ["version"] description = "Haystack integration for TwelveLabs" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/typesafe/pyproject.toml b/integrations/typesafe/pyproject.toml index 5a7f3f55c1..aa240c129c 100644 --- a/integrations/typesafe/pyproject.toml +++ b/integrations/typesafe/pyproject.toml @@ -7,7 +7,7 @@ name = "typesafe-haystack" dynamic = ["version"] description = "Haystack integration for TypeSafe System One decision models" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "TypeSafe", "Jev", "Ollaya", "classification", "decision model", "routing"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/unstructured/pyproject.toml b/integrations/unstructured/pyproject.toml index 6417cffdf1..24b34a3916 100644 --- a/integrations/unstructured/pyproject.toml +++ b/integrations/unstructured/pyproject.toml @@ -7,7 +7,7 @@ name = "unstructured-fileconverter-haystack" dynamic = ["version"] description = 'Haystack 2.x component to convert files into Documents using the Unstructured API' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/valkey/pyproject.toml b/integrations/valkey/pyproject.toml index 9a120a91e0..d6d516df05 100644 --- a/integrations/valkey/pyproject.toml +++ b/integrations/valkey/pyproject.toml @@ -7,7 +7,7 @@ name = "valkey-haystack" dynamic = ["version"] description = '' readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -85,7 +84,6 @@ disallow_incomplete_defs = true [tool.ruff] -target-version = "py310" line-length = 120 [tool.ruff.lint] diff --git a/integrations/vespa/pyproject.toml b/integrations/vespa/pyproject.toml index 086b637625..260f204dd4 100644 --- a/integrations/vespa/pyproject.toml +++ b/integrations/vespa/pyproject.toml @@ -7,7 +7,7 @@ name = "vespa-haystack" dynamic = ["version"] description = "Haystack integration for Vespa" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [ "haystack", @@ -24,7 +24,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/vllm/pyproject.toml b/integrations/vllm/pyproject.toml index 9943e48086..36e12d6b18 100644 --- a/integrations/vllm/pyproject.toml +++ b/integrations/vllm/pyproject.toml @@ -7,7 +7,7 @@ name = "vllm-haystack" dynamic = ["version"] description = "Haystack integration for vllm" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/vllm/tests/test_chat_generator.py b/integrations/vllm/tests/test_chat_generator.py index cbfa710b53..8a94dac74c 100644 --- a/integrations/vllm/tests/test_chat_generator.py +++ b/integrations/vllm/tests/test_chat_generator.py @@ -4,7 +4,7 @@ import json from collections.abc import Iterator -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Annotated from unittest.mock import AsyncMock, MagicMock, patch @@ -65,7 +65,7 @@ def _make_reasoning_chunk(text): delta=chat_completion_chunk.ChoiceDelta(content=None, role=None), ) ], - created=int(datetime.now(tz=timezone.utc).timestamp()), + created=int(datetime.now(tz=UTC).timestamp()), usage=None, ) chunk.choices[0].delta.reasoning = text @@ -85,7 +85,7 @@ def _make_content_chunk(text, finish_reason=None): delta=chat_completion_chunk.ChoiceDelta(content=text, role=None), ) ], - created=int(datetime.now(tz=timezone.utc).timestamp()), + created=int(datetime.now(tz=UTC).timestamp()), usage=None, ) @@ -104,7 +104,7 @@ def completion(): "message": {"content": "Paris is the capital of France.", "role": "assistant"}, } ], - created=int(datetime.now(tz=timezone.utc).timestamp()), + created=int(datetime.now(tz=UTC).timestamp()), usage={"prompt_tokens": 57, "completion_tokens": 40, "total_tokens": 97}, ) @@ -192,7 +192,7 @@ def test_preserves_tool_calls(self): ), ) ], - created=int(datetime.now(tz=timezone.utc).timestamp()), + created=int(datetime.now(tz=UTC).timestamp()), usage={"prompt_tokens": 10, "completion_tokens": 20, "total_tokens": 30}, ) @@ -224,7 +224,7 @@ def test_skips_malformed_tool_call_arguments(self): ), ) ], - created=int(datetime.now(tz=timezone.utc).timestamp()), + created=int(datetime.now(tz=UTC).timestamp()), usage={"prompt_tokens": 10, "completion_tokens": 20, "total_tokens": 30}, ) diff --git a/integrations/watsonx/pyproject.toml b/integrations/watsonx/pyproject.toml index 039c339e9d..bcfea3e6e7 100644 --- a/integrations/watsonx/pyproject.toml +++ b/integrations/watsonx/pyproject.toml @@ -84,7 +84,6 @@ module = [ ignore_missing_imports = true [tool.ruff] -target-version = "py310" line-length = 120 [tool.ruff.lint] diff --git a/integrations/watsonx/src/haystack_integrations/components/generators/watsonx/chat/chat_generator.py b/integrations/watsonx/src/haystack_integrations/components/generators/watsonx/chat/chat_generator.py index 590163b90c..3ece1c7120 100644 --- a/integrations/watsonx/src/haystack_integrations/components/generators/watsonx/chat/chat_generator.py +++ b/integrations/watsonx/src/haystack_integrations/components/generators/watsonx/chat/chat_generator.py @@ -5,7 +5,7 @@ import inspect import json from dataclasses import replace -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any, ClassVar, Literal, get_args from haystack import component, default_from_dict, default_to_dict, logging @@ -429,7 +429,7 @@ def _convert_chunk_to_streaming_chunk(self, chunk: dict[str, Any], component_inf "model_version": chunk.get("model_version"), "created": chunk.get("created"), "created_at": chunk.get("created_at"), - "received_at": datetime.now(timezone.utc).isoformat(), + "received_at": datetime.now(UTC).isoformat(), } if choice["delta"] and (choice_delta_tool_calls := choice["delta"].get("tool_calls")): diff --git a/integrations/weave/pyproject.toml b/integrations/weave/pyproject.toml index 72986b6bbe..d1acdb39b7 100644 --- a/integrations/weave/pyproject.toml +++ b/integrations/weave/pyproject.toml @@ -7,7 +7,7 @@ name = "weave-haystack" dynamic = ["version"] description = "An integration of Weights & Biases Weave tracer with Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/weaviate/pyproject.toml b/integrations/weaviate/pyproject.toml index 1b6acc9462..da387daab7 100644 --- a/integrations/weaviate/pyproject.toml +++ b/integrations/weaviate/pyproject.toml @@ -7,7 +7,7 @@ name = "weaviate-haystack" dynamic = ["version"] description = "An integration of Weaviate vector database with Haystack" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/whisper/pyproject.toml b/integrations/whisper/pyproject.toml index 74d938d9ea..896039d77e 100644 --- a/integrations/whisper/pyproject.toml +++ b/integrations/whisper/pyproject.toml @@ -7,7 +7,7 @@ name = "whisper-haystack" dynamic = ["version"] description = "Haystack integration for whisper" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "Whisper", "OpenAI", "transcription", "speech-to-text", "audio"] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/integrations/youcom/pyproject.toml b/integrations/youcom/pyproject.toml index f1a3d77112..9b11b8ca0e 100644 --- a/integrations/youcom/pyproject.toml +++ b/integrations/youcom/pyproject.toml @@ -7,7 +7,7 @@ name = "youcom-haystack" dynamic = ["version"] description = "Haystack integration for the You.com Search API" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = ["Haystack", "You.com", "Web Search", "AI Search"] authors = [ @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/scripts/utils/templates/pyproject.toml b/scripts/utils/templates/pyproject.toml index a4fec14d5b..65f2b99f88 100644 --- a/scripts/utils/templates/pyproject.toml +++ b/scripts/utils/templates/pyproject.toml @@ -7,7 +7,7 @@ name = "$pkg" dynamic = ["version"] description = "Haystack integration for $name" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = "Apache-2.0" keywords = [] authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }] @@ -15,7 +15,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13",