Skip to content

Commit

Permalink
Move PIL to optional import block
Browse files Browse the repository at this point in the history
  • Loading branch information
kumaranvpl committed Feb 25, 2025
1 parent b0bf88a commit 75b1dc7
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
6 changes: 5 additions & 1 deletion autogen/messages/agent_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,17 @@
from typing import TYPE_CHECKING, Any, Callable, Literal, Optional, Union
from uuid import UUID

from PIL.Image import Image
from pydantic import BaseModel, field_validator
from termcolor import colored

from ..code_utils import content_str
from ..import_utils import optional_import_block, require_optional_import
from ..oai.client import OpenAIWrapper
from .base_message import BaseMessage, wrap_message

with optional_import_block():
from PIL.Image import Image

if TYPE_CHECKING:
from ..agentchat.agent import Agent
from ..coding.base import CodeBlock
Expand Down Expand Up @@ -188,6 +191,7 @@ def print(self, f: Optional[Callable[..., Any]] = None) -> None:
f("\n", "-" * 80, flush=True, sep="")


@require_optional_import("PIL", "unknown", except_for="print")
@wrap_message
class TextMessage(BasePrintReceivedMessage):
content: Optional[Union[str, int, float, bool, list[dict[str, Union[str, dict[str, Any]]]]]] = None # type: ignore [assignment]
Expand Down
6 changes: 5 additions & 1 deletion test/messages/test_agent_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
from unittest.mock import MagicMock, _Call, call
from uuid import UUID

import PIL
import pytest
import termcolor.termcolor

from autogen.agentchat.conversable_agent import ConversableAgent
from autogen.coding.base import CodeBlock
from autogen.import_utils import optional_import_block, skip_on_missing_imports
from autogen.messages.agent_messages import (
ClearAgentsHistoryMessage,
ClearConversableAgentHistoryMessage,
Expand Down Expand Up @@ -42,6 +42,9 @@
create_received_message_model,
)

with optional_import_block():
import PIL


@pytest.fixture(autouse=True)
def enable_color_in_tests(monkeypatch: pytest.MonkeyPatch) -> None:
Expand Down Expand Up @@ -415,6 +418,7 @@ def test_print_context_lambda_message(

assert mock.call_args_list == expected_call_args_list

@skip_on_missing_imports("PIL", "unknown")
def test_serialization(self) -> None:
image = PIL.Image.new(mode="RGB", size=(200, 200))
content = [
Expand Down

0 comments on commit 75b1dc7

Please sign in to comment.