From 9f8529eab2d501ac0f7af245d84f75dae34cc55d Mon Sep 17 00:00:00 2001 From: Lorenze Jay Date: Fri, 3 Jan 2025 13:43:50 -0800 Subject: [PATCH 1/2] add optional dependencies for all deps that we have --- .../tools/multion_tool/multion_tool.py | 2 +- .../pdf_text_writing_tool.py | 37 +++++++++++++++---- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/crewai_tools/tools/multion_tool/multion_tool.py b/src/crewai_tools/tools/multion_tool/multion_tool.py index a991074da..1ae0f96d3 100644 --- a/src/crewai_tools/tools/multion_tool/multion_tool.py +++ b/src/crewai_tools/tools/multion_tool/multion_tool.py @@ -26,7 +26,7 @@ class MultiOnTool(BaseTool): ): super().__init__(**kwargs) try: - from multion.client import MultiOn # type: ignore + from multion.client import MultiOn except ImportError: raise ImportError( "`multion` package not found, please run `pip install multion`" diff --git a/src/crewai_tools/tools/pdf_text_writing_tool/pdf_text_writing_tool.py b/src/crewai_tools/tools/pdf_text_writing_tool/pdf_text_writing_tool.py index c3a686b14..851593167 100644 --- a/src/crewai_tools/tools/pdf_text_writing_tool/pdf_text_writing_tool.py +++ b/src/crewai_tools/tools/pdf_text_writing_tool/pdf_text_writing_tool.py @@ -1,29 +1,50 @@ -from typing import Any, Optional, Type +from typing import Optional, Type from pydantic import BaseModel, Field from pypdf import PdfReader, PdfWriter, PageObject, ContentStream, NameObject, Font from pathlib import Path +from crewai_tools.tools.rag.rag_tool import RagTool class PDFTextWritingToolSchema(BaseModel): """Input schema for PDFTextWritingTool.""" + pdf_path: str = Field(..., description="Path to the PDF file to modify") text: str = Field(..., description="Text to add to the PDF") - position: tuple = Field(..., description="Tuple of (x, y) coordinates for text placement") + position: tuple = Field( + ..., description="Tuple of (x, y) coordinates for text placement" + ) font_size: int = Field(default=12, description="Font size of the text") - font_color: str = Field(default="0 0 0 rg", description="RGB color code for the text") - font_name: Optional[str] = Field(default="F1", description="Font name for standard fonts") - font_file: Optional[str] = Field(None, description="Path to a .ttf font file for custom font usage") + font_color: str = Field( + default="0 0 0 rg", description="RGB color code for the text" + ) + font_name: Optional[str] = Field( + default="F1", description="Font name for standard fonts" + ) + font_file: Optional[str] = Field( + None, description="Path to a .ttf font file for custom font usage" + ) page_number: int = Field(default=0, description="Page number to add text to") class PDFTextWritingTool(RagTool): """A tool to add text to specific positions in a PDF, with custom font support.""" + name: str = "PDF Text Writing Tool" description: str = "A tool that can write text to a specific position in a PDF document, with optional custom font embedding." args_schema: Type[BaseModel] = PDFTextWritingToolSchema - def run(self, pdf_path: str, text: str, position: tuple, font_size: int, font_color: str, - font_name: str = "F1", font_file: Optional[str] = None, page_number: int = 0, **kwargs) -> str: + def run( + self, + pdf_path: str, + text: str, + position: tuple, + font_size: int, + font_color: str, + font_name: str = "F1", + font_file: Optional[str] = None, + page_number: int = 0, + **kwargs, + ) -> str: reader = PdfReader(pdf_path) writer = PdfWriter() @@ -63,4 +84,4 @@ class PDFTextWritingTool(RagTool): with open(font_file, "rb") as file: font = Font.true_type(file.read()) font_ref = writer.add_object(font) - return font_ref \ No newline at end of file + return font_ref From dab8f648cbcd426b91c1ab4eb5b3826924423e1d Mon Sep 17 00:00:00 2001 From: Lorenze Jay Date: Fri, 3 Jan 2025 13:48:21 -0800 Subject: [PATCH 2/2] leave ignore --- src/crewai_tools/tools/multion_tool/multion_tool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crewai_tools/tools/multion_tool/multion_tool.py b/src/crewai_tools/tools/multion_tool/multion_tool.py index 1ae0f96d3..a991074da 100644 --- a/src/crewai_tools/tools/multion_tool/multion_tool.py +++ b/src/crewai_tools/tools/multion_tool/multion_tool.py @@ -26,7 +26,7 @@ class MultiOnTool(BaseTool): ): super().__init__(**kwargs) try: - from multion.client import MultiOn + from multion.client import MultiOn # type: ignore except ImportError: raise ImportError( "`multion` package not found, please run `pip install multion`"