sap-ai-sdk-core 2.9.9__py3-none-any.whl → 3.0.8__py3-none-any.whl

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 (87) hide show
  1. ai_core_sdk/ai_core_v2_client.py +157 -0
  2. ai_core_sdk/cli.py +172 -0
  3. ai_core_sdk/credentials.py +196 -0
  4. ai_core_sdk/exception.py +11 -0
  5. ai_core_sdk/helpers/__init__.py +39 -0
  6. ai_core_sdk/helpers/constants.py +18 -0
  7. ai_core_sdk/helpers/logging.py +23 -0
  8. ai_core_sdk/models/__init__.py +33 -0
  9. ai_core_sdk/models/application.py +37 -0
  10. ai_core_sdk/models/application_query_response.py +30 -0
  11. ai_core_sdk/models/application_resource_sync_status.py +34 -0
  12. ai_core_sdk/models/application_source.py +34 -0
  13. ai_core_sdk/models/application_status.py +66 -0
  14. ai_core_sdk/models/base_models.py +62 -0
  15. ai_core_sdk/models/docker_registry_secret.py +23 -0
  16. ai_core_sdk/models/docker_registry_secret_query_response.py +30 -0
  17. ai_core_sdk/models/kpi.py +25 -0
  18. ai_core_sdk/models/object_store_secret.py +32 -0
  19. ai_core_sdk/models/object_store_secret_query_response.py +30 -0
  20. ai_core_sdk/models/repository.py +36 -0
  21. ai_core_sdk/models/repository_query_response.py +30 -0
  22. ai_core_sdk/models/repository_status.py +9 -0
  23. ai_core_sdk/models/resource_group.py +50 -0
  24. ai_core_sdk/models/resource_group_query_response.py +31 -0
  25. ai_core_sdk/models/resource_group_status.py +9 -0
  26. ai_core_sdk/models/secret.py +30 -0
  27. ai_core_sdk/models/secret_query_response.py +30 -0
  28. ai_core_sdk/resource_clients/__init__.py +13 -0
  29. ai_core_sdk/resource_clients/applications_client.py +173 -0
  30. ai_core_sdk/resource_clients/docker_registry_secrets_client.py +117 -0
  31. ai_core_sdk/resource_clients/internal_rest_client.py +52 -0
  32. ai_core_sdk/resource_clients/kpi_client.py +26 -0
  33. ai_core_sdk/resource_clients/metrics_client.py +131 -0
  34. ai_core_sdk/resource_clients/object_store_secrets_client.py +215 -0
  35. ai_core_sdk/resource_clients/repositories_client.py +116 -0
  36. ai_core_sdk/resource_clients/secrets_client.py +148 -0
  37. ai_core_sdk/tracking/__init__.py +2 -0
  38. ai_core_sdk/tracking/tracking.py +215 -0
  39. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.ai_core_v2_client.html +127 -0
  40. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.cli.html +59 -0
  41. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.credentials.html +209 -0
  42. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.exception.html +161 -0
  43. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.helpers.constants.html +90 -0
  44. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.helpers.html +52 -0
  45. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.helpers.logging.html +41 -0
  46. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.html +29 -0
  47. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application.html +79 -0
  48. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application_query_response.html +86 -0
  49. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application_resource_sync_status.html +77 -0
  50. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application_source.html +77 -0
  51. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application_status.html +90 -0
  52. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.base_models.html +120 -0
  53. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.docker_registry_secret.html +85 -0
  54. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.docker_registry_secret_query_response.html +86 -0
  55. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.html +40 -0
  56. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.kpi.html +73 -0
  57. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.object_store_secret.html +71 -0
  58. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.object_store_secret_query_response.html +86 -0
  59. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.repository.html +77 -0
  60. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.repository_query_response.html +86 -0
  61. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.repository_status.html +69 -0
  62. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.resource_group.html +85 -0
  63. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.resource_group_query_response.html +86 -0
  64. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.resource_group_status.html +69 -0
  65. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.secret.html +76 -0
  66. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.secret_query_response.html +86 -0
  67. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.applications_client.html +186 -0
  68. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.docker_registry_secrets_client.html +147 -0
  69. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.html +29 -0
  70. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.internal_rest_client.html +181 -0
  71. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.kpi_client.html +87 -0
  72. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.metrics_client.html +189 -0
  73. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.object_store_secrets_client.html +205 -0
  74. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.repositories_client.html +148 -0
  75. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.resource_groups_client.html +156 -0
  76. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.secrets_client.html +165 -0
  77. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.tracking.html +22 -0
  78. sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.tracking.tracking.html +224 -0
  79. sap_ai_sdk_core-3.0.8.dist-info/METADATA +253 -0
  80. sap_ai_sdk_core-3.0.8.dist-info/RECORD +84 -0
  81. {sap_ai_sdk_core-2.9.9.dist-info → sap_ai_sdk_core-3.0.8.dist-info}/WHEEL +1 -1
  82. sap_ai_sdk_core-3.0.8.dist-info/top_level.txt +1 -0
  83. sap_ai_sdk_core-2.9.9.dist-info/METADATA +0 -43
  84. sap_ai_sdk_core-2.9.9.dist-info/RECORD +0 -6
  85. sap_ai_sdk_core-2.9.9.dist-info/top_level.txt +0 -1
  86. {sap-ai-sdk-core → ai_core_sdk}/__init__.py +0 -0
  87. {sap_ai_sdk_core-2.9.9.dist-info/licenses → sap_ai_sdk_core-3.0.8.dist-info}/LICENSE +0 -0
@@ -0,0 +1,224 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
+ <html><head><title>Python: module ai_core_sdk.tracking.tracking</title>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4
+ </head><body bgcolor="#f0f0f8">
5
+
6
+ <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
7
+ <tr bgcolor="#7799ee">
8
+ <td valign=bottom>&nbsp;<br>
9
+ <font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ai_core_sdk.html"><font color="#ffffff">ai_core_sdk</font></a>.<a href="ai_core_sdk.tracking.html"><font color="#ffffff">tracking</font></a>.tracking</strong></big></big></font></td
10
+ ><td align=right valign=bottom
11
+ ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jenkins/agent/workspace/AI-Foundation_ai-core-sdk_master/ai_core_sdk/tracking/tracking.py">/home/jenkins/agent/workspace/AI-Foundation_ai-core-sdk_master/ai_core_sdk/tracking/tracking.py</a></font></td></tr></table>
12
+ <p><tt>#&nbsp;pylint:&nbsp;disable=C0114</tt></p>
13
+ <p>
14
+ <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
15
+ <tr bgcolor="#aa55cc">
16
+ <td colspan=3 valign=bottom>&nbsp;<br>
17
+ <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
18
+
19
+ <tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
20
+ <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
21
+ </td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
22
+ <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
23
+ <tr bgcolor="#ee77aa">
24
+ <td colspan=3 valign=bottom>&nbsp;<br>
25
+ <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
26
+
27
+ <tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
28
+ <td width="100%"><dl>
29
+ <dt><font face="helvetica, arial"><a href="ai_core_sdk.resource_clients.metrics_client.html#MetricsCoreClient">ai_core_sdk.resource_clients.metrics_client.MetricsCoreClient</a>(<a href="ai_api_client_sdk.resource_clients.metrics_client.html#MetricsClient">ai_api_client_sdk.resource_clients.metrics_client.MetricsClient</a>)
30
+ </font></dt><dd>
31
+ <dl>
32
+ <dt><font face="helvetica, arial"><a href="ai_core_sdk.tracking.tracking.html#Tracking">Tracking</a>
33
+ </font></dt></dl>
34
+ </dd>
35
+ </dl>
36
+ <p>
37
+ <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
38
+ <tr bgcolor="#ffc8d8">
39
+ <td colspan=3 valign=bottom>&nbsp;<br>
40
+ <font color="#000000" face="helvetica, arial"><a name="Tracking">class <strong>Tracking</strong></a>(<a href="ai_core_sdk.resource_clients.metrics_client.html#MetricsCoreClient">ai_core_sdk.resource_clients.metrics_client.MetricsCoreClient</a>)</font></td></tr>
41
+
42
+ <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
43
+ <td colspan=2><tt><a href="#Tracking">Tracking</a>(base_url:&nbsp;str&nbsp;=&nbsp;None,&nbsp;auth_url:&nbsp;str&nbsp;=&nbsp;None,&nbsp;client_id:&nbsp;str&nbsp;=&nbsp;None,&nbsp;client_secret:&nbsp;str&nbsp;=&nbsp;None,&nbsp;cert_str:&nbsp;str&nbsp;=&nbsp;None,&nbsp;key_str:&nbsp;str&nbsp;=&nbsp;None,&nbsp;cert_file_path:&nbsp;str&nbsp;=&nbsp;None,&nbsp;key_file_path:&nbsp;str&nbsp;=&nbsp;None,&nbsp;token_creator:&nbsp;Callable[[],&nbsp;str]&nbsp;=&nbsp;None,&nbsp;resource_group:&nbsp;str&nbsp;=&nbsp;None)<br>
44
+ &nbsp;<br>
45
+ <a href="#Tracking">Tracking</a>&nbsp;is&nbsp;a&nbsp;class&nbsp;implemented&nbsp;for&nbsp;interacting&nbsp;with&nbsp;the&nbsp;metrics&nbsp;related<br>
46
+ endpoints&nbsp;of&nbsp;the&nbsp;server.&nbsp;It&nbsp;is&nbsp;a&nbsp;wrapper&nbsp;around&nbsp;the&nbsp;base&nbsp;class<br>
47
+ :class:`ai_core_sdk.resource_clients.metrics_client.<a href="ai_core_sdk.resource_clients.metrics_client.html#MetricsCoreClient">MetricsCoreClient</a>`<br>
48
+ &nbsp;<br>
49
+ :param&nbsp;base_url:&nbsp;Base&nbsp;URL&nbsp;of&nbsp;the&nbsp;AI&nbsp;Core.&nbsp;Should&nbsp;include&nbsp;the&nbsp;base&nbsp;path&nbsp;as&nbsp;well.&nbsp;(i.e.,&nbsp;"&lt;base_url&gt;/lm/scenarios"<br>
50
+ should&nbsp;work)<br>
51
+ :type&nbsp;base_url:&nbsp;str<br>
52
+ :param&nbsp;auth_url:&nbsp;URL&nbsp;of&nbsp;the&nbsp;authorization&nbsp;endpoint.&nbsp;Should&nbsp;be&nbsp;the&nbsp;full&nbsp;URL&nbsp;(including&nbsp;/oauth/token),&nbsp;defaults&nbsp;to<br>
53
+ &nbsp;&nbsp;&nbsp;&nbsp;None<br>
54
+ :type&nbsp;auth_url:&nbsp;str,&nbsp;optional<br>
55
+ :param&nbsp;client_id:&nbsp;client&nbsp;id&nbsp;to&nbsp;be&nbsp;used&nbsp;for&nbsp;authorization,&nbsp;defaults&nbsp;to&nbsp;None<br>
56
+ :type&nbsp;client_id:&nbsp;str,&nbsp;optional<br>
57
+ :param&nbsp;client_secret:&nbsp;client&nbsp;secret&nbsp;to&nbsp;be&nbsp;used&nbsp;for&nbsp;authorization,&nbsp;defaults&nbsp;to&nbsp;None<br>
58
+ :type&nbsp;client_secret:&nbsp;str,&nbsp;optional<br>
59
+ :param&nbsp;cert_str:&nbsp;certificate&nbsp;file&nbsp;content,&nbsp;needs&nbsp;to&nbsp;be&nbsp;provided&nbsp;alongside&nbsp;the&nbsp;key_str&nbsp;parameter,&nbsp;defaults&nbsp;to&nbsp;None<br>
60
+ :type&nbsp;cert_str:&nbsp;str,&nbsp;optional<br>
61
+ :param&nbsp;key_str:&nbsp;key&nbsp;file&nbsp;content,&nbsp;needs&nbsp;to&nbsp;be&nbsp;provided&nbsp;alongside&nbsp;the&nbsp;cert_str&nbsp;parameter,&nbsp;defaults&nbsp;to&nbsp;None<br>
62
+ :type&nbsp;key_str:&nbsp;str,&nbsp;optional<br>
63
+ :param&nbsp;cert_file_path:&nbsp;path&nbsp;to&nbsp;the&nbsp;certificate&nbsp;file,&nbsp;needs&nbsp;to&nbsp;be&nbsp;provided&nbsp;alongside&nbsp;the&nbsp;key_file_path&nbsp;parameter,<br>
64
+ &nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;None<br>
65
+ :type&nbsp;cert_file_path:&nbsp;str,&nbsp;optional<br>
66
+ :param&nbsp;key_file_path:&nbsp;path&nbsp;to&nbsp;the&nbsp;key&nbsp;file,&nbsp;needs&nbsp;to&nbsp;be&nbsp;provided&nbsp;alongside&nbsp;the&nbsp;cert_file_path&nbsp;parameter,<br>
67
+ &nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;None<br>
68
+ :type&nbsp;key_file_path:&nbsp;str,&nbsp;optional<br>
69
+ :param&nbsp;token_creator:&nbsp;the&nbsp;function&nbsp;which&nbsp;returns&nbsp;the&nbsp;Bearer&nbsp;token,&nbsp;when&nbsp;called.&nbsp;Either&nbsp;this,&nbsp;or<br>
70
+ &nbsp;&nbsp;&nbsp;&nbsp;auth_url&nbsp;&amp;&nbsp;client_id&nbsp;&amp;&nbsp;client_secret&nbsp;should&nbsp;be&nbsp;specified,&nbsp;defaults&nbsp;to&nbsp;None<br>
71
+ :type&nbsp;token_creator:&nbsp;Callable[[],&nbsp;str],&nbsp;optional<br>
72
+ :param&nbsp;resource_group:&nbsp;The&nbsp;default&nbsp;resource&nbsp;group&nbsp;which&nbsp;will&nbsp;be&nbsp;used&nbsp;while&nbsp;sending&nbsp;the&nbsp;requests&nbsp;to&nbsp;the&nbsp;server.&nbsp;If<br>
73
+ &nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;set,&nbsp;the&nbsp;resource_group&nbsp;should&nbsp;be&nbsp;specified&nbsp;with&nbsp;every&nbsp;request&nbsp;to&nbsp;the&nbsp;server,&nbsp;defaults&nbsp;to&nbsp;None<br>
74
+ :type&nbsp;resource_group:&nbsp;str,&nbsp;optional<br>&nbsp;</tt></td></tr>
75
+ <tr><td>&nbsp;</td>
76
+ <td width="100%"><dl><dt>Method resolution order:</dt>
77
+ <dd><a href="ai_core_sdk.tracking.tracking.html#Tracking">Tracking</a></dd>
78
+ <dd><a href="ai_core_sdk.resource_clients.metrics_client.html#MetricsCoreClient">ai_core_sdk.resource_clients.metrics_client.MetricsCoreClient</a></dd>
79
+ <dd><a href="ai_api_client_sdk.resource_clients.metrics_client.html#MetricsClient">ai_api_client_sdk.resource_clients.metrics_client.MetricsClient</a></dd>
80
+ <dd><a href="ai_api_client_sdk.resource_clients.base_client.html#BaseClient">ai_api_client_sdk.resource_clients.base_client.BaseClient</a></dd>
81
+ <dd><a href="builtins.html#object">builtins.object</a></dd>
82
+ </dl>
83
+ <hr>
84
+ Methods defined here:<br>
85
+ <dl><dt><a name="Tracking-__init__"><strong>__init__</strong></a>(self, base_url: str = None, auth_url: str = None, client_id: str = None, client_secret: str = None, cert_str: str = None, key_str: str = None, cert_file_path: str = None, key_file_path: str = None, token_creator: Callable[[], str] = None, resource_group: str = None)</dt><dd><tt>Initialize&nbsp;self.&nbsp;&nbsp;See&nbsp;help(type(self))&nbsp;for&nbsp;accurate&nbsp;signature.</tt></dd></dl>
86
+
87
+ <dl><dt><a name="Tracking-delete"><strong>delete</strong></a>(self, execution_id: str, resource_group: str = None) -&gt; None</dt><dd><tt>Deletes&nbsp;the&nbsp;metrics.<br>
88
+ &nbsp;<br>
89
+ :param&nbsp;execution_id:&nbsp;ID&nbsp;of&nbsp;the&nbsp;execution,&nbsp;of&nbsp;which&nbsp;the&nbsp;metrics&nbsp;should&nbsp;be&nbsp;deleted.<br>
90
+ :type&nbsp;execution_id:&nbsp;str<br>
91
+ :param&nbsp;resource_group:&nbsp;Resource&nbsp;Group&nbsp;which&nbsp;the&nbsp;request&nbsp;should&nbsp;be&nbsp;sent&nbsp;on&nbsp;behalf.&nbsp;Either&nbsp;this&nbsp;or&nbsp;a&nbsp;default<br>
92
+ &nbsp;&nbsp;&nbsp;&nbsp;resource&nbsp;group&nbsp;in&nbsp;the&nbsp;:class:`ai_api_client_sdk.ai_api_v2_client.AIAPIV2Client`&nbsp;should&nbsp;be&nbsp;specified,<br>
93
+ &nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;None<br>
94
+ :type&nbsp;resource_group:&nbsp;str<br>
95
+ :raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIInvalidRequestException`&nbsp;if&nbsp;a&nbsp;400&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
96
+ &nbsp;&nbsp;&nbsp;&nbsp;server<br>
97
+ :raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIAuthorizationException`&nbsp;if&nbsp;a&nbsp;401&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
98
+ &nbsp;&nbsp;&nbsp;&nbsp;server<br>
99
+ :raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPINotFoundException`&nbsp;if&nbsp;a&nbsp;404&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
100
+ &nbsp;&nbsp;&nbsp;&nbsp;server<br>
101
+ :raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIServerException`&nbsp;if&nbsp;a&nbsp;non-2XX&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
102
+ &nbsp;&nbsp;&nbsp;&nbsp;server</tt></dd></dl>
103
+
104
+ <dl><dt><a name="Tracking-log_metrics"><strong>log_metrics</strong></a>(self, metrics: List[ai_api_client_sdk.models.metric.Metric], execution_id: str = '', artifact_name: str = None, resource_group: str = None) -&gt; None</dt><dd><tt>Creates&nbsp;or&nbsp;updates&nbsp;the&nbsp;metrics&nbsp;for&nbsp;an&nbsp;execution.<br>
105
+ &nbsp;<br>
106
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;metrics:&nbsp;List&nbsp;of&nbsp;the&nbsp;metrics&nbsp;related&nbsp;to&nbsp;the&nbsp;execution,<br>
107
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;metrics:&nbsp;List[class:`ai_api_client_sdk.metric.Metric`]<br>
108
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;execution_id:&nbsp;ID&nbsp;of&nbsp;the&nbsp;execution,&nbsp;of&nbsp;which&nbsp;the&nbsp;metrics&nbsp;should&nbsp;be&nbsp;modified.<br>
109
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;execution_id:&nbsp;str<br>
110
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;artifact_name:&nbsp;Name&nbsp;of&nbsp;the&nbsp;artifact&nbsp;to&nbsp;associate&nbsp;with&nbsp;a&nbsp;metric,&nbsp;defaults&nbsp;to&nbsp;None<br>
111
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;artifact_name:&nbsp;str<br>
112
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;resource_group:&nbsp;Resource&nbsp;Group&nbsp;which&nbsp;the&nbsp;request&nbsp;should&nbsp;be&nbsp;sent&nbsp;on&nbsp;behalf.&nbsp;Either&nbsp;this&nbsp;or&nbsp;a&nbsp;default<br>
113
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource&nbsp;group&nbsp;in&nbsp;the&nbsp;:class:`ai_api_client_sdk.ai_api_v2_client.AIAPIV2Client`&nbsp;should&nbsp;be&nbsp;specified,<br>
114
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;None<br>
115
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;resource_group:&nbsp;str<br>
116
+ &nbsp;&nbsp;&nbsp;&nbsp;:raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIInvalidRequestException`&nbsp;if&nbsp;a&nbsp;400&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
117
+ server<br>
118
+ &nbsp;&nbsp;&nbsp;&nbsp;:raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIServerException`&nbsp;if&nbsp;a&nbsp;non-2XX&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
119
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server</tt></dd></dl>
120
+
121
+ <dl><dt><a name="Tracking-modify"><strong>modify</strong></a>(self, execution_id: str = '', metrics: List[ai_api_client_sdk.models.metric.Metric] = None, tags: List[ai_api_client_sdk.models.metric_tag.MetricTag] = None, custom_info: List[ai_api_client_sdk.models.metric_custom_info.MetricCustomInfo] = None, resource_group: str = None) -&gt; None</dt><dd><tt>Creates&nbsp;or&nbsp;updates&nbsp;the&nbsp;metrics&nbsp;for&nbsp;an&nbsp;execution.<br>
122
+ &nbsp;<br>
123
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;execution_id:&nbsp;ID&nbsp;of&nbsp;the&nbsp;execution,&nbsp;of&nbsp;which&nbsp;the&nbsp;metrics&nbsp;should&nbsp;be&nbsp;modified.<br>
124
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;execution_id:&nbsp;str<br>
125
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;metrics:&nbsp;List&nbsp;of&nbsp;the&nbsp;metrics&nbsp;related&nbsp;to&nbsp;the&nbsp;execution,&nbsp;defaults&nbsp;to&nbsp;None<br>
126
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;metrics:&nbsp;List[class:`ai_api_client_sdk.metric.Metric`],&nbsp;optional<br>
127
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;tags:&nbsp;List&nbsp;of&nbsp;the&nbsp;tags&nbsp;related&nbsp;to&nbsp;the&nbsp;execution,&nbsp;defaults&nbsp;to&nbsp;None<br>
128
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;tags:&nbsp;List[class:'ai_api_client_sdk.models.metric_tag.MetricTag'],&nbsp;optional<br>
129
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;custom_info:&nbsp;List&nbsp;of&nbsp;custom&nbsp;info&nbsp;related&nbsp;to&nbsp;the&nbsp;execution,&nbsp;defaults&nbsp;to&nbsp;None<br>
130
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;custom_info:&nbsp;List[class:`ai_api_client_sdk.models.metric_custom_info.MetricCustomInfo`],&nbsp;optional<br>
131
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;resource_group:&nbsp;Resource&nbsp;Group&nbsp;which&nbsp;the&nbsp;request&nbsp;should&nbsp;be&nbsp;sent&nbsp;on&nbsp;behalf.&nbsp;Either&nbsp;this&nbsp;or&nbsp;a&nbsp;default<br>
132
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource&nbsp;group&nbsp;in&nbsp;the&nbsp;:class:`ai_api_client_sdk.ai_api_v2_client.AIAPIV2Client`&nbsp;should&nbsp;be&nbsp;specified,<br>
133
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;None<br>
134
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;resource_group:&nbsp;str<br>
135
+ &nbsp;&nbsp;&nbsp;&nbsp;:raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIInvalidRequestException`&nbsp;if&nbsp;a&nbsp;400&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
136
+ server<br>
137
+ &nbsp;&nbsp;&nbsp;&nbsp;:raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIServerException`&nbsp;if&nbsp;a&nbsp;non-2XX&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
138
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server</tt></dd></dl>
139
+
140
+ <dl><dt><a name="Tracking-query"><strong>query</strong></a>(self, filter: str = None, execution_ids: List[str] = None, select: List[str] = None, resource_group: str = None) -&gt; ai_api_client_sdk.models.metrics_query_response.MetricsQueryResponse</dt><dd><tt>Creates&nbsp;or&nbsp;updates&nbsp;the&nbsp;metrics&nbsp;for&nbsp;an&nbsp;execution.<br>
141
+ &nbsp;<br>
142
+ :param&nbsp;filter:&nbsp;Deprecated.&nbsp;Use&nbsp;parameter&nbsp;execution_ids&nbsp;instead.&nbsp;A&nbsp;filter&nbsp;expression&nbsp;that&nbsp;filters&nbsp;the&nbsp;metric<br>
143
+ &nbsp;&nbsp;&nbsp;&nbsp;resources&nbsp;using&nbsp;execution&nbsp;IDs.&nbsp;User&nbsp;can&nbsp;only&nbsp;use&nbsp;in,&nbsp;eq&nbsp;operators&nbsp;in&nbsp;filter&nbsp;expression,&nbsp;defaults&nbsp;to&nbsp;None<br>
144
+ :type&nbsp;filter:&nbsp;str,&nbsp;optional<br>
145
+ :param&nbsp;execution_ids:&nbsp;IDs&nbsp;of&nbsp;the&nbsp;executions,&nbsp;of&nbsp;which&nbsp;the&nbsp;metrics&nbsp;should&nbsp;be&nbsp;retrieved,&nbsp;defaults&nbsp;to&nbsp;None<br>
146
+ :type&nbsp;execution_ids:&nbsp;List[str],&nbsp;optional<br>
147
+ :param&nbsp;select:&nbsp;Values&nbsp;of&nbsp;select&nbsp;can&nbsp;be&nbsp;metrics,tags,customInfo&nbsp;or&nbsp;any&nbsp;of&nbsp;the&nbsp;combinations&nbsp;of&nbsp;these&nbsp;or&nbsp;*.<br>
148
+ &nbsp;&nbsp;&nbsp;&nbsp;Can&nbsp;be&nbsp;used&nbsp;to&nbsp;select(project)&nbsp;only&nbsp;the&nbsp;resources&nbsp;specified<br>
149
+ :type&nbsp;select:&nbsp;List[str],&nbsp;optional<br>
150
+ :param&nbsp;resource_group:&nbsp;Resource&nbsp;Group&nbsp;which&nbsp;the&nbsp;request&nbsp;should&nbsp;be&nbsp;sent&nbsp;on&nbsp;behalf.&nbsp;Either&nbsp;this&nbsp;or&nbsp;a&nbsp;default<br>
151
+ &nbsp;&nbsp;&nbsp;&nbsp;resource&nbsp;group&nbsp;in&nbsp;the&nbsp;:class:`ai_api_client_sdk.ai_api_v2_client.AIAPIV2Client`&nbsp;should&nbsp;be&nbsp;specified,<br>
152
+ &nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;None<br>
153
+ :type&nbsp;resource_group:&nbsp;str<br>
154
+ :raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIInvalidRequestException`&nbsp;if&nbsp;a&nbsp;400&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
155
+ &nbsp;&nbsp;&nbsp;&nbsp;server<br>
156
+ :raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIAuthorizationException`&nbsp;if&nbsp;a&nbsp;401&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
157
+ &nbsp;&nbsp;&nbsp;&nbsp;server<br>
158
+ :raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIServerException`&nbsp;if&nbsp;a&nbsp;non-2XX&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
159
+ &nbsp;&nbsp;&nbsp;&nbsp;server<br>
160
+ :return:&nbsp;An&nbsp;object&nbsp;representing&nbsp;the&nbsp;response&nbsp;from&nbsp;the&nbsp;server<br>
161
+ :rtype:&nbsp;class:`ai_api_client_sdk.models.metrics_query_response.MetricsQueryResponse`</tt></dd></dl>
162
+
163
+ <dl><dt><a name="Tracking-set_custom_info"><strong>set_custom_info</strong></a>(self, custom_info: List[ai_api_client_sdk.models.metric_custom_info.MetricCustomInfo], execution_id: str = '', resource_group: str = None) -&gt; None</dt><dd><tt>log&nbsp;custom&nbsp;info&nbsp;against&nbsp;the&nbsp;given&nbsp;execution<br>
164
+ &nbsp;&nbsp;&nbsp;&nbsp;captures&nbsp;consumption&nbsp;semantics&nbsp;for&nbsp;the&nbsp;metrics&nbsp;or&nbsp;complex&nbsp;metric&nbsp;in&nbsp;JSON&nbsp;format.<br>
165
+ &nbsp;<br>
166
+ &nbsp;<br>
167
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;custom_info:&nbsp;List&nbsp;of&nbsp;custom&nbsp;info&nbsp;related&nbsp;to&nbsp;the&nbsp;execution<br>
168
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;custom_info:&nbsp;List[class:`ai_api_client_sdk.models.metric_custom_info.MetricCustomInfo`],&nbsp;optional<br>
169
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;execution_id:&nbsp;ID&nbsp;of&nbsp;the&nbsp;execution,&nbsp;of&nbsp;which&nbsp;the&nbsp;metrics&nbsp;should&nbsp;be&nbsp;modified.<br>
170
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;execution_id:&nbsp;str<br>
171
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;resource_group:&nbsp;Resource&nbsp;Group&nbsp;which&nbsp;the&nbsp;request&nbsp;should&nbsp;be&nbsp;sent&nbsp;on&nbsp;behalf.&nbsp;Either&nbsp;this&nbsp;or&nbsp;a&nbsp;default<br>
172
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource&nbsp;group&nbsp;in&nbsp;the&nbsp;:class:`ai_api_client_sdk.ai_api_v2_client.AIAPIV2Client`&nbsp;should&nbsp;be&nbsp;specified,<br>
173
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;None<br>
174
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;resource_group:&nbsp;str<br>
175
+ &nbsp;&nbsp;&nbsp;&nbsp;:raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIInvalidRequestException`&nbsp;if&nbsp;a&nbsp;400&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
176
+ server<br>
177
+ &nbsp;&nbsp;&nbsp;&nbsp;:raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIServerException`&nbsp;if&nbsp;a&nbsp;non-2XX&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
178
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server</tt></dd></dl>
179
+
180
+ <dl><dt><a name="Tracking-set_tags"><strong>set_tags</strong></a>(self, tags: List[ai_api_client_sdk.models.metric_tag.MetricTag], execution_id: str = '', resource_group: str = None) -&gt; None</dt><dd><tt>log&nbsp;tags&nbsp;against&nbsp;the&nbsp;given&nbsp;execution<br>
181
+ &nbsp;<br>
182
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;tags:&nbsp;List&nbsp;of&nbsp;the&nbsp;tags&nbsp;related&nbsp;to&nbsp;the&nbsp;execution,&nbsp;defaults&nbsp;to&nbsp;None<br>
183
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;tags:&nbsp;List[class:'ai_api_client_sdk.models.metric_tag.MetricTag']<br>
184
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;execution_id:&nbsp;ID&nbsp;of&nbsp;the&nbsp;execution,&nbsp;of&nbsp;which&nbsp;the&nbsp;metrics&nbsp;should&nbsp;be&nbsp;modified.<br>
185
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;execution_id:&nbsp;str<br>
186
+ &nbsp;&nbsp;&nbsp;&nbsp;:param&nbsp;resource_group:&nbsp;Resource&nbsp;Group&nbsp;which&nbsp;the&nbsp;request&nbsp;should&nbsp;be&nbsp;sent&nbsp;on&nbsp;behalf.&nbsp;Either&nbsp;this&nbsp;or&nbsp;a&nbsp;default<br>
187
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource&nbsp;group&nbsp;in&nbsp;the&nbsp;:class:`ai_api_client_sdk.ai_api_v2_client.AIAPIV2Client`&nbsp;should&nbsp;be&nbsp;specified,<br>
188
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;to&nbsp;None<br>
189
+ &nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;resource_group:&nbsp;str<br>
190
+ &nbsp;&nbsp;&nbsp;&nbsp;:raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIInvalidRequestException`&nbsp;if&nbsp;a&nbsp;400&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
191
+ server<br>
192
+ &nbsp;&nbsp;&nbsp;&nbsp;:raises:&nbsp;class:`ai_api_client_sdk.exception.AIAPIServerException`&nbsp;if&nbsp;a&nbsp;non-2XX&nbsp;response&nbsp;is&nbsp;received&nbsp;from&nbsp;the<br>
193
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server</tt></dd></dl>
194
+
195
+ <hr>
196
+ Methods inherited from <a href="ai_api_client_sdk.resource_clients.base_client.html#BaseClient">ai_api_client_sdk.resource_clients.base_client.BaseClient</a>:<br>
197
+ <dl><dt><a name="Tracking-bulk_modify"><strong>bulk_modify</strong></a>(self, *args, **kwargs)</dt><dd><tt>Modifies&nbsp;multiple&nbsp;instances&nbsp;of&nbsp;the&nbsp;relevant&nbsp;resource.&nbsp;Will&nbsp;be&nbsp;implemented&nbsp;by&nbsp;the&nbsp;respective&nbsp;resource&nbsp;clients</tt></dd></dl>
198
+
199
+ <dl><dt><a name="Tracking-count"><strong>count</strong></a>(self, *args, **kwargs)</dt><dd><tt>Counts&nbsp;the&nbsp;relevant&nbsp;resources.&nbsp;Will&nbsp;be&nbsp;implemented&nbsp;by&nbsp;the&nbsp;respective&nbsp;resource&nbsp;clients</tt></dd></dl>
200
+
201
+ <dl><dt><a name="Tracking-create"><strong>create</strong></a>(self, *args, **kwargs)</dt><dd><tt>Creates&nbsp;the&nbsp;relevant&nbsp;resource.&nbsp;Will&nbsp;be&nbsp;implemented&nbsp;by&nbsp;the&nbsp;respective&nbsp;resource&nbsp;clients</tt></dd></dl>
202
+
203
+ <dl><dt><a name="Tracking-get"><strong>get</strong></a>(self, *args, **kwargs)</dt><dd><tt>Retrieves&nbsp;the&nbsp;relevant&nbsp;resource.&nbsp;Will&nbsp;be&nbsp;implemented&nbsp;by&nbsp;the&nbsp;respective&nbsp;resource&nbsp;clients</tt></dd></dl>
204
+
205
+ <dl><dt><a name="Tracking-query_logs"><strong>query_logs</strong></a>(self, *args, **kwargs)</dt><dd><tt>Queries&nbsp;the&nbsp;relevant&nbsp;logs.&nbsp;Will&nbsp;be&nbsp;implemented&nbsp;by&nbsp;the&nbsp;respective&nbsp;resource&nbsp;clients</tt></dd></dl>
206
+
207
+ <hr>
208
+ Data descriptors inherited from <a href="ai_api_client_sdk.resource_clients.base_client.html#BaseClient">ai_api_client_sdk.resource_clients.base_client.BaseClient</a>:<br>
209
+ <dl><dt><strong>__dict__</strong></dt>
210
+ <dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
211
+ </dl>
212
+ <dl><dt><strong>__weakref__</strong></dt>
213
+ <dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
214
+ </dl>
215
+ </td></tr></table></td></tr></table><p>
216
+ <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
217
+ <tr bgcolor="#55aa55">
218
+ <td colspan=3 valign=bottom>&nbsp;<br>
219
+ <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
220
+
221
+ <tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
222
+ <td width="100%"><strong>Callable</strong> = typing.Callable<br>
223
+ <strong>List</strong> = typing.List</td></tr></table>
224
+ </body></html>
@@ -0,0 +1,253 @@
1
+ Metadata-Version: 2.1
2
+ Name: sap-ai-sdk-core
3
+ Version: 3.0.8
4
+ Summary: SAP Cloud SDK for AI (Python): Core SDK
5
+ Home-page: https://www.sap.com/
6
+ Author: SAP SE
7
+ License: SAP DEVELOPER LICENSE AGREEMENT
8
+ Download-URL: https://pypi.python.org/pypi/ai-core-sdk
9
+ Keywords: SAP AI Core,SAP AI Core API
10
+ Platform: Windows
11
+ Platform: Linux
12
+ Platform: Mac OS-X
13
+ Platform: Unix
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: License :: Other/Proprietary License
16
+ Classifier: Operating System :: MacOS :: MacOS X
17
+ Classifier: Operating System :: Microsoft :: Windows
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Intended Audience :: Developers
20
+ Classifier: Programming Language :: Python
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.9
23
+ Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
+ Requires-Python: >=3.9
28
+ Description-Content-Type: text/markdown
29
+ Requires-Dist: sap-ai-sdk-base (==3.1.3)
30
+ Requires-Dist: click (>=8.1.7)
31
+
32
+ # SAP Cloud SDK for AI (Python): Core SDK
33
+ The SDK formerly known as *AI Core SDK* was rebranded.
34
+
35
+ The class names have not changed i.e., you can continue to use existing code.
36
+
37
+ The SAP AI Core SDK can be used to interact with SAP AI Core.
38
+ It provides access to all public lifecycle and administration APIs.
39
+
40
+ For example:
41
+
42
+ * You can execute pipelines as a batch job to preprocess or train your models, or perform batch inference.
43
+
44
+ * You can deploy а trained machine learning model as a web service to serve inference requests with high performance.
45
+
46
+ * You can register your own Docker registry, synchronize your AI content from your own git repository, and register your own object store for training data and trained models.
47
+
48
+ * You can log metrics within a workflow execution using the SDK. You can use the same code for tracking metrics in both your local environment and in the workflow execution (production).
49
+
50
+ > **Notes**
51
+ >
52
+ > - Executing online inference is not part of Core SDK.
53
+ >
54
+ > - Metrics persistence is not currently available in your local environment using the SDK. However, it is available in your productive workflow execution.
55
+ >
56
+ > - *Content packages* for AICore are no longer supported.
57
+ >
58
+ ## Example Usage
59
+
60
+ Here are a few examples how to use this SDK.
61
+ For details on the methods, please refer to the [API documentation](https://api.sap.com/api/AI_CORE_API/resource/Scenario).
62
+
63
+ ### Import Definitions
64
+
65
+ ```python
66
+ from ai_core_sdk.ai_core_v2_client import AICoreV2Client
67
+ ```
68
+
69
+ ## Create Client
70
+
71
+ The SDK requires credentials from your tenant's subaccount Service Key:
72
+ ```python
73
+ client = AICoreV2Client(base_url=AI_API_BASE,
74
+ auth_url=AUTH_URL,
75
+ client_id=CLIENT_ID,
76
+ client_secret=CLIENT_SECRET,
77
+ resource_group=resource_group_id)
78
+ ```
79
+ (For persistent client configuration see below.)
80
+
81
+ ### Create New Resource Group
82
+
83
+ ```python
84
+ resource_group_create = client.resource_groups.create(resource_group_id=resource_group_id)
85
+ print(resource_group_create.resource_group_id)
86
+ resource_group_details = client.resource_groups.get(resource_group_id=resource_group_id)
87
+ print(f"{resource_group_details.status_message} \n{resource_group_details.resource_group_id}")
88
+ ```
89
+
90
+ ### Create Object Store Secret
91
+
92
+ ```python
93
+ # access key and secret are assumed to reside in environment variables OSS_KEY and OSS_SECRET
94
+ object_store_secret_create = client.object_store_secrets.create(
95
+ name="default",
96
+ type="S3",
97
+ bucket="<your S3 bucket>",
98
+ endpoint="<your S3 host>",
99
+ path_prefix="<your path prefix in S3>", region="<your S3 region>",
100
+ data={"AWS_ACCESS_KEY_ID": os.environ.get("OSS_KEY"),
101
+ "AWS_SECRET_ACCESS_KEY": os.environ.get("OSS_SECRET")})
102
+
103
+ secret_get = client.object_store_secrets.get(name="default")
104
+ print(f"{secret_get.metadata}")
105
+ ```
106
+
107
+ ### List Scenarios
108
+
109
+ ```python
110
+ scenarios = client.scenario.query()
111
+ for scenario in scenarios.resources:
112
+ print(f"{scenario.name} {scenario.id}")
113
+ ```
114
+ ## Client Configuration
115
+
116
+ There are different options to persist the client credentials
117
+ (in this order of precedence):
118
+ - in code via keyword arguments (see above),
119
+ - environment variables,
120
+ - profile configuration file.
121
+ - from VCAP_SERVICES environment variable, if exists
122
+
123
+ A **profile** is a json file residing in a config directory,
124
+ which can be set via environment variable `AICORE_HOME` (the default being `~/.aicore/config.json`).
125
+
126
+ The command `ai-core-sdk configure --help` can be used to generate a profile.
127
+
128
+ With profile names one can switch easily between profiles e.g., for different (sub)accounts.
129
+ The profile name can be passed also as a keyword. If no profile is specified, the default profile is used.
130
+
131
+ ## Tracking
132
+
133
+ The tracking module of the SAP AI Core SDK can be used to log metrics in both your local environment, and productive workflow executions. Metrics persistence is currently available in your productive environment.
134
+
135
+ Here are a few code samples demonstrating how to use the SDK for metrics tracking.
136
+
137
+
138
+ ### Modify Metrics
139
+
140
+ ```
141
+ from ai_core_sdk.tracking import Tracking
142
+
143
+ from ai_core_sdk.models import Metric, MetricTag, MetricCustomInfo
144
+
145
+ tracking_client = Tracking()
146
+
147
+ tracking_client.modify(
148
+ tags = [
149
+ # list
150
+ MetricTag(name="Our Team Tag", value="Tutorial Team"),
151
+ MetricTag(name="Stage", value="Development")
152
+ ],
153
+ metrics = [
154
+ Metric(
155
+ name="Training Loss",
156
+ value=np.finfo(np.float64).max,
157
+ timestamp= datetime.now().utcnow(),
158
+ step = 1, # denotes epoch 1
159
+ labels = []
160
+ )
161
+ ],
162
+ custom_info = [
163
+ # list of Custom Information
164
+ MetricCustomInfo(
165
+ name = "My Classification Report",
166
+ # you may convert anything to string and store it
167
+ value = str('''{
168
+ "Cats": {
169
+ "Precision": 75,
170
+ "Recall": 74
171
+ },
172
+ "Dogs": {
173
+ "Precision": 85,
174
+ "Recall": 84
175
+ }
176
+ }''')
177
+ )
178
+ ]
179
+ )
180
+
181
+ ```
182
+
183
+ ### Log Metrics
184
+
185
+ ```
186
+ tracking_client.log_metrics(
187
+ metrics = [
188
+ Metric(
189
+ name="Training Loss",
190
+ value=float(86.99),
191
+ timestamp= datetime.now().utcnow(),
192
+ step = 1, # denotes epoch 1
193
+ labels = []
194
+ ),
195
+ ],
196
+ )
197
+
198
+ ```
199
+
200
+ ### Set Tags
201
+
202
+ ```
203
+ tracking_client.set_tags(
204
+ tags = [
205
+ # list
206
+ MetricTag(name="Our Team Tag", value="Tutorial Team"),
207
+ MetricTag(name="Stage", value="Development")
208
+ ]
209
+ )
210
+
211
+ ```
212
+
213
+ ### Set Custom Info
214
+
215
+ ```
216
+ tracking_client.set_custom_info(
217
+ custom_info = [
218
+ # list of Custom Information
219
+ MetricCustomInfo(
220
+ name = "My Classification Report",
221
+ # you may convert anything to string and store it
222
+ value = str('''
223
+ {
224
+ "Cats": {
225
+ "Precision": 75,
226
+ "Recall": 74
227
+ },
228
+ "Dogs": {
229
+ "Precision": 85,
230
+ "Recall": 84
231
+ }
232
+ }
233
+ '''
234
+ )
235
+ ),
236
+ ]
237
+ )
238
+
239
+ ```
240
+ ### Query Metrics
241
+
242
+ ```
243
+ metrics_response = tracking_client.query(execution_ids = [
244
+ "test_execution_id" # Change this with the training execution id
245
+ ])
246
+ ```
247
+
248
+ ### Delete Metrics
249
+
250
+ ```
251
+ metrics_response = tracking_client.delete(execution_id = "test_execution_id") # Change this with the actual execution id
252
+ ```
253
+
@@ -0,0 +1,84 @@
1
+ ai_core_sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ ai_core_sdk/ai_core_v2_client.py,sha256=SUig4NcwHkDSGLctZX5z-opWlIzOF74qVAZGIdrzOsQ,9128
3
+ ai_core_sdk/cli.py,sha256=ZXwhRs18Y91hDcfZ6obHYIdSJ25FJDMT5zxMlfjKF3I,7158
4
+ ai_core_sdk/credentials.py,sha256=BXDI7HBtlWrzVGDiy4hGl_fRK37mL26JUEx8pK3qN3k,7544
5
+ ai_core_sdk/exception.py,sha256=e2sVacNgjKjK0QH4AIINDZj4wT-6Hn8NK5y5LBwgkF4,425
6
+ ai_core_sdk/helpers/__init__.py,sha256=5W9oFpnlhtjSJ5G4ThqpnDnWT7SQUnRXaShRbPT6_bU,1144
7
+ ai_core_sdk/helpers/constants.py,sha256=I-7_xGhgL0Zf5JSCY7uWHzTfi62vy8XhSJc858797-o,509
8
+ ai_core_sdk/helpers/logging.py,sha256=bWtnB63bjVe1O4vlHheqFMXYCjWOeBLv7Hj9mbxJ94I,707
9
+ ai_core_sdk/models/__init__.py,sha256=IcxpP3DBOKYHhcl57JmGFXn9PpdpvHvat0_jECYFob8,1701
10
+ ai_core_sdk/models/application.py,sha256=OfnU3XANs204arLcYvUcYPpwhSbPHakmEWqwTkYvCOE,1333
11
+ ai_core_sdk/models/application_query_response.py,sha256=KfUVaF2DEhQSrUdWA6cLfiX1OBdK_0INkk_PuyLnU8U,1496
12
+ ai_core_sdk/models/application_resource_sync_status.py,sha256=f9eHYPatZdTNEQToRDKsMxbM95JZYFpwgD0sQ-OhJ9E,1451
13
+ ai_core_sdk/models/application_source.py,sha256=m-f58jvIaOVNOSshQQQFmW509YCbEt3PmeTnKNz_H6Q,1434
14
+ ai_core_sdk/models/application_status.py,sha256=fdeiSNSjd1uKHaK3e2M8IRckwZm1JMRnDmbrIx228BA,3728
15
+ ai_core_sdk/models/base_models.py,sha256=6n1_99MRp5Hwuai1JH5a31r-UBqp3YIlVE_XNmtwgvs,2099
16
+ ai_core_sdk/models/docker_registry_secret.py,sha256=Ca6nhBSgWTOMUQQRQkcEhXo34D8rCez-J2ezxBxKphg,998
17
+ ai_core_sdk/models/docker_registry_secret_query_response.py,sha256=dr_v5y-c5iFTJyYiKRtVvAp2EOvskJpNgFmO83knDLs,1652
18
+ ai_core_sdk/models/kpi.py,sha256=spAZNy_RYPvTUJrDssKvp_v3rtwcZtdafiCdHBfT4FM,838
19
+ ai_core_sdk/models/object_store_secret.py,sha256=C5JLrnWoxDYPdk9gQdE8JVgpyJicG70gxomZ2nwcqro,1414
20
+ ai_core_sdk/models/object_store_secret_query_response.py,sha256=4mvtxwNbeAYQ2U-P3pS3yvW2s3KCxvAkJ_YDsHESvBw,1605
21
+ ai_core_sdk/models/repository.py,sha256=TPpf5SbNgC3FFPzZk-FyFB_ACx5CBj9zvAxLaUJ6aEo,1413
22
+ ai_core_sdk/models/repository_query_response.py,sha256=BijkUZUjZLrReOJmgPbTJ3APE7-1cMik93sZqgyobZw,1488
23
+ ai_core_sdk/models/repository_status.py,sha256=zBJGjKWlTRQWesEd_JWI03WQOzNUHDsS73XBwfouERw,233
24
+ ai_core_sdk/models/resource_group.py,sha256=LFhwDN6XPzuTcoBJgXThi18W7IXyW8zgZVrmKuuo_y4,2271
25
+ ai_core_sdk/models/resource_group_query_response.py,sha256=tFq3RQ0inhXHdSnpKANlQOHdTmGsSxEuevA2Do9_iQg,1573
26
+ ai_core_sdk/models/resource_group_status.py,sha256=kYGyTY3r_VgfUAKdniOy_atRAPO2ybU102OfCDRcqbM,249
27
+ ai_core_sdk/models/secret.py,sha256=1UYSJdF86dLwLslqQU6TXWYpHXwwDFSSbmhc_go8HFI,984
28
+ ai_core_sdk/models/secret_query_response.py,sha256=BZgcJ7v_2w2y8a1cuvkagU9cLDBQ9hYI1gxcDuM0S00,1415
29
+ ai_core_sdk/resource_clients/__init__.py,sha256=TuWwBvCS7XuqHVdFMoKsk3CtXg92LvVORojEn0X9WUg,989
30
+ ai_core_sdk/resource_clients/applications_client.py,sha256=EQy7yxYe2AyRrD8dc9Qe7AHI8hZX8OxSc88BVgtFme4,9388
31
+ ai_core_sdk/resource_clients/docker_registry_secrets_client.py,sha256=nH6Vh3B6Gx3MhG0ogYYleVkM4Unxl0OaLlGai2MyNq0,6518
32
+ ai_core_sdk/resource_clients/internal_rest_client.py,sha256=yya_SpNRinnfmto5rPF4DwZpx_7tPMxZlq2mXKBs_G0,1817
33
+ ai_core_sdk/resource_clients/kpi_client.py,sha256=ubFUrC83u5lzMHQX_85zL1QkiqkdmBiXRTzRS3Ah3v4,1155
34
+ ai_core_sdk/resource_clients/metrics_client.py,sha256=dUDWTlqXrqmcyyILk6mncjjogvYNLQtbFCPnS3MBzrI,7450
35
+ ai_core_sdk/resource_clients/object_store_secrets_client.py,sha256=XbUTWWrmJrplMhxta48o22fEzQge0Ca45ThuUYfZK9w,10835
36
+ ai_core_sdk/resource_clients/repositories_client.py,sha256=7xp9POdHEcoa_SbfZ4_08zGjKoLxO9UCj8yz6ulvM5A,6170
37
+ ai_core_sdk/resource_clients/secrets_client.py,sha256=ysOsmmue1n1ZoL8rnL9H7YqDY8nZKmfbLO1yAbCWzVU,8012
38
+ ai_core_sdk/tracking/__init__.py,sha256=2RXIEfNyAwgd6uPLkDaTyvvPVKwMMuM4F2Pk3l4gjf0,75
39
+ ai_core_sdk/tracking/tracking.py,sha256=9GfJ3wTpcDUuBJRlo0ZEeL7B24MNo8dixrUVZaICAeY,13352
40
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.ai_core_v2_client.html,sha256=_9WksC93wPi7qKKIdeZsr7eBLYkghcF6EY4Vv6XT3lE,10792
41
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.cli.html,sha256=YpwAyqynkjUQTa_Tz4uyrfNSsjDaOeqTDw3GJo3DOtY,5298
42
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.credentials.html,sha256=gkHKa56tyfSbIKfDvwGZqS93thnPbDuzpZGPysDvKRw,14232
43
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.exception.html,sha256=M1Ho12N2uGuwuwJJ7aRH8lxayKuaD9ZV5CajHFXM3is,9856
44
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.helpers.constants.html,sha256=tlrfftGPlN9RQWnypWviTWJ370-tsq3bHFS1v4V4LDM,4951
45
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.helpers.html,sha256=HRhJxDZynSbRfy2GGAz2RbBq_a2AsxpEP_rWkkX3UCo,3765
46
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.helpers.logging.html,sha256=_wL0CVBhU4s2PWenlXDQpBImwEFE6o90Q1wWzBk466M,2706
47
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.html,sha256=X2v8eSgx2fwSnnD3nNOFhcPh17zGEOJ918NNrKpV-fk,1953
48
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application.html,sha256=V-8-4pB0HIqrhNkIvC9sgBZvLO_2re1ldov8hHlSVOo,4903
49
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application_query_response.html,sha256=1MxDiHciDTCi26HKW6vOT0O09XfGb2a6ArtoT9_Mlu4,6107
50
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application_resource_sync_status.html,sha256=1PfCNS5L6WxqT6wZ1HAtf1hwaKVZJ-knWZ00Y6zTAgc,5415
51
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application_source.html,sha256=8yPUdrL7F6sPdKy9c4riIqXDpD9d8Tn31VATyNujfi4,5137
52
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.application_status.html,sha256=iuA-YdqC45lVe2OCDAHeRoHpnl-9ln-_Q2UDtSqn1NA,6929
53
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.base_models.html,sha256=jEiLIvbedbujQ-mV2Rtlj4CGyAO-hpSbSqh-re5zL-o,7566
54
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.docker_registry_secret.html,sha256=fPo-lf-P_XihNIsKYqi8nqZY4khP5lrPNLtHGTvURoE,5716
55
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.docker_registry_secret_query_response.html,sha256=rv_6DlbIVv-I125S1M1t4i1nBYg4NIwDMofgiE5KVS8,6459
56
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.html,sha256=fHsegf0NuhWMXkSxB5kFiraZqVlJYAW4D0jA5rhQxrg,3047
57
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.kpi.html,sha256=dFr8vFPwGnC2AVNE3Gg9EmqLEyXNpJUw1kWU3IpViF8,4367
58
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.object_store_secret.html,sha256=x-QDRmI0p1CH7VyQrY4o--9VTIBJrli2C_RxR8JvtMU,4679
59
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.object_store_secret_query_response.html,sha256=7P8QoHCa1IC_8X46qWNhiFYs2N3Gj6mbM7jo9wUQeik,6368
60
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.repository.html,sha256=VfZHXukn5TBgORsgN9XL-wK8nFRwLuAUhZUs6BNF25M,4905
61
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.repository_query_response.html,sha256=tPcNHK1c_ydLYUXxp5q_4lb4OUfdEWdmU4PpVBp5RyU,6081
62
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.repository_status.html,sha256=lCUdZKvJHfQaglnApomMRGI_-4Fe1wj75_sR9Vodt7c,3886
63
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.resource_group.html,sha256=nIH4K-dohlRYO0I0UKAARh1S3zeKJB3DGN0u1Pa0LVM,5956
64
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.resource_group_query_response.html,sha256=oieUDeBL1Egbbykd-pAN6ygdAuCKPHDNebnblDQOz5Y,6157
65
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.resource_group_status.html,sha256=-XiGblbXr-9aqwXLsWtRwFf5lp5fm3z5668eHRWfduk,3967
66
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.secret.html,sha256=sGDFIqg5K_6lwZlVCVPjiLx88X2uRRBcxfKHV6GMUnw,4610
67
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.models.secret_query_response.html,sha256=TufIaAicLf3u3Ne6-zQq-z6oD8E6p3vDC3W4bEiY8Iw,5936
68
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.applications_client.html,sha256=yCpqBwCaytmQEuwxnbygjZ5oauY3th4Uan2RNEd104Q,15434
69
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.docker_registry_secrets_client.html,sha256=FLmw1p-FNiEr2t3B6pTI4ntFZl7qsTT37SpP1Dq3Fp8,12911
70
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.html,sha256=ymfcqgY_Zyo3RhSRkw9QAb7w4i8opdtYHT3KMQKrTw4,2241
71
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.internal_rest_client.html,sha256=3CC3xjme4-PRoO1NGJ3hPRQsBSIHwMxObox0gY8_YcI,15366
72
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.kpi_client.html,sha256=-en1LRcE9W2z8WrAYRfhud6mFJb8AXO3Z9fbSeVpStk,6996
73
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.metrics_client.html,sha256=v6Mg1QX4bpvcvLO3EvV6JRb7OJZE0xGrWAmMIaCG6_g,19197
74
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.object_store_secrets_client.html,sha256=SXi9kCOLGNisfETHWLrNS5oqnlbkoIZIBsAIh_eqk50,17320
75
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.repositories_client.html,sha256=heuE55STe4Bc_hqqlbjOd1ZA69gVUOtt2q_6UYjgQW0,12209
76
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.resource_groups_client.html,sha256=KQ2nFqxNb4DQoVo1UoVJD5HDtBkoIQatk6qL1JyTxq4,13537
77
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.resource_clients.secrets_client.html,sha256=7AWvAmD9DOujrNoGXQnfQmfxmf3qGB8RB7Jknp9ssgs,14093
78
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.tracking.html,sha256=JnL-5SNgPsfvo7p1u5wIIk85KjWJpAP98-XRjhPZU8o,1575
79
+ sap_ai_sdk_core-3.0.8.data/data/docs/ai_core_sdk.tracking.tracking.html,sha256=PavKvroKFxiv6FK2WXQCA7k_loHsW3Vs-TSrsvuqr20,23036
80
+ sap_ai_sdk_core-3.0.8.dist-info/LICENSE,sha256=DYP9C1BSy7cci4r8ihdmeTl1R7DMKUZgDAoeO9QrbS8,12569
81
+ sap_ai_sdk_core-3.0.8.dist-info/METADATA,sha256=OrHajZDchqCBorhVUOOQJkvUzs4a_aTuGWH2NHCYkGk,7763
82
+ sap_ai_sdk_core-3.0.8.dist-info/WHEEL,sha256=EVRjI69F5qVjm_YgqcTXPnTAv3BfSUr0WVAHuSP3Xoo,92
83
+ sap_ai_sdk_core-3.0.8.dist-info/top_level.txt,sha256=tsx-hFnZK7HjViGc1YypaU7J7dK7yVd7oS1EBiiMDjk,12
84
+ sap_ai_sdk_core-3.0.8.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: bdist_wheel (0.35.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1 @@
1
+ ai_core_sdk
@@ -1,43 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: sap-ai-sdk-core
3
- Version: 2.9.9
4
- Summary: SAP Cloud SDK for AI (Python): Core SDK
5
- Home-page: https://www.sap.com/
6
- Download-URL: https://pypi.python.org/pypi/sap-ai-sdk-core
7
- Author: SAP SE
8
- License: SAP DEVELOPER LICENSE AGREEMENT
9
- Keywords: SAP AI Core,SAP AI Core API
10
- Platform: Windows
11
- Platform: Linux
12
- Platform: Mac OS-X
13
- Platform: Unix
14
- Classifier: Development Status :: 1 - Planning
15
- Classifier: License :: Other/Proprietary License
16
- Classifier: Operating System :: MacOS
17
- Classifier: Operating System :: Microsoft :: Windows
18
- Classifier: Operating System :: POSIX :: Linux
19
- Classifier: Programming Language :: Python
20
- Classifier: Programming Language :: Python :: 3
21
- Classifier: Programming Language :: Python :: 3.9
22
- Classifier: Programming Language :: Python :: 3.10
23
- Classifier: Programming Language :: Python :: 3.11
24
- Classifier: Programming Language :: Python :: 3.12
25
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
- Requires-Python: >=3.9
27
- Description-Content-Type: text/markdown
28
- License-File: LICENSE
29
- Dynamic: author
30
- Dynamic: classifier
31
- Dynamic: description
32
- Dynamic: description-content-type
33
- Dynamic: download-url
34
- Dynamic: home-page
35
- Dynamic: keywords
36
- Dynamic: license
37
- Dynamic: license-file
38
- Dynamic: platform
39
- Dynamic: requires-python
40
- Dynamic: summary
41
-
42
- # SAP Cloud SDK for AI (Python): Core SDK
43
- will be published here soon ...