unique_toolkit 0.7.36__tar.gz → 0.7.37__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 (74) hide show
  1. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/CHANGELOG.md +3 -3
  2. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/PKG-INFO +5 -4
  3. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/pyproject.toml +2 -1
  4. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/sse_client.py +0 -2
  5. unique_toolkit-0.7.37/unique_toolkit/app/unique_settings.py +61 -0
  6. unique_toolkit-0.7.36/unique_toolkit/app/unique_settings.py +0 -28
  7. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/LICENSE +0 -0
  8. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/README.md +0 -0
  9. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/_common/_base_service.py +0 -0
  11. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/_common/_time_utils.py +0 -0
  12. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/_common/exception.py +0 -0
  13. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/_common/validate_required_values.py +0 -0
  14. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/_common/validators.py +0 -0
  15. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/__init__.py +0 -0
  16. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/event_util.py +0 -0
  17. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/init_logging.py +0 -0
  18. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/init_sdk.py +0 -0
  19. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/performance/async_tasks.py +0 -0
  20. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  21. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/schemas.py +0 -0
  22. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/app/verification.py +0 -0
  23. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/chat/__init__.py +0 -0
  24. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/chat/constants.py +0 -0
  25. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/chat/functions.py +0 -0
  26. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/chat/schemas.py +0 -0
  27. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/chat/service.py +0 -0
  28. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/chat/state.py +0 -0
  29. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/chat/utils.py +0 -0
  30. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/content/__init__.py +0 -0
  31. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/content/constants.py +0 -0
  32. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/content/functions.py +0 -0
  33. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/content/schemas.py +0 -0
  34. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/content/service.py +0 -0
  35. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/content/utils.py +0 -0
  36. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/embedding/__init__.py +0 -0
  37. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/embedding/constants.py +0 -0
  38. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/embedding/functions.py +0 -0
  39. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/embedding/schemas.py +0 -0
  40. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/embedding/service.py +0 -0
  41. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/embedding/utils.py +0 -0
  42. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/__init__.py +0 -0
  43. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/config.py +0 -0
  44. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/constants.py +0 -0
  45. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/context_relevancy/constants.py +0 -0
  46. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/context_relevancy/prompts.py +0 -0
  47. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/context_relevancy/service.py +0 -0
  48. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/context_relevancy/utils.py +0 -0
  49. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/exception.py +0 -0
  50. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/hallucination/constants.py +0 -0
  51. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/hallucination/prompts.py +0 -0
  52. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/hallucination/service.py +0 -0
  53. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/hallucination/utils.py +0 -0
  54. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/output_parser.py +0 -0
  55. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/evaluators/schemas.py +0 -0
  56. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  57. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/__init__.py +0 -0
  58. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/builder.py +0 -0
  59. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/constants.py +0 -0
  60. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/functions.py +0 -0
  61. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/infos.py +0 -0
  62. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/prompt.py +0 -0
  63. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/reference.py +0 -0
  64. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/schemas.py +0 -0
  65. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/service.py +0 -0
  66. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/language_model/utils.py +0 -0
  67. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/protocols/support.py +0 -0
  68. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/short_term_memory/__init__.py +0 -0
  69. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/short_term_memory/constants.py +0 -0
  70. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/short_term_memory/functions.py +0 -0
  71. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/short_term_memory/schemas.py +0 -0
  72. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/short_term_memory/service.py +0 -0
  73. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/smart_rules/__init__.py +0 -0
  74. {unique_toolkit-0.7.36 → unique_toolkit-0.7.37}/unique_toolkit/smart_rules/compile.py +0 -0
@@ -5,9 +5,9 @@ All notable changes to this project will be documented in this file.
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
7
 
8
- ## [0.7.36] - 2025-07-24
9
- - Add utilities for SSE client and secrets
10
- - Helper function to convert unique history to langchain history
8
+ ## [0.7.36] - 2025-07-25
9
+ - Fix issues with settings
10
+ - Add testing to unique settings
11
11
 
12
12
  ## [0.7.35] - 2025-07-23
13
13
  - Bump version of SDK to have access to the latest features and fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 0.7.36
3
+ Version: 0.7.37
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Martin Fadler
@@ -16,6 +16,7 @@ Requires-Dist: pydantic-settings (>=2.10.1,<3.0.0)
16
16
  Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
17
17
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
18
18
  Requires-Dist: regex (>=2024.5.15,<2025.0.0)
19
+ Requires-Dist: sseclient (>=0.0.27,<0.0.28)
19
20
  Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
20
21
  Requires-Dist: typing-extensions (>=4.9.0,<5.0.0)
21
22
  Requires-Dist: unique-sdk (>=0.9.40,<0.10.0)
@@ -112,9 +113,9 @@ All notable changes to this project will be documented in this file.
112
113
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
113
114
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
114
115
 
115
- ## [0.7.36] - 2025-07-24
116
- - Add utilities for SSE client and secrets
117
- - Helper function to convert unique history to langchain history
116
+ ## [0.7.36] - 2025-07-25
117
+ - Fix issues with settings
118
+ - Add testing to unique settings
118
119
 
119
120
  ## [0.7.35] - 2025-07-23
120
121
  - Bump version of SDK to have access to the latest features and fixes
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "0.7.36"
3
+ version = "0.7.37"
4
4
  description = ""
5
5
  authors = [
6
6
  "Martin Fadler <martin.fadler@unique.ch>",
@@ -22,6 +22,7 @@ regex = "^2024.5.15"
22
22
  tiktoken = "^0.7.0"
23
23
  unique-sdk = "^0.9.40"
24
24
  pydantic-settings = "^2.10.1"
25
+ sseclient = "^0.0.27"
25
26
 
26
27
  [tool.poetry.group.dev.dependencies]
27
28
  ruff = "0.11.7"
@@ -17,6 +17,4 @@ def get_sse_client(
17
17
  "x-app-id": unique_settings.app.id,
18
18
  "x-company-id": unique_settings.auth.company_id,
19
19
  }
20
- LOGGER.info(f"SSEheaders: {headers}")
21
- LOGGER.info(f"SSE Url: {url}")
22
20
  return SSEClient(url=url, headers=headers)
@@ -0,0 +1,61 @@
1
+ from pathlib import Path
2
+
3
+ from pydantic import SecretStr
4
+ from pydantic_settings import BaseSettings, SettingsConfigDict
5
+
6
+
7
+ class UniqueApp(BaseSettings):
8
+ id: SecretStr
9
+ key: SecretStr
10
+ base_url: str
11
+ endpoint: str
12
+ endpoint_secret: SecretStr
13
+
14
+ model_config = SettingsConfigDict(
15
+ env_prefix="unique_app_",
16
+ env_file_encoding="utf-8",
17
+ case_sensitive=False,
18
+ extra="ignore",
19
+ )
20
+
21
+
22
+ class UniqueAuth(BaseSettings):
23
+ company_id: SecretStr
24
+ user_id: SecretStr
25
+
26
+ model_config = SettingsConfigDict(
27
+ env_prefix="unique_auth_",
28
+ env_file_encoding="utf-8",
29
+ case_sensitive=False,
30
+ extra="ignore",
31
+ )
32
+
33
+
34
+ class UniqueSettings:
35
+ def __init__(self, auth: UniqueAuth, app: UniqueApp):
36
+ self.app = app
37
+ self.auth = auth
38
+
39
+ @classmethod
40
+ def from_env(cls, env_file: Path | None = None) -> "UniqueSettings":
41
+ """Initialize settings from environment variables and/or env file.
42
+
43
+ Args:
44
+ env_file: Optional path to environment file. If provided, will load variables from this file.
45
+
46
+ Returns:
47
+ UniqueSettings instance with values loaded from environment/env file.
48
+
49
+ Raises:
50
+ FileNotFoundError: If env_file is provided but does not exist.
51
+ ValidationError: If required environment variables are missing.
52
+ """
53
+ if env_file and not env_file.exists():
54
+ raise FileNotFoundError(f"Environment file not found: {env_file}")
55
+
56
+ # Initialize settings with environment file if provided
57
+ env_file_str = str(env_file) if env_file else None
58
+ auth = UniqueAuth(_env_file=env_file_str, _env_file_encoding="utf-8")
59
+ app = UniqueApp(_env_file=env_file_str, _env_file_encoding="utf-8")
60
+
61
+ return cls(auth=auth, app=app)
@@ -1,28 +0,0 @@
1
- from pydantic_settings import BaseSettings, SettingsConfigDict
2
-
3
- config_dict = SettingsConfigDict(
4
- env_file_encoding="utf-8",
5
- extra="ignore",
6
- )
7
-
8
-
9
- class UniqueApp(BaseSettings):
10
- id: str
11
- key: str
12
- base_url: str
13
- endpoint: str
14
- endpoint_secret: str
15
-
16
- model_config = SettingsConfigDict(env_prefix="unique_app_", **config_dict)
17
-
18
-
19
- class UniqueAuth(BaseSettings):
20
- company_id: str
21
- user_id: str
22
-
23
- model_config = SettingsConfigDict(env_prefix="unique_auth_", **config_dict)
24
-
25
-
26
- class UniqueSettings:
27
- app: UniqueApp = UniqueApp()
28
- auth: UniqueAuth = UniqueAuth()
File without changes