hotdata 0.0.1__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 (142) hide show
  1. hotdata/__init__.py +300 -0
  2. hotdata/api/__init__.py +20 -0
  3. hotdata/api/connection_types_api.py +549 -0
  4. hotdata/api/connections_api.py +2213 -0
  5. hotdata/api/datasets_api.py +1711 -0
  6. hotdata/api/embedding_providers_api.py +1380 -0
  7. hotdata/api/indexes_api.py +977 -0
  8. hotdata/api/information_schema_api.py +390 -0
  9. hotdata/api/jobs_api.py +619 -0
  10. hotdata/api/query_api.py +320 -0
  11. hotdata/api/query_runs_api.py +615 -0
  12. hotdata/api/refresh_api.py +317 -0
  13. hotdata/api/results_api.py +581 -0
  14. hotdata/api/saved_queries_api.py +2003 -0
  15. hotdata/api/secrets_api.py +1380 -0
  16. hotdata/api/uploads_api.py +595 -0
  17. hotdata/api/workspace_context_api.py +828 -0
  18. hotdata/api/workspaces_api.py +602 -0
  19. hotdata/api_client.py +806 -0
  20. hotdata/api_response.py +21 -0
  21. hotdata/configuration.py +620 -0
  22. hotdata/exceptions.py +219 -0
  23. hotdata/models/__init__.py +125 -0
  24. hotdata/models/api_error_detail.py +90 -0
  25. hotdata/models/api_error_response.py +92 -0
  26. hotdata/models/async_query_response.py +99 -0
  27. hotdata/models/boolean_profile_detail.py +91 -0
  28. hotdata/models/categorical_profile_detail.py +96 -0
  29. hotdata/models/category_value_info.py +96 -0
  30. hotdata/models/column_definition.py +140 -0
  31. hotdata/models/column_info.py +92 -0
  32. hotdata/models/column_profile_detail.py +180 -0
  33. hotdata/models/column_profile_detail_one_of.py +105 -0
  34. hotdata/models/column_profile_detail_one_of1.py +102 -0
  35. hotdata/models/column_profile_detail_one_of2.py +101 -0
  36. hotdata/models/column_profile_detail_one_of3.py +99 -0
  37. hotdata/models/column_profile_detail_one_of4.py +100 -0
  38. hotdata/models/column_profile_info.py +108 -0
  39. hotdata/models/column_type_spec.py +117 -0
  40. hotdata/models/connection_health_response.py +100 -0
  41. hotdata/models/connection_info.py +92 -0
  42. hotdata/models/connection_refresh_result.py +117 -0
  43. hotdata/models/connection_schema_error.py +90 -0
  44. hotdata/models/connection_type_detail.py +104 -0
  45. hotdata/models/connection_type_summary.py +90 -0
  46. hotdata/models/create_connection_request.py +108 -0
  47. hotdata/models/create_connection_response.py +105 -0
  48. hotdata/models/create_dataset_request.py +101 -0
  49. hotdata/models/create_dataset_response.py +99 -0
  50. hotdata/models/create_embedding_provider_request.py +111 -0
  51. hotdata/models/create_embedding_provider_response.py +102 -0
  52. hotdata/models/create_index_request.py +130 -0
  53. hotdata/models/create_saved_query_request.py +104 -0
  54. hotdata/models/create_secret_request.py +90 -0
  55. hotdata/models/create_secret_response.py +93 -0
  56. hotdata/models/create_workspace201_response.py +93 -0
  57. hotdata/models/create_workspace_request.py +90 -0
  58. hotdata/models/create_workspace_response.py +94 -0
  59. hotdata/models/dataset_source.py +180 -0
  60. hotdata/models/dataset_source_one_of.py +109 -0
  61. hotdata/models/dataset_source_one_of1.py +91 -0
  62. hotdata/models/dataset_summary.py +108 -0
  63. hotdata/models/dataset_version_summary.py +95 -0
  64. hotdata/models/discovery_status.py +39 -0
  65. hotdata/models/embedding_provider_response.py +108 -0
  66. hotdata/models/error.py +88 -0
  67. hotdata/models/execute_saved_query_request.py +93 -0
  68. hotdata/models/get_connection_response.py +97 -0
  69. hotdata/models/get_dataset_response.py +120 -0
  70. hotdata/models/get_result_response.py +126 -0
  71. hotdata/models/get_secret_response.py +93 -0
  72. hotdata/models/get_workspace_context_response.py +92 -0
  73. hotdata/models/index_info_response.py +107 -0
  74. hotdata/models/index_status.py +38 -0
  75. hotdata/models/information_schema_response.py +110 -0
  76. hotdata/models/inline_data.py +92 -0
  77. hotdata/models/inline_dataset_source.py +92 -0
  78. hotdata/models/job_result.py +152 -0
  79. hotdata/models/job_status.py +41 -0
  80. hotdata/models/job_status_response.py +124 -0
  81. hotdata/models/job_type.py +40 -0
  82. hotdata/models/list_connection_types_response.py +96 -0
  83. hotdata/models/list_connections_response.py +96 -0
  84. hotdata/models/list_dataset_versions_response.py +107 -0
  85. hotdata/models/list_datasets_response.py +105 -0
  86. hotdata/models/list_embedding_providers_response.py +96 -0
  87. hotdata/models/list_indexes_response.py +96 -0
  88. hotdata/models/list_jobs_response.py +96 -0
  89. hotdata/models/list_query_runs_response.py +110 -0
  90. hotdata/models/list_results_response.py +105 -0
  91. hotdata/models/list_saved_queries_response.py +105 -0
  92. hotdata/models/list_saved_query_versions_response.py +107 -0
  93. hotdata/models/list_secrets_response.py +96 -0
  94. hotdata/models/list_uploads_response.py +96 -0
  95. hotdata/models/list_workspace_contexts_response.py +96 -0
  96. hotdata/models/list_workspaces200_response.py +97 -0
  97. hotdata/models/list_workspaces_response.py +98 -0
  98. hotdata/models/numeric_profile_detail.py +92 -0
  99. hotdata/models/query_request.py +98 -0
  100. hotdata/models/query_response.py +113 -0
  101. hotdata/models/query_run_info.py +176 -0
  102. hotdata/models/refresh_dataset_response.py +95 -0
  103. hotdata/models/refresh_request.py +120 -0
  104. hotdata/models/refresh_response.py +180 -0
  105. hotdata/models/refresh_warning.py +102 -0
  106. hotdata/models/result_info.py +100 -0
  107. hotdata/models/saved_query_dataset_source.py +95 -0
  108. hotdata/models/saved_query_detail.py +168 -0
  109. hotdata/models/saved_query_summary.py +101 -0
  110. hotdata/models/saved_query_version_info.py +158 -0
  111. hotdata/models/schema_refresh_result.py +107 -0
  112. hotdata/models/secret_metadata_response.py +93 -0
  113. hotdata/models/sql_query_dataset_source.py +102 -0
  114. hotdata/models/submit_job_response.py +93 -0
  115. hotdata/models/table_info.py +116 -0
  116. hotdata/models/table_profile_response.py +112 -0
  117. hotdata/models/table_refresh_error.py +92 -0
  118. hotdata/models/table_refresh_result.py +107 -0
  119. hotdata/models/temporal_profile_detail.py +90 -0
  120. hotdata/models/text_profile_detail.py +93 -0
  121. hotdata/models/update_dataset_request.py +107 -0
  122. hotdata/models/update_dataset_response.py +104 -0
  123. hotdata/models/update_embedding_provider_request.py +114 -0
  124. hotdata/models/update_embedding_provider_response.py +93 -0
  125. hotdata/models/update_saved_query_request.py +128 -0
  126. hotdata/models/update_secret_request.py +88 -0
  127. hotdata/models/update_secret_response.py +91 -0
  128. hotdata/models/upload_dataset_source.py +97 -0
  129. hotdata/models/upload_info.py +102 -0
  130. hotdata/models/upload_response.py +102 -0
  131. hotdata/models/upsert_workspace_context_request.py +90 -0
  132. hotdata/models/upsert_workspace_context_response.py +92 -0
  133. hotdata/models/url_dataset_source.py +97 -0
  134. hotdata/models/workspace_context_entry.py +93 -0
  135. hotdata/models/workspace_detail.py +94 -0
  136. hotdata/models/workspace_list_item.py +98 -0
  137. hotdata/py.typed +0 -0
  138. hotdata/rest.py +264 -0
  139. hotdata-0.0.1.dist-info/METADATA +93 -0
  140. hotdata-0.0.1.dist-info/RECORD +142 -0
  141. hotdata-0.0.1.dist-info/WHEEL +5 -0
  142. hotdata-0.0.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,98 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Hotdata API
5
+
6
+ Powerful data platform API for datasets, queries, and analytics.
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: developers@hotdata.dev
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
22
+ from typing import Any, ClassVar, Dict, List
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class WorkspaceListItem(BaseModel):
27
+ """
28
+ WorkspaceListItem
29
+ """ # noqa: E501
30
+ public_id: StrictStr
31
+ name: StrictStr
32
+ active: StrictBool
33
+ favorite: StrictBool
34
+ provision_status: StrictStr
35
+ namespace: StrictStr
36
+ __properties: ClassVar[List[str]] = ["public_id", "name", "active", "favorite", "provision_status", "namespace"]
37
+
38
+ model_config = ConfigDict(
39
+ populate_by_name=True,
40
+ validate_assignment=True,
41
+ protected_namespaces=(),
42
+ )
43
+
44
+
45
+ def to_str(self) -> str:
46
+ """Returns the string representation of the model using alias"""
47
+ return pprint.pformat(self.model_dump(by_alias=True))
48
+
49
+ def to_json(self) -> str:
50
+ """Returns the JSON representation of the model using alias"""
51
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
52
+ return json.dumps(self.to_dict())
53
+
54
+ @classmethod
55
+ def from_json(cls, json_str: str) -> Optional[Self]:
56
+ """Create an instance of WorkspaceListItem from a JSON string"""
57
+ return cls.from_dict(json.loads(json_str))
58
+
59
+ def to_dict(self) -> Dict[str, Any]:
60
+ """Return the dictionary representation of the model using alias.
61
+
62
+ This has the following differences from calling pydantic's
63
+ `self.model_dump(by_alias=True)`:
64
+
65
+ * `None` is only added to the output dict for nullable fields that
66
+ were set at model initialization. Other fields with value `None`
67
+ are ignored.
68
+ """
69
+ excluded_fields: Set[str] = set([
70
+ ])
71
+
72
+ _dict = self.model_dump(
73
+ by_alias=True,
74
+ exclude=excluded_fields,
75
+ exclude_none=True,
76
+ )
77
+ return _dict
78
+
79
+ @classmethod
80
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
81
+ """Create an instance of WorkspaceListItem from a dict"""
82
+ if obj is None:
83
+ return None
84
+
85
+ if not isinstance(obj, dict):
86
+ return cls.model_validate(obj)
87
+
88
+ _obj = cls.model_validate({
89
+ "public_id": obj.get("public_id"),
90
+ "name": obj.get("name"),
91
+ "active": obj.get("active"),
92
+ "favorite": obj.get("favorite"),
93
+ "provision_status": obj.get("provision_status"),
94
+ "namespace": obj.get("namespace")
95
+ })
96
+ return _obj
97
+
98
+
hotdata/py.typed ADDED
File without changes
hotdata/rest.py ADDED
@@ -0,0 +1,264 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Hotdata API
5
+
6
+ Powerful data platform API for datasets, queries, and analytics.
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: developers@hotdata.dev
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ import io
17
+ import json
18
+ import re
19
+ import ssl
20
+
21
+ import urllib3
22
+
23
+ from hotdata.exceptions import ApiException, ApiValueError
24
+
25
+ SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"}
26
+ RESTResponseType = urllib3.HTTPResponse
27
+
28
+
29
+ def is_socks_proxy_url(url):
30
+ if url is None:
31
+ return False
32
+ split_section = url.split("://")
33
+ if len(split_section) < 2:
34
+ return False
35
+ else:
36
+ return split_section[0].lower() in SUPPORTED_SOCKS_PROXIES
37
+
38
+
39
+ class RESTResponse(io.IOBase):
40
+
41
+ def __init__(self, resp) -> None:
42
+ self.response = resp
43
+ self.status = resp.status
44
+ self.reason = resp.reason
45
+ self.data = None
46
+
47
+ def read(self):
48
+ if self.data is None:
49
+ self.data = self.response.data
50
+ return self.data
51
+
52
+ @property
53
+ def headers(self):
54
+ """Returns a dictionary of response headers."""
55
+ return self.response.headers
56
+
57
+ def getheaders(self):
58
+ """Returns a dictionary of the response headers; use ``headers`` instead."""
59
+ return self.response.headers
60
+
61
+ def getheader(self, name, default=None):
62
+ """Returns a given response header; use ``headers.get()`` instead."""
63
+ return self.response.headers.get(name, default)
64
+
65
+
66
+ class RESTClientObject:
67
+
68
+ def __init__(self, configuration) -> None:
69
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
70
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
71
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
72
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
73
+
74
+ # cert_reqs
75
+ if configuration.verify_ssl:
76
+ cert_reqs = ssl.CERT_REQUIRED
77
+ else:
78
+ cert_reqs = ssl.CERT_NONE
79
+
80
+ pool_args = {
81
+ "cert_reqs": cert_reqs,
82
+ "ca_certs": configuration.ssl_ca_cert,
83
+ "cert_file": configuration.cert_file,
84
+ "key_file": configuration.key_file,
85
+ "ca_cert_data": configuration.ca_cert_data,
86
+ }
87
+ if configuration.assert_hostname is not None:
88
+ pool_args['assert_hostname'] = (
89
+ configuration.assert_hostname
90
+ )
91
+
92
+ if configuration.retries is not None:
93
+ pool_args['retries'] = configuration.retries
94
+
95
+ if configuration.tls_server_name:
96
+ pool_args['server_hostname'] = configuration.tls_server_name
97
+
98
+
99
+ if configuration.socket_options is not None:
100
+ pool_args['socket_options'] = configuration.socket_options
101
+
102
+ if configuration.connection_pool_maxsize is not None:
103
+ pool_args['maxsize'] = configuration.connection_pool_maxsize
104
+
105
+ # https pool manager
106
+ self.pool_manager: urllib3.PoolManager
107
+
108
+ if configuration.proxy:
109
+ if is_socks_proxy_url(configuration.proxy):
110
+ from urllib3.contrib.socks import SOCKSProxyManager
111
+ pool_args["proxy_url"] = configuration.proxy
112
+ pool_args["headers"] = configuration.proxy_headers
113
+ self.pool_manager = SOCKSProxyManager(**pool_args)
114
+ else:
115
+ pool_args["proxy_url"] = configuration.proxy
116
+ pool_args["proxy_headers"] = configuration.proxy_headers
117
+ self.pool_manager = urllib3.ProxyManager(**pool_args)
118
+ else:
119
+ self.pool_manager = urllib3.PoolManager(**pool_args)
120
+
121
+ def request(
122
+ self,
123
+ method,
124
+ url,
125
+ headers=None,
126
+ body=None,
127
+ post_params=None,
128
+ _request_timeout=None
129
+ ):
130
+ """Perform requests.
131
+
132
+ :param method: http request method
133
+ :param url: http request url
134
+ :param headers: http request headers
135
+ :param body: request json body, for `application/json`
136
+ :param post_params: request post parameters,
137
+ `application/x-www-form-urlencoded`
138
+ and `multipart/form-data`
139
+ :param _request_timeout: timeout setting for this request. If one
140
+ number provided, it will be total request
141
+ timeout. It can also be a pair (tuple) of
142
+ (connection, read) timeouts.
143
+ """
144
+ method = method.upper()
145
+ assert method in [
146
+ 'GET',
147
+ 'HEAD',
148
+ 'DELETE',
149
+ 'POST',
150
+ 'PUT',
151
+ 'PATCH',
152
+ 'OPTIONS'
153
+ ]
154
+
155
+ if post_params and body:
156
+ raise ApiValueError(
157
+ "body parameter cannot be used with post_params parameter."
158
+ )
159
+
160
+ post_params = post_params or {}
161
+ headers = headers or {}
162
+
163
+ timeout = None
164
+ if _request_timeout:
165
+ if isinstance(_request_timeout, (int, float)):
166
+ timeout = urllib3.Timeout(total=_request_timeout)
167
+ elif (
168
+ isinstance(_request_timeout, tuple)
169
+ and len(_request_timeout) == 2
170
+ ):
171
+ timeout = urllib3.Timeout(
172
+ connect=_request_timeout[0],
173
+ read=_request_timeout[1]
174
+ )
175
+
176
+ try:
177
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
178
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
179
+
180
+ # no content type provided or payload is json
181
+ content_type = headers.get('Content-Type')
182
+ if (
183
+ not content_type
184
+ or re.search('json', content_type, re.IGNORECASE)
185
+ ):
186
+ request_body = None
187
+ if body is not None:
188
+ request_body = json.dumps(body)
189
+ r = self.pool_manager.request(
190
+ method,
191
+ url,
192
+ body=request_body,
193
+ timeout=timeout,
194
+ headers=headers,
195
+ preload_content=False
196
+ )
197
+ elif content_type == 'application/x-www-form-urlencoded':
198
+ r = self.pool_manager.request(
199
+ method,
200
+ url,
201
+ fields=post_params,
202
+ encode_multipart=False,
203
+ timeout=timeout,
204
+ headers=headers,
205
+ preload_content=False
206
+ )
207
+ elif content_type == 'multipart/form-data':
208
+ # must del headers['Content-Type'], or the correct
209
+ # Content-Type which generated by urllib3 will be
210
+ # overwritten.
211
+ del headers['Content-Type']
212
+ # Ensures that dict objects are serialized
213
+ post_params = [(a, json.dumps(b)) if isinstance(b, dict) else (a,b) for a, b in post_params]
214
+ r = self.pool_manager.request(
215
+ method,
216
+ url,
217
+ fields=post_params,
218
+ encode_multipart=True,
219
+ timeout=timeout,
220
+ headers=headers,
221
+ preload_content=False
222
+ )
223
+ # Pass a `string` parameter directly in the body to support
224
+ # other content types than JSON when `body` argument is
225
+ # provided in serialized form.
226
+ elif isinstance(body, str) or isinstance(body, bytes):
227
+ r = self.pool_manager.request(
228
+ method,
229
+ url,
230
+ body=body,
231
+ timeout=timeout,
232
+ headers=headers,
233
+ preload_content=False
234
+ )
235
+ elif headers['Content-Type'].startswith('text/') and isinstance(body, bool):
236
+ request_body = "true" if body else "false"
237
+ r = self.pool_manager.request(
238
+ method,
239
+ url,
240
+ body=request_body,
241
+ preload_content=False,
242
+ timeout=timeout,
243
+ headers=headers)
244
+ else:
245
+ # Cannot generate the request from given parameters
246
+ msg = """Cannot prepare a request message for provided
247
+ arguments. Please check that your arguments match
248
+ declared content type."""
249
+ raise ApiException(status=0, reason=msg)
250
+ # For `GET`, `HEAD`
251
+ else:
252
+ r = self.pool_manager.request(
253
+ method,
254
+ url,
255
+ fields={},
256
+ timeout=timeout,
257
+ headers=headers,
258
+ preload_content=False
259
+ )
260
+ except urllib3.exceptions.SSLError as e:
261
+ msg = "\n".join([type(e).__name__, str(e)])
262
+ raise ApiException(status=0, reason=msg)
263
+
264
+ return RESTResponse(r)
@@ -0,0 +1,93 @@
1
+ Metadata-Version: 2.4
2
+ Name: hotdata
3
+ Version: 0.0.1
4
+ Summary: Official Python client for the Hotdata API
5
+ Author-email: Hotdata <developers@hotdata.dev>
6
+ License: MIT
7
+ Project-URL: Repository, https://github.com/hotdata-dev/sdk-python
8
+ Keywords: hotdata,api-client,data-platform
9
+ Requires-Python: >=3.9
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: urllib3<3.0.0,>=2.1.0
12
+ Requires-Dist: python-dateutil>=2.8.2
13
+ Requires-Dist: pydantic>=2
14
+ Requires-Dist: typing-extensions>=4.7.1
15
+
16
+ # hotdata
17
+
18
+ Official Python client for the [Hotdata](https://app.hotdata.dev) HTTP API: workspaces, connections, datasets, SQL queries, results, secrets, uploads, indexes, jobs, embedding providers, and workspace context.
19
+
20
+ The package is produced with [OpenAPI Generator](https://openapi-generator.tech) from the Hotdata OpenAPI spec.
21
+
22
+ ## Requirements
23
+
24
+ Python 3.9+
25
+
26
+ ## Install
27
+
28
+ From the repository:
29
+
30
+ ```sh
31
+ pip install "git+https://github.com/hotdata-dev/sdk-python.git"
32
+ ```
33
+
34
+ From a local checkout (editable):
35
+
36
+ ```sh
37
+ pip install -e .
38
+ ```
39
+
40
+ ## Tests
41
+
42
+ ```sh
43
+ pytest
44
+ ```
45
+
46
+ ## Authentication
47
+
48
+ The API uses **Bearer** JWTs and an **`X-Workspace-Id`** header on requests that are scoped to a workspace.
49
+
50
+ ```python
51
+ import hotdata
52
+
53
+ configuration = hotdata.Configuration(
54
+ access_token="YOUR_ACCESS_TOKEN",
55
+ api_key={"WorkspaceId": "YOUR_WORKSPACE_ID"},
56
+ )
57
+ ```
58
+
59
+ `host` defaults to `https://app.hotdata.dev`. Override it if you target another environment.
60
+
61
+ ## Usage
62
+
63
+ ```python
64
+ import hotdata
65
+ from hotdata.rest import ApiException
66
+
67
+ configuration = hotdata.Configuration(
68
+ access_token="YOUR_ACCESS_TOKEN",
69
+ api_key={"WorkspaceId": "YOUR_WORKSPACE_ID"},
70
+ )
71
+
72
+ with hotdata.ApiClient(configuration) as api_client:
73
+ workspaces = hotdata.WorkspacesApi(api_client)
74
+ try:
75
+ response = workspaces.list_workspaces()
76
+ except ApiException as e:
77
+ print(f"API error: {e.status} {e.reason}\n{e.body}")
78
+ ```
79
+
80
+ Each `Api` class groups endpoints by resource. Construct the client, then call the typed methods you need.
81
+
82
+ ## API reference
83
+
84
+ Generated Markdown for every operation and model is in [`docs/`](docs/):
85
+
86
+ - Resource APIs: `docs/*Api.md` (for example [`docs/QueryApi.md`](docs/QueryApi.md))
87
+ - Request and response models: `docs/<ModelName>.md`
88
+
89
+ Use your editor or GitHub file search there instead of duplicating large tables in this file.
90
+
91
+ ## Support
92
+
93
+ Questions and issues: [github.com/hotdata-dev/sdk-python](https://github.com/hotdata-dev/sdk-python).
@@ -0,0 +1,142 @@
1
+ hotdata/__init__.py,sha256=jtcw8OU8YbvXIQz8oosrCdabzTBbkVKibZW4TDtADmA,15959
2
+ hotdata/api_client.py,sha256=JiaDIZ-vNYdtFo1A0XJEdg4BWoclE4LWcDyb3WG2SA4,27903
3
+ hotdata/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
4
+ hotdata/configuration.py,sha256=G77pRwEtEh_AR60z0ZefFtbY7WSQ7sXvVcFLA2YsQ_A,19649
5
+ hotdata/exceptions.py,sha256=fOWiy-a0JTcoo-0PNLTn4pykDpF0ux9k9O8d3KBFQS8,6520
6
+ hotdata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ hotdata/rest.py,sha256=mSuYqOcSCCcOB_558ubQ_xY6xITayighs0I3PLy-KdU,9646
8
+ hotdata/api/__init__.py,sha256=KeenCW3eha-WkmOSPGo5dzi6_NRBDBiT5_tunWIqMnY,902
9
+ hotdata/api/connection_types_api.py,sha256=rRa30mzAMBrQzQjyqpis-s-vrpE2jHWrSIDEZA3Qo3A,21260
10
+ hotdata/api/connections_api.py,sha256=Wl8dERKdHMIlcs_8am-uoi3keZYL5VdslpCqvUduLgw,87678
11
+ hotdata/api/datasets_api.py,sha256=w3xEBW9n4JCUNDRaABUQ5wnYmAJP_6rFCkjJqVSSK9w,66504
12
+ hotdata/api/embedding_providers_api.py,sha256=BIwiRkavM4ZXjKzbMgK5k2GO5E9EH7NHXoemcKhq-Tc,54162
13
+ hotdata/api/indexes_api.py,sha256=AZA-lkRl8JEXRt-_zUIREFULZAdyD8apgngAfP0M4GA,38225
14
+ hotdata/api/information_schema_api.py,sha256=gf060BVQMWSYQJjkWFbfWv9SYdNhNatclCR_Rs5ybno,16523
15
+ hotdata/api/jobs_api.py,sha256=_96BM9PF50GdRuKw-VkFp80PHVH8b41JryRmXuNJ2bY,23886
16
+ hotdata/api/query_api.py,sha256=1jnX1EFu6e41MIDNktfa9WcbNE0WVlkXQisfPc7jzLk,13124
17
+ hotdata/api/query_runs_api.py,sha256=smnv30SQaB4nBpFQjULIB3zvlFn-rDmbwhO5OPZeJd8,23719
18
+ hotdata/api/refresh_api.py,sha256=BsdLa_gzl8GA6WmQfQNg4nMGcqL3dNJfOfWTTWTLj7w,13556
19
+ hotdata/api/results_api.py,sha256=pZWt9WcF9sRh_XUBCOp8_KB__cJL6P37RjPF7G0jG8w,22496
20
+ hotdata/api/saved_queries_api.py,sha256=Uaxr9ne1quH6H08jVRJykfsPa9SuFyFqb6fB-YsL1Lo,78825
21
+ hotdata/api/secrets_api.py,sha256=DmbbIBgqIrOAZ6LJxAQZ93kvtJi6zoRmj1v0EUv6nRo,52789
22
+ hotdata/api/uploads_api.py,sha256=ccRhmUUfT_MUiI-aA0gvsWDRa7DSlUyFa5oz8emuOy4,23617
23
+ hotdata/api/workspace_context_api.py,sha256=6U7gpRH_dXJOWvYq0xbUA0fbY1aMVXB8Jwz36IT4eEU,32647
24
+ hotdata/api/workspaces_api.py,sha256=0Svnq9efdSsJaCR875a1YFLZeJhYb539LNXY6_gpovc,23363
25
+ hotdata/models/__init__.py,sha256=sjY8lb5SpjFbe5zSxbJV1AjREPYALVQJLV3LyybRW0U,7925
26
+ hotdata/models/api_error_detail.py,sha256=DF5mE4-JXk8mSp36WfxhhH41GTjdzSRcPchdmUqas9A,2574
27
+ hotdata/models/api_error_response.py,sha256=nrjftd0p59DZyj1y28_CjTdEUMli92XopNKw6L4ZSSA,2768
28
+ hotdata/models/async_query_response.py,sha256=1_wiBaEnlfR7cKNHXWQCcyPAB5DJrOFuWiqxf3E5WXQ,3466
29
+ hotdata/models/boolean_profile_detail.py,sha256=awasRqf4v7svFCPITEYUR9gqODj9_zhEiaBDrdSPtYk,2795
30
+ hotdata/models/categorical_profile_detail.py,sha256=u54nlKfXapTDI_hxwS4JLY6prVuT3N6o6eA0cKqqaEw,3768
31
+ hotdata/models/category_value_info.py,sha256=ltOZv0OrkTlZ08F1Wmm_8qWosy8yXOx4_jDYV14TPzs,3035
32
+ hotdata/models/column_definition.py,sha256=jkHmo0bcpUQxU5jZktfSaxl9jf5fOy0d1L2qhVqj0fA,5525
33
+ hotdata/models/column_info.py,sha256=30tGsHMFqluzsJ53DtxowukuJ63xPOcmfjSzVqhFkaU,2656
34
+ hotdata/models/column_profile_detail.py,sha256=u16UXjqhYn6LnT65VydsZXmiEqynT_MjeMvz_Jve31s,8534
35
+ hotdata/models/column_profile_detail_one_of.py,sha256=K07LjE_zGJybZ08_JxwzAeVdDmdG59OZeSNS4dPRMtU,3428
36
+ hotdata/models/column_profile_detail_one_of1.py,sha256=hIzncaBtTiUiTpTzC0Fq8CKkvVNd8FNLPk3GhG_blNY,3353
37
+ hotdata/models/column_profile_detail_one_of2.py,sha256=rzKzqp_oB611tqcAp8xGyEps329bwLycWULU4lcfsQg,3252
38
+ hotdata/models/column_profile_detail_one_of3.py,sha256=MaTF3AdNRmhIMQe9ptBe5Wo-c_yPAG2H_biU2glQ1XU,3011
39
+ hotdata/models/column_profile_detail_one_of4.py,sha256=uslySKp6hN9DSE9m3JN8Iwom3XKZQ7B8qv2hJFnaWjY,3150
40
+ hotdata/models/column_profile_info.py,sha256=gtesULCqaIOsdEPmgbkMTXCUIVOSSpcdZO4LR_Vprnw,4110
41
+ hotdata/models/column_type_spec.py,sha256=d67fTn0Supxa6PbfQOAWwT-46rJfTzlCmUl4LfvOyDg,4437
42
+ hotdata/models/connection_health_response.py,sha256=NSWCO7kCGYl-pb7al42VoC1mHf-0Y7ZNMKW3QkWPmO8,3135
43
+ hotdata/models/connection_info.py,sha256=bNesCsnnwNjkVGwAyEmsRj6XYzbBF79K0RO3eT7J7T4,2650
44
+ hotdata/models/connection_refresh_result.py,sha256=ddRz9CnHOHvuOOtMkopxrr3FKV0ZnX9-o0lov2sKVGk,4318
45
+ hotdata/models/connection_schema_error.py,sha256=Ks098Yw_Cudmtv8F4whbDPLzn8NZamgV8tE2igOSig0,2634
46
+ hotdata/models/connection_type_detail.py,sha256=qjD69RwRNi623mUOZqfwl9TkDcILdZzdr2t2oQQAIsU,3195
47
+ hotdata/models/connection_type_summary.py,sha256=wRek1AF4gvu1oSlUMllcQBDFj16NpcaavPY9838XQR4,2567
48
+ hotdata/models/create_connection_request.py,sha256=i3-MfqY2-POJ9bEL0VhaFCsQrVUupKVvDqHam4AAZr4,4189
49
+ hotdata/models/create_connection_response.py,sha256=SH4m3dqwJwOdRhkstVdl26gTITi0YhxPGTuXPwecaUs,3424
50
+ hotdata/models/create_dataset_request.py,sha256=Xrk_licve7yRUKvye9sEz_QwQUoxEou0ePxRCKtKvfA,3304
51
+ hotdata/models/create_dataset_response.py,sha256=s0H8NcYDwevn5VBno3Q9fIC_dTldU95OM15YoPDYhJo,2946
52
+ hotdata/models/create_embedding_provider_request.py,sha256=tlGAKplT6Xg7WdMWFHUw67oFd7ZkzWaaYBsn1KzPUs4,3896
53
+ hotdata/models/create_embedding_provider_response.py,sha256=zR0hXhXYTDiT0RlvStWtfDRnY9vDV3SCrE2o9ylPONs,3120
54
+ hotdata/models/create_index_request.py,sha256=QSP815JCe1AWHiLUMFDfoCtcy_X4fh5RjG-ZAI3kRFA,5845
55
+ hotdata/models/create_saved_query_request.py,sha256=iuqnXjqsy_Ec9B-ai7Z69y7jmJ4pjJ0Cy-oTjZzaHKw,3211
56
+ hotdata/models/create_secret_request.py,sha256=MVEmcnqsRMQF2aJfUZbKonWlQxwduUgL8C298ZRfPCA,2570
57
+ hotdata/models/create_secret_response.py,sha256=FtatBU5qA-DxXKFSTES3SfrzjhHJFcTxxGx_sLrSV9w,2680
58
+ hotdata/models/create_workspace201_response.py,sha256=jU3C28fJDbGti10cOVJ6aapIJpH-m6jwhsfVRE-N-go,2869
59
+ hotdata/models/create_workspace_request.py,sha256=JLj4_6nrMDzVQuFQZYp34fAVeCibTPM9VJtbS2NIhYg,2820
60
+ hotdata/models/create_workspace_response.py,sha256=Gavy0TK-63x44KMu16SaJdzdZVbaRnUVcJgj-p4WK6Y,2893
61
+ hotdata/models/dataset_source.py,sha256=dFbCpPvHEFLq0Dn4c6xRbjNWFN1QS1fuCynySO_CTUA,8051
62
+ hotdata/models/dataset_source_one_of.py,sha256=E6ZUt7Stw2ZIqfguC5iHci6iwPNjRdGMCoSr6_NULSc,3724
63
+ hotdata/models/dataset_source_one_of1.py,sha256=Rum0hT_ojxoIwjSH6qjx_S21FS2mizsXYgqSKWq0d-Y,2745
64
+ hotdata/models/dataset_summary.py,sha256=_WOwHCtA88YVt-NFKUBumdFYPDDv7b0qhXv4zqISdzM,3419
65
+ hotdata/models/dataset_version_summary.py,sha256=31jbhNWxrx9Nue23wLuZqoREUJSmGGIcuFYZD1NN4tk,2791
66
+ hotdata/models/discovery_status.py,sha256=HF84a3HsdDCbyIpqQ4vOOSsDJStY9bJhkgV4pU6CmvE,807
67
+ hotdata/models/embedding_provider_response.py,sha256=s34uOgnQLm_jgvGwWyCO0Yfml1sD7oTBqne1A-I4p98,3468
68
+ hotdata/models/error.py,sha256=gylALrEgTMq0KNh35qzXSzU6PTah6VXD8l6h5ChvNNk,2497
69
+ hotdata/models/execute_saved_query_request.py,sha256=SKV_f9wuqw5VM66j6ujTkT1jscQq-hU4epNK7ikU1_M,2782
70
+ hotdata/models/get_connection_response.py,sha256=t4BiONb9Bbejx6bH7-9dsQCcya0lkdq0a4ZSjD0Ffa8,3000
71
+ hotdata/models/get_dataset_response.py,sha256=EB48sQeSgs_NrIuYDiAeNZwZ1C9r8SkKSoL2DyfogEw,4082
72
+ hotdata/models/get_result_response.py,sha256=Samm2bTgM7sG-PCDnuupNHQvnT-ZqF-jdT9TDOenlHM,4421
73
+ hotdata/models/get_secret_response.py,sha256=RNAu_X5YL04M2KNnis6wQPezAiURFrDrq8CuY-pyNIk,2708
74
+ hotdata/models/get_workspace_context_response.py,sha256=r6KnRCQpCmoPVSB8UjEYV4lZyu28A40BJpmhcNEoLdE,2862
75
+ hotdata/models/index_info_response.py,sha256=k6ZZLmJiaYaGiY8EUL3vAewlnejwrwvgfqXC3gSx-gA,3488
76
+ hotdata/models/index_status.py,sha256=p1s22mwMmpnFl8BKHdCt3Wust6uB8cDGHqQxldQEqJU,777
77
+ hotdata/models/information_schema_response.py,sha256=fxw8tf1Cy1KmKsi12clldPntkyWKxbX5Bh-Dq2OOWf0,3683
78
+ hotdata/models/inline_data.py,sha256=ThNHMenZgQ5n9bit6dUlH7jlauPs9B2w6ojskjn-d0s,2875
79
+ hotdata/models/inline_dataset_source.py,sha256=djhP-THK3buPsLMHSZF9J77v4AGtwQcaKicncbLcxcE,2789
80
+ hotdata/models/job_result.py,sha256=_ChBuB8_KlDaVEQFIHUXCg_vuO_NHr98WLzv99vrkgg,6584
81
+ hotdata/models/job_status.py,sha256=Gppw7xmDjwPK8yVl6beXQgfTBghflIH6gpxr8en6JiU,866
82
+ hotdata/models/job_status_response.py,sha256=1XpbSys_PBMHxFLfIzxojNCnyO1frZQ_cqQTAonKzwE,4518
83
+ hotdata/models/job_type.py,sha256=Bw657sjR3OpystTxegPdyRVyWLBnZDODh8FaAcYI2iI,876
84
+ hotdata/models/list_connection_types_response.py,sha256=w4r8ZG-SGFIJIdG0hedMVA_OT1NxWQo7_6P8Pw6Saec,3145
85
+ hotdata/models/list_connections_response.py,sha256=HcwMhRsFxPZ7PQxI-I4PVTp4EZKerGrJlE64smMNyNk,3051
86
+ hotdata/models/list_dataset_versions_response.py,sha256=G0o-Z-JCKvIwAU9MBWj-hdh93FWD-3r9dzdj-2MBx9A,3615
87
+ hotdata/models/list_datasets_response.py,sha256=IyY2tIfYmeZOrDAdj0_w8xobd4TsmQK4E9TerLnPbUQ,3714
88
+ hotdata/models/list_embedding_providers_response.py,sha256=nkkDsRqWdWYHW4pC2TUuLTS590Zk116z1nstnz7UaeU,3221
89
+ hotdata/models/list_indexes_response.py,sha256=v2LdDWcZTXz7RhTiq1pRQaSobJy5mfipaX02MbZh7kY,3003
90
+ hotdata/models/list_jobs_response.py,sha256=prJVQsm_NemMiQDeknDs4nXqsK6cqFnq2TEdJA5OVkI,2955
91
+ hotdata/models/list_query_runs_response.py,sha256=V_-Wx3bcCyL9fEQvApUBS0ya_ntTWmByeEFdZsdiGSA,3724
92
+ hotdata/models/list_results_response.py,sha256=z_oVuXAJ2XeBX43KhsRcN2csy98eZ4fOk9oCy-9kHmk,3677
93
+ hotdata/models/list_saved_queries_response.py,sha256=5Lpezi1ZMGRSYbTQZLbLzVB4NbWeNrG-QCHUim9Bzz0,3463
94
+ hotdata/models/list_saved_query_versions_response.py,sha256=hl8-ScdAAWDTVqQqnH5jfRWVFd6b37G0lRREw3_831w,3640
95
+ hotdata/models/list_secrets_response.py,sha256=wUtAQuLWL9WU-CLtJ0YKjZXS0UgMFQP06MSqr2rkLJI,3020
96
+ hotdata/models/list_uploads_response.py,sha256=Znvn_DIeGCqMt1v9ukDjdvwnRVrtoKsEohvbaFXKWpc,2972
97
+ hotdata/models/list_workspace_contexts_response.py,sha256=xfZYS_aL77pn2r7qe_THiJ5zz6_T2jmSqKrH0NjxPBM,3064
98
+ hotdata/models/list_workspaces200_response.py,sha256=EuJomtE9QsCyPHWlc7UVXt7FOYOHA5E_87yA7EZJGRs,3083
99
+ hotdata/models/list_workspaces_response.py,sha256=1TerkydQcabe8WuVeXsharodQB4-X9ZHVAz779uh54M,3107
100
+ hotdata/models/numeric_profile_detail.py,sha256=lQG9WCq5Rxwk6_W3U4rKlD1VIwp5oUHkDlH-dYKQLO8,2948
101
+ hotdata/models/query_request.py,sha256=WgtF-t5OiRRay_MJpFkMZzM9_ciXvyalGfNNjIORPUI,3490
102
+ hotdata/models/query_response.py,sha256=LVQ9WbKxeII4_odgIDRD1Q7lqgMuTwJ6xyVK1DY_mVo,4965
103
+ hotdata/models/query_run_info.py,sha256=C6s2TRx25yEuWGrtW4NX5eTiQCGHy6ZOUWDJfBM9rio,7373
104
+ hotdata/models/refresh_dataset_response.py,sha256=w60GJvbhFEokYK6knXF-usad7GYGLW0_ul_1Xqd5SHY,2799
105
+ hotdata/models/refresh_request.py,sha256=kwBVGDpfKl-EXl2nnQNbGn2POw5Y4w-ZaCOXZmcpWpM,4889
106
+ hotdata/models/refresh_response.py,sha256=6udNjQ95lAzZJ_KSyWGbtD1rWVtf6gS-ozhZ4NhJVoA,8096
107
+ hotdata/models/refresh_warning.py,sha256=-supO66ynQEU2SjJIqg7iXECZtIAd5ShbpEM48UYKGU,3305
108
+ hotdata/models/result_info.py,sha256=3mXop0x-efXD1z62AyR4Tx38kp4k24Yuc36AOwHwyNo,3037
109
+ hotdata/models/saved_query_dataset_source.py,sha256=YfLpVjAEqG3F2g6tcpVYNJo6RFc2NNHkCY9Cwm5zcxM,2889
110
+ hotdata/models/saved_query_detail.py,sha256=1ORt2XlaW_DpWxD50SFi1Yy4-rhw5Mzue4lYBdLjvDg,6242
111
+ hotdata/models/saved_query_summary.py,sha256=qQXFCIg-3Ju5NPsdRLr176funN9kK_BTqCOXaGhz_1I,3039
112
+ hotdata/models/saved_query_version_info.py,sha256=i_adzO7XeCj80JrrYMJgFIvj3mwpLiuAcMBKcNqSEoU,5831
113
+ hotdata/models/schema_refresh_result.py,sha256=zx-bo1lKuzUrPIUz8Ax_9pe9x7LkonEnuVbGs2f-Nzo,3818
114
+ hotdata/models/secret_metadata_response.py,sha256=-XDZ33L_GRayjpq_XzTioDuP6u7uLf5tu4sPHfsiBEI,2726
115
+ hotdata/models/sql_query_dataset_source.py,sha256=p3AEyaDEK6993TC5KXbA-fEVdIuI5wv2kmPIRFlp6Ic,3362
116
+ hotdata/models/submit_job_response.py,sha256=zOWg6shADRL9SXjVhwBQ8fJWirVfZUy0VZw7GtSaMHM,2912
117
+ hotdata/models/table_info.py,sha256=3mr3O8_yelRmgrO9sjDBsRtvqrabSLyIHGHTrmkH5m4,3854
118
+ hotdata/models/table_profile_response.py,sha256=xMBI3YtlVLJ5LW2hqPyG7MegKn-Dtu06pDITF7AKAlc,4162
119
+ hotdata/models/table_refresh_error.py,sha256=zWOAJAh5YUdQlDSomtTAVGgQXW7J5YboSoZL_UK1eLE,2692
120
+ hotdata/models/table_refresh_result.py,sha256=O9c0UXon0Dy2O1rXfZtMUiV6hGNJItSVpEQUfavRma0,3628
121
+ hotdata/models/temporal_profile_detail.py,sha256=yd1YinvS14jZHoeW2RhMhxROfbjTe0mfUGc3VmD769I,2678
122
+ hotdata/models/text_profile_detail.py,sha256=cmg3EURJQPHbfRRtILtN0FKP7m619aInNH6jXbT-tIk,3032
123
+ hotdata/models/update_dataset_request.py,sha256=yQVVnjqmijcRD4k3GDmukOCsN9V85gcmqtSxqWbNrLU,3586
124
+ hotdata/models/update_dataset_response.py,sha256=E1PPG5qe6Nc4Jh5BE80aq7pBPJO3m_xqho8UqlPuyCE,3271
125
+ hotdata/models/update_embedding_provider_request.py,sha256=o1q3DTOXzFROS9Piybw2D-1ceTEMXN0Ykdn6rZNMP8A,3907
126
+ hotdata/models/update_embedding_provider_response.py,sha256=aB8iAH0IgSaJNJwYgBDU4QUIanR3ioH-rg0hrzNh6ek,2729
127
+ hotdata/models/update_saved_query_request.py,sha256=uOAldLFV7ss0qSV_6I0u1slElQsZWoz9b47tIcxa_eM,4812
128
+ hotdata/models/update_secret_request.py,sha256=DfqFGnOybaWbxmXFQi5aFl9JR5rAetvFsfytGxQ0-iE,2511
129
+ hotdata/models/update_secret_response.py,sha256=VVHqWu9QxupE9muPBAy0IVZWXy8Qu-qYfA6WRquMN18,2629
130
+ hotdata/models/upload_dataset_source.py,sha256=54rftXe86pWS6x3iWYlxIQspdd8KQ2tGs2bmFcWVACk,3155
131
+ hotdata/models/upload_info.py,sha256=DL9uORagZedzKKJzCnYyrjLSQ0rDmfTua0kf3m56SQ8,3112
132
+ hotdata/models/upload_response.py,sha256=_LK0pjCJ2sFDdg928yZQT35mmW539REktl9ahR1BCFQ,3126
133
+ hotdata/models/upsert_workspace_context_request.py,sha256=OKrBRuOC4fNG0sx_qalDX_-MOzZIvoZ-Ad6sLSnpTRg,2722
134
+ hotdata/models/upsert_workspace_context_response.py,sha256=SnHi3FMOjvm-bUFBSraReXTMhd_EBfX7mLii8WvYjFQ,2865
135
+ hotdata/models/url_dataset_source.py,sha256=444pIp-Zo3Dmdw1-NBG3YQOdJfyUJ0X3o0qHarLlywQ,3031
136
+ hotdata/models/workspace_context_entry.py,sha256=c7vkCINr0eakM5ftt-QGZBvSL4fFa7U40ZKE4foHP8k,2710
137
+ hotdata/models/workspace_detail.py,sha256=fh5wXj4iJLKyQIw6U8_yzQzautY-Un3IKTO1eXW3PeY,2757
138
+ hotdata/models/workspace_list_item.py,sha256=kt3U74lRhqSSbZdEEHtMAzhnWFVWt8jX_As53azlUxY,2933
139
+ hotdata-0.0.1.dist-info/METADATA,sha256=pMoARuUjLyHyBJX8slRenktSjO1m8RDfVt2YZ9wbIeM,2436
140
+ hotdata-0.0.1.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
141
+ hotdata-0.0.1.dist-info/top_level.txt,sha256=yEMc5UAXcAu41hSJfjuNc8p_DSbgzfciz3HqGlU6QZg,8
142
+ hotdata-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ hotdata