unique_toolkit 1.11.2__tar.gz → 1.11.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/CHANGELOG.md +4 -0
  2. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/PKG-INFO +5 -1
  3. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/pyproject.toml +1 -1
  4. unique_toolkit-1.11.2/unique_toolkit/smart_rules/compile.py → unique_toolkit-1.11.3/unique_toolkit/content/smart_rules.py +29 -29
  5. unique_toolkit-1.11.3/unique_toolkit/smart_rules/compile.py +56 -0
  6. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/LICENSE +0 -0
  7. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/README.md +0 -0
  8. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/__init__.py +0 -0
  9. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/_base_service.py +0 -0
  10. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/_time_utils.py +0 -0
  11. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  12. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  13. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  14. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  15. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  16. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  17. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  18. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/default_language_model.py +0 -0
  19. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/endpoint_builder.py +0 -0
  20. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  21. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/exception.py +0 -0
  22. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  23. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  24. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  25. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/string_utilities.py +0 -0
  26. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  27. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/token/token_counting.py +0 -0
  28. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/__init__.py +0 -0
  29. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/files.py +0 -0
  30. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  31. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  32. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  33. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/validate_required_values.py +0 -0
  34. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/_common/validators.py +0 -0
  35. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/__init__.py +0 -0
  36. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  37. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/config.py +0 -0
  38. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
  39. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  40. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  41. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  42. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  43. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  44. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  45. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
  46. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  47. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  48. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  49. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  50. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  51. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  52. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  53. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  54. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  55. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  56. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  57. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  58. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  59. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  60. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/__init__.py +0 -0
  61. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  62. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  63. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  64. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  65. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  66. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  67. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  68. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  69. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  70. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/_display.py +0 -0
  71. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py +0 -0
  72. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  73. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -0
  74. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py +0 -0
  75. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  76. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py +0 -0
  77. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  78. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  79. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  80. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  81. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  82. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  83. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  84. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/config.py +0 -0
  85. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/factory.py +0 -0
  86. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  87. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  88. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  89. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  90. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/schemas.py +0 -0
  91. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  92. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  93. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/tool.py +0 -0
  94. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  95. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  96. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  97. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
  98. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
  99. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  100. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  101. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  102. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  103. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/__init__.py +0 -0
  104. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/dev_util.py +0 -0
  105. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/init_logging.py +0 -0
  106. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/init_sdk.py +0 -0
  107. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/performance/async_tasks.py +0 -0
  108. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  109. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/schemas.py +0 -0
  110. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/unique_settings.py +0 -0
  111. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/app/verification.py +0 -0
  112. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/chat/__init__.py +0 -0
  113. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/chat/constants.py +0 -0
  114. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/chat/deprecated/service.py +0 -0
  115. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/chat/functions.py +0 -0
  116. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/chat/schemas.py +0 -0
  117. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/chat/service.py +0 -0
  118. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/chat/state.py +0 -0
  119. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/chat/utils.py +0 -0
  120. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/content/__init__.py +0 -0
  121. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/content/constants.py +0 -0
  122. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/content/functions.py +0 -0
  123. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/content/schemas.py +0 -0
  124. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/content/service.py +0 -0
  125. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/content/utils.py +0 -0
  126. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/embedding/__init__.py +0 -0
  127. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/embedding/constants.py +0 -0
  128. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/embedding/functions.py +0 -0
  129. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/embedding/schemas.py +0 -0
  130. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/embedding/service.py +0 -0
  131. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/embedding/utils.py +0 -0
  132. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/__init__.py +0 -0
  133. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  134. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  135. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  136. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  137. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  138. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/utils.py +0 -0
  139. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/knowledge_base.py +0 -0
  140. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/__init__.py +0 -0
  141. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/builder.py +0 -0
  142. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/constants.py +0 -0
  143. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/functions.py +0 -0
  144. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/infos.py +0 -0
  145. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/prompt.py +0 -0
  146. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/reference.py +0 -0
  147. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/schemas.py +0 -0
  148. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/service.py +0 -0
  149. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/language_model/utils.py +0 -0
  150. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/protocols/support.py +0 -0
  151. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/__init__.py +0 -0
  152. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/constants.py +0 -0
  153. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/functions.py +0 -0
  154. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/schemas.py +0 -0
  155. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/service.py +0 -0
  156. {unique_toolkit-1.11.2 → unique_toolkit-1.11.3}/unique_toolkit/smart_rules/__init__.py +0 -0
@@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+ ## [1.11.3] - 2026-10-06
8
+ - Move smart rules to content
9
+ - Add to documentation
7
10
 
8
11
  ## [1.11.2] - 2025-10-07
9
12
  - Fix for empty metadata filter at info retrieval
@@ -22,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
25
  ## [1.9.1] - 2025-10-06
23
26
  - Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
24
27
 
28
+
25
29
  ## [1.9.0] - 2026-10-04
26
30
  - Define the RequestContext and add aihttp/httpx requestors
27
31
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.11.2
3
+ Version: 1.11.3
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -117,6 +117,9 @@ All notable changes to this project will be documented in this file.
117
117
 
118
118
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
119
119
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
120
+ ## [1.11.3] - 2026-10-06
121
+ - Move smart rules to content
122
+ - Add to documentation
120
123
 
121
124
  ## [1.11.2] - 2025-10-07
122
125
  - Fix for empty metadata filter at info retrieval
@@ -135,6 +138,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
135
138
  ## [1.9.1] - 2025-10-06
136
139
  - Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
137
140
 
141
+
138
142
  ## [1.9.0] - 2026-10-04
139
143
  - Define the RequestContext and add aihttp/httpx requestors
140
144
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.11.2"
3
+ version = "1.11.3"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -1,7 +1,7 @@
1
1
  import re
2
2
  from datetime import datetime, timedelta, timezone
3
3
  from enum import Enum
4
- from typing import Any, Dict, List, Self, Union
4
+ from typing import Any, Dict, List, Mapping, Self, Union
5
5
 
6
6
  from pydantic import AliasChoices, BaseModel, Field
7
7
  from pydantic.config import ConfigDict
@@ -30,8 +30,8 @@ class BaseStatement(BaseModel):
30
30
 
31
31
  def with_variables(
32
32
  self,
33
- user_metadata: Dict[str, Union[str, int, bool]],
34
- tool_parameters: Dict[str, Union[str, int, bool]],
33
+ user_metadata: Mapping[str, Union[str, int, bool]],
34
+ tool_parameters: Mapping[str, Union[str, int, bool]],
35
35
  ) -> Self:
36
36
  return self._fill_in_variables(user_metadata, tool_parameters)
37
37
 
@@ -49,8 +49,8 @@ class BaseStatement(BaseModel):
49
49
 
50
50
  def _fill_in_variables(
51
51
  self,
52
- user_metadata: Dict[str, Union[str, int, bool]],
53
- tool_parameters: Dict[str, Union[str, int, bool]],
52
+ user_metadata: Mapping[str, Union[str, int, bool]],
53
+ tool_parameters: Mapping[str, Union[str, int, bool]],
54
54
  ) -> Self:
55
55
  return self.model_copy()
56
56
 
@@ -62,8 +62,8 @@ class Statement(BaseStatement):
62
62
 
63
63
  def _fill_in_variables(
64
64
  self,
65
- user_metadata: Dict[str, Union[str, int, bool]],
66
- tool_parameters: Dict[str, Union[str, int, bool]],
65
+ user_metadata: Mapping[str, Union[str, int, bool]],
66
+ tool_parameters: Mapping[str, Union[str, int, bool]],
67
67
  ) -> Self:
68
68
  new_stmt = self.model_copy()
69
69
  new_stmt.value = eval_operator(self, user_metadata, tool_parameters)
@@ -72,13 +72,13 @@ class Statement(BaseStatement):
72
72
 
73
73
  class AndStatement(BaseStatement):
74
74
  and_list: List[Union["Statement", "AndStatement", "OrStatement"]] = Field(
75
- alias="and", validation_alias=AliasChoices("and", "and_list")
75
+ validation_alias=AliasChoices("and", "and_list"), serialization_alias="and"
76
76
  )
77
77
 
78
78
  def _fill_in_variables(
79
79
  self,
80
- user_metadata: Dict[str, Union[str, int, bool]],
81
- tool_parameters: Dict[str, Union[str, int, bool]],
80
+ user_metadata: Mapping[str, Union[str, int, bool]],
81
+ tool_parameters: Mapping[str, Union[str, int, bool]],
82
82
  ) -> Self:
83
83
  new_stmt = self.model_copy()
84
84
  new_stmt.and_list = [
@@ -90,13 +90,13 @@ class AndStatement(BaseStatement):
90
90
 
91
91
  class OrStatement(BaseStatement):
92
92
  or_list: List[Union["Statement", "AndStatement", "OrStatement"]] = Field(
93
- alias="or", validation_alias=AliasChoices("or", "or_list")
93
+ validation_alias=AliasChoices("or", "or_list"), serialization_alias="or"
94
94
  )
95
95
 
96
96
  def _fill_in_variables(
97
97
  self,
98
- user_metadata: Dict[str, Union[str, int, bool]],
99
- tool_parameters: Dict[str, Union[str, int, bool]],
98
+ user_metadata: Mapping[str, Union[str, int, bool]],
99
+ tool_parameters: Mapping[str, Union[str, int, bool]],
100
100
  ) -> Self:
101
101
  new_stmt = self.model_copy()
102
102
  new_stmt.or_list = [
@@ -121,8 +121,8 @@ def is_array_of_strings(value: Any) -> bool:
121
121
 
122
122
  def eval_operator(
123
123
  query: Statement,
124
- user_metadata: Dict[str, Union[str, int, bool]],
125
- tool_parameters: Dict[str, Union[str, int, bool]],
124
+ user_metadata: Mapping[str, Union[str, int, bool]],
125
+ tool_parameters: Mapping[str, Union[str, int, bool]],
126
126
  ) -> Any:
127
127
  if query.operator in [
128
128
  Operator.EQUALS,
@@ -149,8 +149,8 @@ def eval_operator(
149
149
 
150
150
  def eval_nested_operator(
151
151
  value: Any,
152
- user_metadata: Dict[str, Union[str, int, bool]],
153
- tool_parameters: Dict[str, Union[str, int, bool]],
152
+ user_metadata: Mapping[str, Union[str, int, bool]],
153
+ tool_parameters: Mapping[str, Union[str, int, bool]],
154
154
  ) -> Union[AndStatement, OrStatement]:
155
155
  if not isinstance(value, (AndStatement, OrStatement)):
156
156
  raise ValueError("Nested operator must be an AndStatement or OrStatement")
@@ -159,16 +159,16 @@ def eval_nested_operator(
159
159
 
160
160
  def binary_operator(
161
161
  value: Any,
162
- user_metadata: Dict[str, Union[str, int, bool]],
163
- tool_parameters: Dict[str, Union[str, int, bool]],
162
+ user_metadata: Mapping[str, Union[str, int, bool]],
163
+ tool_parameters: Mapping[str, Union[str, int, bool]],
164
164
  ) -> Any:
165
165
  return replace_variables(value, user_metadata, tool_parameters)
166
166
 
167
167
 
168
168
  def array_operator(
169
169
  value: Any,
170
- user_metadata: Dict[str, Union[str, int, bool]],
171
- tool_parameters: Dict[str, Union[str, int, bool]],
170
+ user_metadata: Mapping[str, Union[str, int, bool]],
171
+ tool_parameters: Mapping[str, Union[str, int, bool]],
172
172
  ) -> Any:
173
173
  if is_array_of_strings(value):
174
174
  return [
@@ -179,16 +179,16 @@ def array_operator(
179
179
 
180
180
  def null_operator(
181
181
  value: Any,
182
- user_metadata: Dict[str, Union[str, int, bool]],
183
- tool_parameters: Dict[str, Union[str, int, bool]],
182
+ user_metadata: Mapping[str, Union[str, int, bool]],
183
+ tool_parameters: Mapping[str, Union[str, int, bool]],
184
184
  ) -> Any:
185
185
  return value # do nothing for now. No variables to replace
186
186
 
187
187
 
188
188
  def empty_operator(
189
189
  operator: Operator,
190
- user_metadata: Dict[str, Union[str, int, bool]],
191
- tool_parameters: Dict[str, Union[str, int, bool]],
190
+ user_metadata: Mapping[str, Union[str, int, bool]],
191
+ tool_parameters: Mapping[str, Union[str, int, bool]],
192
192
  ) -> Any:
193
193
  """Handle IS_EMPTY and IS_NOT_EMPTY operators."""
194
194
  if operator == Operator.IS_EMPTY:
@@ -225,8 +225,8 @@ def calculate_later_date(input_str: str) -> str:
225
225
 
226
226
  def replace_variables(
227
227
  value: Any,
228
- user_metadata: Dict[str, Union[str, int, bool]],
229
- tool_parameters: Dict[str, Union[str, int, bool]],
228
+ user_metadata: Mapping[str, Union[str, int, bool]],
229
+ tool_parameters: Mapping[str, Union[str, int, bool]],
230
230
  ) -> Any:
231
231
  if isinstance(value, str):
232
232
  if "||" in value:
@@ -274,8 +274,8 @@ def replace_user_metadata_patterns(
274
274
 
275
275
  def get_fallback_values(
276
276
  value: str,
277
- user_metadata: Dict[str, Union[str, int, bool]],
278
- tool_parameters: Dict[str, Union[str, int, bool]],
277
+ user_metadata: Mapping[str, Union[str, int, bool]],
278
+ tool_parameters: Mapping[str, Union[str, int, bool]],
279
279
  ) -> Any:
280
280
  values = value.split("||")
281
281
  for val in values:
@@ -0,0 +1,56 @@
1
+ import warnings
2
+
3
+ from unique_toolkit.content.smart_rules import (
4
+ AndStatement,
5
+ BaseStatement,
6
+ Operator,
7
+ OrStatement,
8
+ Statement,
9
+ UniqueQL,
10
+ array_operator,
11
+ binary_operator,
12
+ calculate_current_date,
13
+ calculate_earlier_date,
14
+ calculate_later_date,
15
+ empty_operator,
16
+ eval_nested_operator,
17
+ eval_operator,
18
+ get_fallback_values,
19
+ is_array_of_strings,
20
+ null_operator,
21
+ parse_uniqueql,
22
+ replace_tool_parameters_patterns,
23
+ replace_user_metadata_patterns,
24
+ replace_variables,
25
+ )
26
+
27
+ warnings.warn(
28
+ "unique_toolkit.smart_rules.compile is deprecated. "
29
+ "Please use unique_toolkit.content.smart_rules instead.",
30
+ DeprecationWarning,
31
+ stacklevel=2,
32
+ )
33
+
34
+ __all__ = [
35
+ "AndStatement",
36
+ "BaseStatement",
37
+ "Operator",
38
+ "OrStatement",
39
+ "Statement",
40
+ "UniqueQL",
41
+ "array_operator",
42
+ "binary_operator",
43
+ "calculate_current_date",
44
+ "calculate_earlier_date",
45
+ "calculate_later_date",
46
+ "empty_operator",
47
+ "eval_nested_operator",
48
+ "eval_operator",
49
+ "get_fallback_values",
50
+ "is_array_of_strings",
51
+ "null_operator",
52
+ "parse_uniqueql",
53
+ "replace_tool_parameters_patterns",
54
+ "replace_user_metadata_patterns",
55
+ "replace_variables",
56
+ ]
File without changes