From 877bc0f06b4af2ea462aedc0e4d880fcd782bf1f Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sun, 21 Jun 2026 12:24:44 -0400 Subject: [PATCH] feat(type_aliases): add 10 TypeAliases + FileItemsDiff NamedTuple --- src/type_aliases.py | 24 ++++++++++++++++++++++++ tests/test_type_aliases.py | 29 ++++++++++++++++------------- 2 files changed, 40 insertions(+), 13 deletions(-) create mode 100644 src/type_aliases.py diff --git a/src/type_aliases.py b/src/type_aliases.py new file mode 100644 index 00000000..181a8232 --- /dev/null +++ b/src/type_aliases.py @@ -0,0 +1,24 @@ +from __future__ import annotations +from typing import Any, Callable, NamedTuple, TypeAlias + + +Metadata: TypeAlias = dict[str, Any] + +CommsLogEntry: TypeAlias = Metadata +CommsLog: TypeAlias = list[CommsLogEntry] + +HistoryMessage: TypeAlias = Metadata +History: TypeAlias = list[HistoryMessage] + +FileItem: TypeAlias = Metadata +FileItems: TypeAlias = list[FileItem] + +ToolDefinition: TypeAlias = Metadata +ToolCall: TypeAlias = Metadata + +CommsLogCallback: TypeAlias = Callable[[CommsLogEntry], None] + + +class FileItemsDiff(NamedTuple): + refreshed: FileItems + changed: FileItems \ No newline at end of file diff --git a/tests/test_type_aliases.py b/tests/test_type_aliases.py index 67188949..2890100b 100644 --- a/tests/test_type_aliases.py +++ b/tests/test_type_aliases.py @@ -1,38 +1,41 @@ from __future__ import annotations -from typing import Any, Callable, get_type_hints +from typing import Any, Callable, NamedTuple, TypeAlias, get_type_hints import pytest from src import type_aliases from src import result_types def test_metadata_alias_resolves_to_dict() -> None: - hints = get_type_hints(type_aliases) - assert hints["Metadata"] == dict[str, Any] + assert type_aliases.Metadata == dict[str, Any] def test_comms_log_entry_alias_resolves_to_metadata() -> None: - hints = get_type_hints(type_aliases) - assert hints["CommsLogEntry"] == dict[str, Any] + assert type_aliases.CommsLogEntry is type_aliases.Metadata + assert type_aliases.CommsLogEntry == dict[str, Any] def test_comms_log_alias_resolves_to_list_of_comms_log_entry() -> None: - hints = get_type_hints(type_aliases) - assert hints["CommsLog"] == list[dict[str, Any]] + assert type_aliases.CommsLog == list[dict[str, Any]] def test_history_alias_resolves_to_list_of_history_message() -> None: - hints = get_type_hints(type_aliases) - assert hints["History"] == list[dict[str, Any]] + assert type_aliases.History == list[dict[str, Any]] def test_file_items_alias_resolves_to_list_of_file_item() -> None: - hints = get_type_hints(type_aliases) - assert hints["FileItems"] == list[dict[str, Any]] + assert type_aliases.FileItems == list[dict[str, Any]] + + +def test_tool_definition_alias_resolves_to_metadata() -> None: + assert type_aliases.ToolDefinition == dict[str, Any] + + +def test_tool_call_alias_resolves_to_metadata() -> None: + assert type_aliases.ToolCall == dict[str, Any] def test_comms_log_callback_alias_resolves_to_callable() -> None: - hints = get_type_hints(type_aliases) - assert hints["CommsLogCallback"] == Callable[[dict[str, Any]], None] + assert type_aliases.CommsLogCallback == Callable[[dict[str, Any]], None] def test_file_items_diff_named_tuple_has_two_fields() -> None: