superb-ai-onprem 0.1.2__tar.gz → 0.1.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.

Potentially problematic release.


This version of superb-ai-onprem might be problematic. Click here for more details.

Files changed (84) hide show
  1. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/.gitignore +4 -1
  2. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/PKG-INFO +1 -1
  3. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/_version.py +2 -2
  4. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/base_service.py +4 -1
  5. superb_ai_onprem-0.1.4/spb_onprem/users/entities/auth.py +88 -0
  6. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/superb_ai_onprem.egg-info/PKG-INFO +1 -1
  7. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/superb_ai_onprem.egg-info/SOURCES.txt +0 -1
  8. superb_ai_onprem-0.1.2/.env.local +0 -10
  9. superb_ai_onprem-0.1.2/spb_onprem/users/entities/auth.py +0 -86
  10. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/.github/workflows/publish.yml +0 -0
  11. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/LICENSE +0 -0
  12. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/README.md +0 -0
  13. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/pyproject.toml +0 -0
  14. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/setup.cfg +0 -0
  15. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/setup.py +0 -0
  16. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/__init__.py +0 -0
  17. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/base_model.py +0 -0
  18. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/base_types.py +0 -0
  19. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/contents/__init__.py +0 -0
  20. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/contents/entities/__init__.py +0 -0
  21. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/contents/entities/base_content.py +0 -0
  22. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/contents/entities/content.py +0 -0
  23. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/contents/queries.py +0 -0
  24. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/contents/service.py +0 -0
  25. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/__init__.py +0 -0
  26. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/entities/__init__.py +0 -0
  27. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/entities/annotation.py +0 -0
  28. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/entities/data.py +0 -0
  29. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/entities/data_meta.py +0 -0
  30. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/entities/prediction.py +0 -0
  31. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/entities/scene.py +0 -0
  32. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/enums/__init__.py +0 -0
  33. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/enums/data_meta_type.py +0 -0
  34. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/enums/data_type.py +0 -0
  35. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/enums/scene_type.py +0 -0
  36. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/__init__.py +0 -0
  37. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/create_data.py +0 -0
  38. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/data.py +0 -0
  39. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/data_list.py +0 -0
  40. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/delete_annotation_version.py +0 -0
  41. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/delete_data.py +0 -0
  42. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/delete_prediction.py +0 -0
  43. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/delete_scene.py +0 -0
  44. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/insert_annotation_version.py +0 -0
  45. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/insert_data_to_slice.py +0 -0
  46. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/insert_prediction.py +0 -0
  47. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/insert_scene.py +0 -0
  48. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/remove_data_from_slice.py +0 -0
  49. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/remove_data_meta.py +0 -0
  50. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/update_annotation.py +0 -0
  51. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/update_data.py +0 -0
  52. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/update_scene.py +0 -0
  53. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/params/upsert_data_meta.py +0 -0
  54. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/queries.py +0 -0
  55. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/data/service.py +0 -0
  56. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/__init__.py +0 -0
  57. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/entities/__init__.py +0 -0
  58. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/entities/dataset.py +0 -0
  59. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/params/__init__.py +0 -0
  60. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/params/create_dataset.py +0 -0
  61. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/params/dataset.py +0 -0
  62. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/params/datasets.py +0 -0
  63. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/params/update_dataset.py +0 -0
  64. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/queries.py +0 -0
  65. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/datasets/service.py +0 -0
  66. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/entities.py +0 -0
  67. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/exceptions.py +0 -0
  68. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/searches.py +0 -0
  69. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/__init__.py +0 -0
  70. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/entities/__init__.py +0 -0
  71. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/entities/slice.py +0 -0
  72. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/params/__init__.py +0 -0
  73. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/params/create_slice.py +0 -0
  74. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/params/delete_slice.py +0 -0
  75. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/params/slice.py +0 -0
  76. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/params/slices.py +0 -0
  77. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/params/update_slice.py +0 -0
  78. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/queries.py +0 -0
  79. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/slices/service.py +0 -0
  80. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/users/__init__.py +0 -0
  81. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/spb_onprem/users/entities/__init__.py +0 -0
  82. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/superb_ai_onprem.egg-info/dependency_links.txt +0 -0
  83. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/superb_ai_onprem.egg-info/requires.txt +0 -0
  84. {superb_ai_onprem-0.1.2 → superb_ai_onprem-0.1.4}/superb_ai_onprem.egg-info/top_level.txt +0 -0
@@ -46,4 +46,7 @@ coverage.xml
46
46
  .ipynb_checkpoints
47
47
 
48
48
  # Logs
49
- *.log
49
+ *.log
50
+
51
+ # Added from the code block
52
+ spb_onprem/_version.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superb-ai-onprem
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Python SDK for Superb AI On-premise
5
5
  Home-page: https://github.com/Superb-AI-Suite/superb-ai-onprem-python
6
6
  Author: Superb AI
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.1.2'
21
- __version_tuple__ = version_tuple = (0, 1, 2)
20
+ __version__ = version = '0.1.4'
21
+ __version_tuple__ = version_tuple = (0, 1, 4)
@@ -32,7 +32,10 @@ class BaseService():
32
32
 
33
33
  def __init__(self):
34
34
  self._auth_user = AuthUser.get_instance()
35
- self.endpoint = f"{self._auth_user.host}/graphql/"
35
+ if self._auth_user.is_system_sdk:
36
+ self.endpoint = f"{self._auth_user.host}/system/graphql/"
37
+ else:
38
+ self.endpoint = f"{self._auth_user.host}/graphql/"
36
39
 
37
40
  @classmethod
38
41
  def requests_retry_session(
@@ -0,0 +1,88 @@
1
+ import base64
2
+ import os
3
+ import configparser
4
+ from typing import Optional, ClassVar
5
+
6
+ from spb_onprem.base_model import CustomBaseModel, Field
7
+ from spb_onprem.exceptions import SDKConfigError
8
+
9
+ class AuthUser(CustomBaseModel):
10
+ host: str = Field(alias="host")
11
+ access_key: str = Field(alias="accessKey")
12
+ access_key_secret: str = Field(alias="accessKeySecret")
13
+ is_system_sdk: bool = Field(alias="isSystemSdk")
14
+ system_sdk_user_email: Optional[str] = Field(None, alias="systemSdkUserEmail")
15
+
16
+ _access_token: Optional[str] = None
17
+ _instance: ClassVar[Optional["AuthUser"]] = None
18
+
19
+ @classmethod
20
+ def get_instance(
21
+ cls,
22
+ config_file: str = "~/.spb/onprem-config"
23
+ ) -> "AuthUser":
24
+ if cls._instance is None:
25
+ config_file_path = os.path.expanduser(config_file)
26
+
27
+ if not os.path.exists(config_file_path):
28
+ cls._instance = cls._create_system_sdk_instance()
29
+ else:
30
+ cls._instance = cls._create_config_instance(config_file_path)
31
+ return cls._instance
32
+
33
+ @classmethod
34
+ def _create_system_sdk_instance(cls) -> "AuthUser":
35
+ system_sdk_host = os.environ.get("SUNRISE_SERVER_URL") or os.environ.get("SUPERB_SYSTEM_SDK_HOST") or "http://app-api:8080"
36
+
37
+ return cls(
38
+ host=system_sdk_host,
39
+ access_key="",
40
+ access_key_secret="",
41
+ is_system_sdk=True,
42
+ system_sdk_user_email=os.environ.get("SUPERB_SYSTEM_SDK_USER_EMAIL", "system@superb-ai.com")
43
+ )
44
+
45
+ @classmethod
46
+ def _create_config_instance(cls, config_file_path: str) -> "AuthUser":
47
+ config = configparser.ConfigParser()
48
+ try:
49
+ if not config.read(config_file_path):
50
+ raise SDKConfigError(f"Failed to read config file: {config_file_path}")
51
+
52
+ if "default" not in config:
53
+ raise SDKConfigError(f"Missing 'default' section in config file: {config_file_path}")
54
+
55
+ required_keys = ["host", "access_key", "access_key_secret"]
56
+ for key in required_keys:
57
+ if key not in config["default"]:
58
+ raise SDKConfigError(f"Missing required key '{key}' in config file: {config_file_path}")
59
+
60
+ return cls(
61
+ host=config["default"]["host"],
62
+ access_key=config["default"]["access_key"],
63
+ access_key_secret=config["default"]["access_key_secret"],
64
+ is_system_sdk=False,
65
+ system_sdk_user_email=None
66
+ )
67
+ except configparser.Error as e:
68
+ raise SDKConfigError(f"Error parsing config file: {str(e)}") from e
69
+
70
+ @property
71
+ def access_token(self):
72
+ if self._access_token:
73
+ return self._access_token
74
+ decoded_token = f"{self.access_key}:{self.access_key_secret}"
75
+ decoded_token_bytes = decoded_token.encode("utf-8")
76
+ encoded_token = base64.b64encode(decoded_token_bytes).decode("utf-8")
77
+ self._access_token = f"Basic {encoded_token}"
78
+ return self._access_token
79
+
80
+ @property
81
+ def auth_headers(self):
82
+ if self.is_system_sdk:
83
+ return {
84
+ "x-user-email": self.system_sdk_user_email
85
+ }
86
+ return {
87
+ "Authorization": self.access_token
88
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superb-ai-onprem
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Python SDK for Superb AI On-premise
5
5
  Home-page: https://github.com/Superb-AI-Suite/superb-ai-onprem-python
6
6
  Author: Superb AI
@@ -1,4 +1,3 @@
1
- .env.local
2
1
  .gitignore
3
2
  LICENSE
4
3
  README.md
@@ -1,10 +0,0 @@
1
- # System SDK Configuration
2
- # Set to "true" to use system SDK mode (typically used in Airflow DAGs)
3
- SUPERB_SYSTEM_SDK=false
4
-
5
- # Host Configuration
6
- # Either SUNRISE_SERVER_URL or SUPERB_SYSTEM_SDK_HOST must be set when SUPERB_SYSTEM_SDK is true
7
- SUPERB_SYSTEM_SDK_HOST=https://your-superb-ai-host
8
-
9
- # User Configuration (Required when SUPERB_SYSTEM_SDK is true)
10
- SUPERB_SYSTEM_SDK_USER_EMAIL=user@example.com
@@ -1,86 +0,0 @@
1
- import base64
2
- import os
3
- import configparser
4
- from typing import Optional, ClassVar
5
-
6
- from spb_onprem.base_model import CustomBaseModel, Field
7
- from spb_onprem.exceptions import SDKConfigError
8
-
9
- class AuthUser(CustomBaseModel):
10
- host: str = Field(alias="host")
11
- access_key: str = Field(alias="accessKey")
12
- access_key_secret: str = Field(alias="accessKeySecret")
13
- is_system_sdk: bool = Field(alias="isSystemSdk")
14
- system_sdk_user_email: Optional[str] = Field(None, alias="systemSdkUserEmail")
15
-
16
- _access_token: Optional[str] = None
17
- _instance: ClassVar[Optional["AuthUser"]] = None
18
-
19
- @classmethod
20
- def get_instance(
21
- cls,
22
- config_file: str = "~/.spb/onprem-config"
23
- ) -> "AuthUser":
24
- if cls._instance is None:
25
- if os.environ.get("SUPERB_SYSTEM_SDK") == "true":
26
- if not os.environ.get("SUNRISE_SERVER_URL") and not os.environ.get("SUPERB_SYSTEM_SDK_HOST"):
27
- raise SDKConfigError("Superb Platform SDK is not configured. Please set the environment variable SUPERB_SYSTEM_SDK_URL.")
28
-
29
- if os.environ.get("SUNRISE_SERVER_URL"):
30
- system_sdk_host = os.environ.get("SUNRISE_SERVER_URL")
31
- else:
32
- system_sdk_host = os.environ.get("SUPERB_SYSTEM_SDK_HOST")
33
-
34
- # Skip reading config file when SUPERB_SYSTEM_SDK is true
35
- cls._instance = cls(
36
- host=system_sdk_host,
37
- access_key="",
38
- access_key_secret="",
39
- is_system_sdk=True,
40
- system_sdk_user_email=os.environ.get("SUPERB_SYSTEM_SDK_USER_EMAIL", "")
41
- )
42
- else:
43
- config_file_path = os.path.expanduser(config_file)
44
- config = configparser.ConfigParser()
45
- try:
46
- if not config.read(config_file_path):
47
- raise SDKConfigError(f"Failed to read config file: {config_file_path}")
48
-
49
- if "default" not in config:
50
- raise SDKConfigError(f"Missing 'default' section in config file: {config_file_path}")
51
-
52
- required_keys = ["host", "access_key", "access_key_secret"]
53
- for key in required_keys:
54
- if key not in config["default"]:
55
- raise SDKConfigError(f"Missing required key '{key}' in config file: {config_file_path}")
56
-
57
- cls._instance = cls(
58
- host=config["default"]["host"],
59
- access_key=config["default"]["access_key"],
60
- access_key_secret=config["default"]["access_key_secret"],
61
- is_system_sdk=False,
62
- system_sdk_user_email=None # Not required in normal mode
63
- )
64
- except configparser.Error as e:
65
- raise SDKConfigError(f"Error parsing config file: {str(e)}") from e
66
- return cls._instance
67
-
68
- @property
69
- def access_token(self):
70
- if self._access_token:
71
- return self._access_token
72
- decoded_token = f"{self.access_key}:{self.access_key_secret}"
73
- decoded_token_bytes = decoded_token.encode("utf-8")
74
- encoded_token = base64.b64encode(decoded_token_bytes).decode("utf-8")
75
- self._access_token = f"Basic {encoded_token}"
76
- return self._access_token
77
-
78
- @property
79
- def auth_headers(self):
80
- if self.is_system_sdk:
81
- return {
82
- "x-user-email": self.system_sdk_user_email
83
- }
84
- return {
85
- "Authorization": self.access_token
86
- }