unique_toolkit 0.5.43__tar.gz → 0.5.44__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 (48) hide show
  1. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/CHANGELOG.md +2 -1
  2. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/PKG-INFO +3 -2
  3. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/pyproject.toml +1 -1
  4. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/app/verification.py +9 -8
  5. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/LICENSE +0 -0
  6. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/README.md +0 -0
  7. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/__init__.py +0 -0
  8. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/_common/_base_service.py +0 -0
  9. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/_common/_time_utils.py +0 -0
  10. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/_common/exception.py +0 -0
  11. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/_common/validators.py +0 -0
  12. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/app/__init__.py +0 -0
  13. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/app/init_logging.py +0 -0
  14. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/app/init_sdk.py +0 -0
  15. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/app/performance/async_tasks.py +0 -0
  16. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  17. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/app/schemas.py +0 -0
  18. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/chat/__init__.py +0 -0
  19. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/chat/schemas.py +0 -0
  20. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/chat/service.py +0 -0
  21. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/chat/state.py +0 -0
  22. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/chat/utils.py +0 -0
  23. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/content/__init__.py +0 -0
  24. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/content/schemas.py +0 -0
  25. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/content/service.py +0 -0
  26. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/content/utils.py +0 -0
  27. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/embedding/__init__.py +0 -0
  28. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/embedding/schemas.py +0 -0
  29. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/embedding/service.py +0 -0
  30. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/embedding/utils.py +0 -0
  31. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/config.py +0 -0
  32. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/context_relevancy/constants.py +0 -0
  33. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/context_relevancy/prompts.py +0 -0
  34. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/context_relevancy/service.py +0 -0
  35. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/context_relevancy/utils.py +0 -0
  36. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/exception.py +0 -0
  37. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/hallucination/constants.py +0 -0
  38. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/hallucination/prompts.py +0 -0
  39. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/hallucination/service.py +0 -0
  40. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/hallucination/utils.py +0 -0
  41. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/output_parser.py +0 -0
  42. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/evaluators/schemas.py +0 -0
  43. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/language_model/__init__.py +0 -0
  44. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/language_model/infos.py +0 -0
  45. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/language_model/prompt.py +0 -0
  46. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/language_model/schemas.py +0 -0
  47. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/language_model/service.py +0 -0
  48. {unique_toolkit-0.5.43 → unique_toolkit-0.5.44}/unique_toolkit/language_model/utils.py +0 -0
@@ -5,7 +5,8 @@ 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
-
8
+ ## [0.5.44] - 2024-12-18
9
+ - Add `event_constructor` to `verify_signature_and_construct_event` to allow for custom event construction.
9
10
 
10
11
  ## [0.5.43] - 2024-12-13
11
12
  - Add `Prompt` class to handle templated prompts that can be formatted into LanguageModelSystemMessage and LanguageModelUserMessage.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 0.5.43
3
+ Version: 0.5.44
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Martin Fadler
@@ -100,7 +100,8 @@ All notable changes to this project will be documented in this file.
100
100
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
101
101
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
102
102
 
103
-
103
+ ## [0.5.44] - 2024-12-18
104
+ - Add `event_constructor` to `verify_signature_and_construct_event` to allow for custom event construction.
104
105
 
105
106
  ## [0.5.43] - 2024-12-13
106
107
  - Add `Prompt` class to handle templated prompts that can be formatted into LanguageModelSystemMessage and LanguageModelUserMessage.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "0.5.43"
3
+ version = "0.5.44"
4
4
  description = ""
5
5
  authors = [
6
6
  "Martin Fadler <martin.fadler@unique.ch>",
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ from typing import Callable, TypeVar
2
3
 
3
4
  import unique_sdk
4
5
 
@@ -11,12 +12,16 @@ class WebhookVerificationError(Exception):
11
12
  pass
12
13
 
13
14
 
15
+ T = TypeVar("T")
16
+
17
+
14
18
  def verify_signature_and_construct_event(
15
19
  headers: dict[str, str],
16
20
  payload: bytes,
17
21
  endpoint_secret: str,
18
22
  logger: logging.Logger = logging.getLogger(__name__),
19
- ):
23
+ event_constructor: Callable[..., T] = Event,
24
+ ) -> T:
20
25
  """
21
26
  Verify the signature of a webhook and construct an event object.
22
27
 
@@ -25,18 +30,14 @@ def verify_signature_and_construct_event(
25
30
  payload (bytes): The raw payload of the webhook request.
26
31
  endpoint_secret (str): The secret used to verify the webhook signature.
27
32
  logger (logging.Logger): A logger instance for logging messages.
28
-
33
+ event_constructor (Callable[..., T]): A callable that constructs an event object.
29
34
  Returns:
30
- Union[Event, Tuple[Dict[str, bool], int]]:
31
- If successful, returns an Event object.
32
- If unsuccessful, returns a tuple with an error response and HTTP status code.
35
+ T: The constructed event object.
33
36
 
34
37
  Raises:
35
38
  WebhookVerificationError: If there's an error during verification or event construction.
36
39
  """
37
40
 
38
- # Only verify the event if there is an endpoint secret defined
39
- # Otherwise use the basic event deserialized with json
40
41
  sig_header = headers.get("X-Unique-Signature")
41
42
  timestamp = headers.get("X-Unique-Created-At")
42
43
 
@@ -52,7 +53,7 @@ def verify_signature_and_construct_event(
52
53
  endpoint_secret,
53
54
  )
54
55
  logger.info("✅ Webhook signature verification successful.")
55
- return Event(**event)
56
+ return event_constructor(**event)
56
57
  except unique_sdk.SignatureVerificationError as e:
57
58
  logger.error("⚠️ Webhook signature verification failed. " + str(e))
58
59
  raise WebhookVerificationError(f"Signature verification failed: {str(e)}")
File without changes