cheshirecat-python-sdk 1.7.2__tar.gz → 1.7.4__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 (53) hide show
  1. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/PKG-INFO +1 -1
  2. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/client.py +5 -0
  3. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/clients/http_client.py +5 -5
  4. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/__init__.py +1 -0
  5. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/admins.py +1 -31
  6. cheshirecat_python_sdk-1.7.4/cheshirecat_python_sdk/endpoints/auth.py +42 -0
  7. cheshirecat_python_sdk-1.7.4/cheshirecat_python_sdk/endpoints/health_check.py +22 -0
  8. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/users.py +0 -28
  9. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/pyproject.toml +1 -1
  10. cheshirecat_python_sdk-1.7.2/cheshirecat_python_sdk/endpoints/health_check.py +0 -12
  11. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/.gitignore +0 -0
  12. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/LICENSE +0 -0
  13. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/Makefile +0 -0
  14. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/README.md +0 -0
  15. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/__init__.py +0 -0
  16. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/builders/__init__.py +0 -0
  17. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/builders/base.py +0 -0
  18. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/builders/memory.py +0 -0
  19. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/builders/settings_input.py +0 -0
  20. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/builders/why.py +0 -0
  21. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/clients/__init__.py +0 -0
  22. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/clients/websocket_client.py +0 -0
  23. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/configuration.py +0 -0
  24. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/auth_handler.py +0 -0
  25. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/base.py +0 -0
  26. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/chunker.py +0 -0
  27. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/conversation.py +0 -0
  28. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/custom_endpoint.py +0 -0
  29. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/embedder.py +0 -0
  30. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/file_manager.py +0 -0
  31. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/large_language_model.py +0 -0
  32. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/memory.py +0 -0
  33. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/message.py +0 -0
  34. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/plugins.py +0 -0
  35. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/rabbit_hole.py +0 -0
  36. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/utils.py +0 -0
  37. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/endpoints/vector_database.py +0 -0
  38. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/enums.py +0 -0
  39. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/admins.py +0 -0
  40. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/conversations.py +0 -0
  41. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/factories.py +0 -0
  42. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/file_managers.py +0 -0
  43. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/memories.py +0 -0
  44. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/messages.py +0 -0
  45. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/nested/memories.py +0 -0
  46. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/nested/plugins.py +0 -0
  47. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/plugins.py +0 -0
  48. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/rabbit_holes.py +0 -0
  49. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/tokens.py +0 -0
  50. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/api/users.py +0 -0
  51. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/models/dtos.py +0 -0
  52. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/cheshirecat_python_sdk/utils.py +0 -0
  53. {cheshirecat_python_sdk-1.7.2 → cheshirecat_python_sdk-1.7.4}/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cheshirecat-python-sdk
3
- Version: 1.7.2
3
+ Version: 1.7.4
4
4
  Summary: Python SDK for the Cloud-ready fork of the Cheshire Cat
5
5
  Project-URL: Repository, https://github.com/matteocacciola/cheshirecat-python-sdk
6
6
  Project-URL: Documentation, https://github.com/matteocacciola/cheshirecat-python-sdk#README
@@ -2,6 +2,7 @@ from cheshirecat_python_sdk.clients import HttpClient, WSClient
2
2
  from cheshirecat_python_sdk.configuration import Configuration
3
3
  from cheshirecat_python_sdk.endpoints import (
4
4
  AdminsEndpoint,
5
+ AuthEndpoint,
5
6
  AuthHandlerEndpoint,
6
7
  ChunkerEndpoint,
7
8
  ConversationEndpoint,
@@ -55,6 +56,10 @@ class CheshireCatClient:
55
56
  def admins(self):
56
57
  return AdminsEndpoint(self)
57
58
 
59
+ @property
60
+ def auth(self):
61
+ return AuthEndpoint(self)
62
+
58
63
  @property
59
64
  def auth_handler(self):
60
65
  return AuthHandlerEndpoint(self)
@@ -40,19 +40,19 @@ class HttpClient:
40
40
  if self.apikey:
41
41
  self.headers["Authorization"] = f"Bearer {self.apikey}"
42
42
  if self.agent_id:
43
- self.headers["agent_id"] = self.agent_id
43
+ self.headers["X-Agent-ID"] = self.agent_id
44
44
  if self.user_id:
45
- self.headers["user_id"] = self.user_id
45
+ self.headers["X-User-ID"] = self.user_id
46
46
  if self.chat_id:
47
- self.headers["chat_id"] = self.chat_id
47
+ self.headers["X-Chat-ID"] = self.chat_id
48
48
 
49
49
  def __before_jwt_request(self):
50
50
  if self.token:
51
51
  self.headers["Authorization"] = f"Bearer {self.token}"
52
52
  if self.agent_id:
53
- self.headers["agent_id"] = self.agent_id
53
+ self.headers["X-Agent-ID"] = self.agent_id
54
54
  if self.chat_id:
55
- self.headers["chat_id"] = self.chat_id
55
+ self.headers["X-Chat-ID"] = self.chat_id
56
56
 
57
57
  def get_client(
58
58
  self,
@@ -1,4 +1,5 @@
1
1
  from cheshirecat_python_sdk.endpoints.admins import AdminsEndpoint
2
+ from cheshirecat_python_sdk.endpoints.auth import AuthEndpoint
2
3
  from cheshirecat_python_sdk.endpoints.auth_handler import AuthHandlerEndpoint
3
4
  from cheshirecat_python_sdk.endpoints.chunker import ChunkerEndpoint
4
5
  from cheshirecat_python_sdk.endpoints.conversation import ConversationEndpoint
@@ -1,4 +1,4 @@
1
- from typing import List, Any
1
+ from typing import List
2
2
 
3
3
  from cheshirecat_python_sdk.endpoints.base import AbstractEndpoint, MultipartPayload
4
4
  from cheshirecat_python_sdk.models.api.admins import (
@@ -10,7 +10,6 @@ from cheshirecat_python_sdk.models.api.admins import (
10
10
  )
11
11
  from cheshirecat_python_sdk.models.api.nested.plugins import PluginSettingsOutput
12
12
  from cheshirecat_python_sdk.models.api.plugins import PluginCollectionOutput, PluginsSettingsOutput, PluginToggleOutput
13
- from cheshirecat_python_sdk.models.api.tokens import TokenOutput
14
13
  from cheshirecat_python_sdk.utils import deserialize, file_attributes
15
14
 
16
15
 
@@ -19,35 +18,6 @@ class AdminsEndpoint(AbstractEndpoint):
19
18
  super().__init__(client)
20
19
  self.prefix = "/admins"
21
20
 
22
- def token(self, username: str, password: str) -> TokenOutput:
23
- """
24
- This endpoint is used to get a token for the user. The token is used to authenticate the user in the system.
25
- When the token expires, the user must request a new token.
26
- :param username: The username of the user.
27
- :param password: The password of the user.
28
- :return: TokenOutput, the token of the user.
29
- """
30
- response = self.get_http_session().post(
31
- self.format_url("/auth/token"),
32
- json={"username": username, "password": password},
33
- )
34
- response.raise_for_status()
35
-
36
- result = deserialize(response.json(), TokenOutput)
37
- self.client.add_token(result.access_token)
38
- return result
39
-
40
- def get_available_permissions(self) -> dict[int | str, Any]:
41
- """
42
- This endpoint is used to get a list of available permissions in the system. The permissions are used to define
43
- the access rights of the users in the system. The permissions are defined by the system administrator.
44
- :return array<int|string, Any>, the available permissions
45
- """
46
- response = self.get_http_client().get(self.format_url("/auth/available-permissions"))
47
- response.raise_for_status()
48
-
49
- return response.json()
50
-
51
21
  def post_admin(self, username: str, password: str, permissions: dict | None = None) -> AdminOutput:
52
22
  """
53
23
  Create a new admin user.
@@ -0,0 +1,42 @@
1
+ from typing import Any
2
+
3
+ from cheshirecat_python_sdk.endpoints.base import AbstractEndpoint
4
+ from cheshirecat_python_sdk.models.api.tokens import TokenOutput
5
+ from cheshirecat_python_sdk.utils import deserialize
6
+
7
+
8
+ class AuthEndpoint(AbstractEndpoint):
9
+ def __init__(self, client: "CheshireCatClient"):
10
+ super().__init__(client)
11
+ self.prefix = "/auth"
12
+
13
+ def token(self, username: str, password: str, agent_id: str | None = None) -> TokenOutput:
14
+ """
15
+ This endpoint is used to get a token for the user. The token is used to authenticate the user in the system. When
16
+ the token expires, the user must request a new token.
17
+ """
18
+ response = self.get_http_session().post(
19
+ self.format_url("/token"),
20
+ json={
21
+ "username": username,
22
+ "password": password,
23
+ },
24
+ headers={"X-Agent-ID": agent_id} if agent_id else None,
25
+ )
26
+ response.raise_for_status()
27
+
28
+ result = deserialize(response.json(), TokenOutput)
29
+ self.client.add_token(result.access_token)
30
+
31
+ return result
32
+
33
+ def get_available_permissions(self) -> dict[int | str, Any]:
34
+ """
35
+ This endpoint is used to get a list of available permissions in the system. The permissions are used to define
36
+ the access rights of the users in the system. The permissions are defined by the system administrator.
37
+ :return array<int|string, Any>, the available permissions
38
+ """
39
+ response = self.get_http_client().get(self.format_url("/available-permissions"))
40
+ response.raise_for_status()
41
+
42
+ return response.json()
@@ -0,0 +1,22 @@
1
+ from cheshirecat_python_sdk.endpoints.base import AbstractEndpoint
2
+
3
+ class HealthCheckEndpoint(AbstractEndpoint):
4
+ def liveness(self):
5
+ """
6
+ This endpoint is used to check if the server is running.
7
+ :return: dict, the status of the server.
8
+ """
9
+ response = self.get_http_session().get("/health/liveness")
10
+ response.raise_for_status()
11
+
12
+ return response.json()
13
+
14
+ def readiness(self):
15
+ """
16
+ This endpoint is used to check if the server is running.
17
+ :return: dict, the status of the server.
18
+ """
19
+ response = self.get_http_session().get("/health/readiness")
20
+ response.raise_for_status()
21
+
22
+ return response.json()
@@ -1,7 +1,6 @@
1
1
  from typing import Any, List, Dict
2
2
 
3
3
  from cheshirecat_python_sdk.endpoints.base import AbstractEndpoint
4
- from cheshirecat_python_sdk.models.api.tokens import TokenOutput
5
4
  from cheshirecat_python_sdk.models.api.users import UserOutput
6
5
  from cheshirecat_python_sdk.utils import deserialize
7
6
 
@@ -11,33 +10,6 @@ class UsersEndpoint(AbstractEndpoint):
11
10
  super().__init__(client)
12
11
  self.prefix = "/users"
13
12
 
14
- def token(self, username: str, password: str) -> TokenOutput:
15
- """
16
- This endpoint is used to get a token for the user. The token is used to authenticate the user in the system. When
17
- the token expires, the user must request a new token.
18
- """
19
- response = self.get_http_session().post("/auth/token", json={
20
- "username": username,
21
- "password": password,
22
- })
23
- response.raise_for_status()
24
-
25
- result = deserialize(response.json(), TokenOutput)
26
- self.client.add_token(result.access_token)
27
-
28
- return result
29
-
30
- def get_available_permissions(self) -> dict[int | str, Any]:
31
- """
32
- This endpoint is used to get a list of available permissions in the system. The permissions are used to define
33
- the access rights of the users in the system. The permissions are defined by the system administrator.
34
- :return array<int|string, Any>, the available permissions
35
- """
36
- response = self.get_http_client().get("/auth/available-permissions")
37
- response.raise_for_status()
38
-
39
- return response.json()
40
-
41
13
  def post_user(
42
14
  self, agent_id: str, username: str, password: str, permissions: dict[str, Any] | None = None
43
15
  ) -> UserOutput:
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "cheshirecat-python-sdk"
3
3
  description = "Python SDK for the Cloud-ready fork of the Cheshire Cat"
4
- version = "1.7.2"
4
+ version = "1.7.4"
5
5
  requires-python = ">=3.10"
6
6
  license = { file = "LICENSE" }
7
7
  authors = [
@@ -1,12 +0,0 @@
1
- from cheshirecat_python_sdk.endpoints.base import AbstractEndpoint
2
-
3
- class HealthCheckEndpoint(AbstractEndpoint):
4
- def home(self):
5
- """
6
- This endpoint is used to check if the server is running.
7
- :return: dict, the status of the server.
8
- """
9
- response = self.get_http_session().get("/")
10
- response.raise_for_status()
11
-
12
- return response.json()