codemie-sdk-python 0.1.205__tar.gz → 0.1.207__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.

Potentially problematic release.


This version of codemie-sdk-python might be problematic. Click here for more details.

Files changed (37) hide show
  1. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/PKG-INFO +16 -1
  2. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/README.md +15 -0
  3. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/pyproject.toml +1 -1
  4. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/client/client.py +4 -0
  5. codemie_sdk_python-0.1.207/src/codemie_sdk/services/webhook.py +41 -0
  6. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/utils/http.py +7 -1
  7. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/__init__.py +0 -0
  8. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/auth/__init__.py +0 -0
  9. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/auth/credentials.py +0 -0
  10. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/client/__init__.py +0 -0
  11. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/exceptions.py +0 -0
  12. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/__init__.py +0 -0
  13. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/assistant.py +0 -0
  14. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/common.py +0 -0
  15. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/conversation.py +0 -0
  16. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/datasource.py +0 -0
  17. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/file_operation.py +0 -0
  18. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/integration.py +0 -0
  19. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/llm.py +0 -0
  20. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/task.py +0 -0
  21. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/user.py +0 -0
  22. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/workflow.py +0 -0
  23. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/workflow_execution_payload.py +0 -0
  24. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/workflow_state.py +0 -0
  25. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/models/workflow_thoughts.py +0 -0
  26. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/assistant.py +0 -0
  27. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/conversation.py +0 -0
  28. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/datasource.py +0 -0
  29. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/files.py +0 -0
  30. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/integration.py +0 -0
  31. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/llm.py +0 -0
  32. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/task.py +0 -0
  33. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/user.py +0 -0
  34. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/workflow.py +0 -0
  35. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/workflow_execution.py +0 -0
  36. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/services/workflow_execution_state.py +0 -0
  37. {codemie_sdk_python-0.1.205 → codemie_sdk_python-0.1.207}/src/codemie_sdk/utils/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codemie-sdk-python
3
- Version: 0.1.205
3
+ Version: 0.1.207
4
4
  Summary: CodeMie SDK for Python
5
5
  Author: Vadym Vlasenko
6
6
  Author-email: vadym_vlasenko@epam.com
@@ -43,6 +43,8 @@ Python SDK for CodeMie services. This SDK provides a comprehensive interface to
43
43
  - [Workflow Status Monitoring](#workflow-status-monitoring)
44
44
  - [Conversation Service](#conversation-service)
45
45
  - [Core Methods](#core-methods-4)
46
+ - [Webhook Service](#webhook-service)
47
+ - [Core Methods](#core-methods-5)
46
48
  - [Development](#development)
47
49
  - [Setup](#setup)
48
50
  - [Running Tests](#running-tests)
@@ -735,6 +737,19 @@ client.conversations.list_by_assistant_id("assistant-id")
735
737
  client.conversations.delete("conversation-id")
736
738
  ```
737
739
 
740
+
741
+ ### Webhook Service
742
+
743
+ The Webhook service provides access to trigger available webhook in CodeMie.
744
+
745
+ #### Core Methods
746
+
747
+ 1. **Get All Conversations**
748
+ ```python
749
+ # Trigger assistant/workflow/datasource by it's ID
750
+ # Data - body of the post method
751
+ response = client.webhook.trigger("resource_id", "data")
752
+ ```
738
753
  ## Error Handling
739
754
 
740
755
  The SDK implements comprehensive error handling. All API calls may raise exceptions for:
@@ -30,6 +30,8 @@ Python SDK for CodeMie services. This SDK provides a comprehensive interface to
30
30
  - [Workflow Status Monitoring](#workflow-status-monitoring)
31
31
  - [Conversation Service](#conversation-service)
32
32
  - [Core Methods](#core-methods-4)
33
+ - [Webhook Service](#webhook-service)
34
+ - [Core Methods](#core-methods-5)
33
35
  - [Development](#development)
34
36
  - [Setup](#setup)
35
37
  - [Running Tests](#running-tests)
@@ -722,6 +724,19 @@ client.conversations.list_by_assistant_id("assistant-id")
722
724
  client.conversations.delete("conversation-id")
723
725
  ```
724
726
 
727
+
728
+ ### Webhook Service
729
+
730
+ The Webhook service provides access to trigger available webhook in CodeMie.
731
+
732
+ #### Core Methods
733
+
734
+ 1. **Get All Conversations**
735
+ ```python
736
+ # Trigger assistant/workflow/datasource by it's ID
737
+ # Data - body of the post method
738
+ response = client.webhook.trigger("resource_id", "data")
739
+ ```
725
740
  ## Error Handling
726
741
 
727
742
  The SDK implements comprehensive error handling. All API calls may raise exceptions for:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemie-sdk-python"
3
- version = "0.1.205"
3
+ version = "0.1.207"
4
4
  description = "CodeMie SDK for Python"
5
5
  authors = [
6
6
  "Vadym Vlasenko <vadym_vlasenko@epam.com>",
@@ -12,6 +12,7 @@ from ..services.task import TaskService
12
12
  from ..services.user import UserService
13
13
  from ..services.workflow import WorkflowService
14
14
  from ..services.files import FileOperationService
15
+ from ..services.webhook import WebhookService
15
16
 
16
17
 
17
18
  class CodeMieClient:
@@ -85,6 +86,9 @@ class CodeMieClient:
85
86
  self.files = FileOperationService(
86
87
  self._api_domain, self._token, verify_ssl=self._verify_ssl
87
88
  )
89
+ self.webhook = WebhookService(
90
+ self._api_domain, self._token, verify_ssl=self._verify_ssl
91
+ )
88
92
 
89
93
  @property
90
94
  def token(self) -> str:
@@ -0,0 +1,41 @@
1
+ import requests
2
+
3
+ from typing import Dict, Any
4
+ from ..utils import ApiRequestHandler
5
+
6
+
7
+ class WebhookService:
8
+ """Webhook service implementation."""
9
+
10
+ def __init__(self, api_domain: str, token: str, verify_ssl: bool = True):
11
+ """Initialize the conversation service.
12
+
13
+ Args:
14
+ api_domain: Base URL for the API
15
+ token: Authentication token
16
+ verify_ssl: Whether to verify SSL certificates
17
+ """
18
+ self._api = ApiRequestHandler(api_domain, token, verify_ssl)
19
+
20
+ def trigger(
21
+ self, webhook_id: str, data: Dict[str, Any] = None
22
+ ) -> requests.Response:
23
+ """Trigger a webhook by sending a POST request with the provided data.
24
+
25
+ Args:
26
+ webhook_id: Webhook ID to trigger
27
+ data: Request body data. Defaults to {"test": "data"} if not provided
28
+
29
+ Returns:
30
+ Response object from requests library
31
+ """
32
+ if data is None:
33
+ data = {"test": "data"}
34
+
35
+ return self._api.post(
36
+ f"/v1/webhooks/{webhook_id}",
37
+ response_model=requests.Response,
38
+ json_data=data,
39
+ wrap_response=False,
40
+ raise_on_error=False,
41
+ )
@@ -160,6 +160,7 @@ class ApiRequestHandler:
160
160
  json_data: Optional[Dict[str, Any]] = None,
161
161
  stream: bool = False,
162
162
  wrap_response: bool = True,
163
+ raise_on_error: bool = True,
163
164
  ) -> Union[T, requests.Response]:
164
165
  """Makes a POST request and parses the response.
165
166
 
@@ -169,6 +170,7 @@ class ApiRequestHandler:
169
170
  json_data: JSON request body
170
171
  stream: Whether to return streaming response
171
172
  wrap_response: Whether response is wrapped in 'data' field
173
+ raise_on_error: Whether to raise exception on HTTP error status codes
172
174
 
173
175
  Returns:
174
176
  Parsed response object/list or streaming response
@@ -183,11 +185,15 @@ class ApiRequestHandler:
183
185
  verify=self._verify_ssl,
184
186
  stream=stream,
185
187
  )
186
- response.raise_for_status()
188
+ if raise_on_error:
189
+ response.raise_for_status()
187
190
 
188
191
  if stream:
189
192
  return response
190
193
 
194
+ if response_model is None or response_model is requests.Response:
195
+ return response
196
+
191
197
  return self._parse_response(response, response_model, wrap_response)
192
198
 
193
199
  @log_request