From b69d261280a54eee9849751ddcd81541e651ca98 Mon Sep 17 00:00:00 2001 From: Vladimir Blagojevic Date: Thu, 5 Jun 2025 11:28:18 +0200 Subject: [PATCH] chore: Make docstring-parser core dep (#9477) * Make docstring-parser core dep * Add reno note --- haystack/tools/parameters_schema_utils.py | 7 +------ pyproject.toml | 4 +--- .../notes/doc-parser-core-dependency-a1b2c3d4e5f6g7h8.yaml | 4 ++++ 3 files changed, 6 insertions(+), 9 deletions(-) create mode 100644 releasenotes/notes/doc-parser-core-dependency-a1b2c3d4e5f6g7h8.yaml diff --git a/haystack/tools/parameters_schema_utils.py b/haystack/tools/parameters_schema_utils.py index 6758d1ce6..06ed8eaeb 100644 --- a/haystack/tools/parameters_schema_utils.py +++ b/haystack/tools/parameters_schema_utils.py @@ -7,15 +7,11 @@ from dataclasses import MISSING, fields, is_dataclass from inspect import getdoc from typing import Any, Callable, Dict, List, Sequence, Tuple, Union, get_args, get_origin +from docstring_parser import parse from pydantic import BaseModel, Field, create_model from haystack import logging from haystack.dataclasses import ChatMessage -from haystack.lazy_imports import LazyImport - -with LazyImport(message="Run 'pip install docstring-parser'") as docstring_parser_import: - from docstring_parser import parse - logger = logging.getLogger(__name__) @@ -33,7 +29,6 @@ def _get_param_descriptions(method: Callable) -> Tuple[str, Dict[str, str]]: if not docstring: return "", {} - docstring_parser_import.check() parsed_doc = parse(docstring) param_descriptions = {} for param in parsed_doc.params: diff --git a/pyproject.toml b/pyproject.toml index 75874e5f4..73cd0d2ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -57,6 +57,7 @@ dependencies = [ "numpy", "python-dateutil", "jsonschema", # JsonSchemaValidator, Tool + "docstring-parser", # ComponentTool "haystack-experimental", ] @@ -128,9 +129,6 @@ dependencies = [ # Structured logging "structlog", - # ComponentTool - "docstring-parser", - # needed in link content fetcher tests "httpx[http2]", diff --git a/releasenotes/notes/doc-parser-core-dependency-a1b2c3d4e5f6g7h8.yaml b/releasenotes/notes/doc-parser-core-dependency-a1b2c3d4e5f6g7h8.yaml new file mode 100644 index 000000000..ca709b9fc --- /dev/null +++ b/releasenotes/notes/doc-parser-core-dependency-a1b2c3d4e5f6g7h8.yaml @@ -0,0 +1,4 @@ +--- +enhancements: + - | + Made doc-parser a core dependency since ComponentTool that uses it is one of the core Tool components.