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,390 @@
1
+ """
2
+ Hotdata API
3
+
4
+ Powerful data platform API for datasets, queries, and analytics.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: developers@hotdata.dev
8
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
9
+
10
+ Do not edit the class manually.
11
+ """ # noqa: E501
12
+
13
+
14
+ import warnings
15
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
+ from typing import Any, Dict, List, Optional, Tuple, Union
17
+ from typing_extensions import Annotated
18
+
19
+ from pydantic import Field, StrictBool, StrictStr
20
+ from typing import Optional
21
+ from typing_extensions import Annotated
22
+ from hotdata.models.information_schema_response import InformationSchemaResponse
23
+
24
+ from hotdata.api_client import ApiClient, RequestSerialized
25
+ from hotdata.api_response import ApiResponse
26
+ from hotdata.rest import RESTResponseType
27
+
28
+
29
+ class InformationSchemaApi:
30
+ """NOTE: This class is auto generated by OpenAPI Generator
31
+ Ref: https://openapi-generator.tech
32
+
33
+ Do not edit the class manually.
34
+ """
35
+
36
+ def __init__(self, api_client=None) -> None:
37
+ if api_client is None:
38
+ api_client = ApiClient.get_default()
39
+ self.api_client = api_client
40
+
41
+
42
+ @validate_call
43
+ def information_schema(
44
+ self,
45
+ connection_id: Annotated[Optional[StrictStr], Field(description="Filter by connection ID")] = None,
46
+ var_schema: Annotated[Optional[StrictStr], Field(description="Filter by schema name (supports % wildcards)")] = None,
47
+ table: Annotated[Optional[StrictStr], Field(description="Filter by table name (supports % wildcards)")] = None,
48
+ include_columns: Annotated[Optional[StrictBool], Field(description="Include column definitions (default: false)")] = None,
49
+ limit: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Maximum number of tables per page")] = None,
50
+ cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from a previous response")] = None,
51
+ _request_timeout: Union[
52
+ None,
53
+ Annotated[StrictFloat, Field(gt=0)],
54
+ Tuple[
55
+ Annotated[StrictFloat, Field(gt=0)],
56
+ Annotated[StrictFloat, Field(gt=0)]
57
+ ]
58
+ ] = None,
59
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
60
+ _content_type: Optional[StrictStr] = None,
61
+ _headers: Optional[Dict[StrictStr, Any]] = None,
62
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
63
+ ) -> InformationSchemaResponse:
64
+ """List tables
65
+
66
+ List discovered tables with optional filtering and pagination. Supports wildcard patterns (SQL %) for schema and table name filters. Set include_columns=true to include column definitions (omitted by default).
67
+
68
+ :param connection_id: Filter by connection ID
69
+ :type connection_id: str
70
+ :param var_schema: Filter by schema name (supports % wildcards)
71
+ :type var_schema: str
72
+ :param table: Filter by table name (supports % wildcards)
73
+ :type table: str
74
+ :param include_columns: Include column definitions (default: false)
75
+ :type include_columns: bool
76
+ :param limit: Maximum number of tables per page
77
+ :type limit: int
78
+ :param cursor: Pagination cursor from a previous response
79
+ :type cursor: str
80
+ :param _request_timeout: timeout setting for this request. If one
81
+ number provided, it will be total request
82
+ timeout. It can also be a pair (tuple) of
83
+ (connection, read) timeouts.
84
+ :type _request_timeout: int, tuple(int, int), optional
85
+ :param _request_auth: set to override the auth_settings for an a single
86
+ request; this effectively ignores the
87
+ authentication in the spec for a single request.
88
+ :type _request_auth: dict, optional
89
+ :param _content_type: force content-type for the request.
90
+ :type _content_type: str, Optional
91
+ :param _headers: set to override the headers for a single
92
+ request; this effectively ignores the headers
93
+ in the spec for a single request.
94
+ :type _headers: dict, optional
95
+ :param _host_index: set to override the host_index for a single
96
+ request; this effectively ignores the host_index
97
+ in the spec for a single request.
98
+ :type _host_index: int, optional
99
+ :return: Returns the result object.
100
+ """ # noqa: E501
101
+
102
+ _param = self._information_schema_serialize(
103
+ connection_id=connection_id,
104
+ var_schema=var_schema,
105
+ table=table,
106
+ include_columns=include_columns,
107
+ limit=limit,
108
+ cursor=cursor,
109
+ _request_auth=_request_auth,
110
+ _content_type=_content_type,
111
+ _headers=_headers,
112
+ _host_index=_host_index
113
+ )
114
+
115
+ _response_types_map: Dict[str, Optional[str]] = {
116
+ '200': "InformationSchemaResponse",
117
+ '404': "ApiErrorResponse",
118
+ }
119
+ response_data = self.api_client.call_api(
120
+ *_param,
121
+ _request_timeout=_request_timeout
122
+ )
123
+ response_data.read()
124
+ return self.api_client.response_deserialize(
125
+ response_data=response_data,
126
+ response_types_map=_response_types_map,
127
+ ).data
128
+
129
+
130
+ @validate_call
131
+ def information_schema_with_http_info(
132
+ self,
133
+ connection_id: Annotated[Optional[StrictStr], Field(description="Filter by connection ID")] = None,
134
+ var_schema: Annotated[Optional[StrictStr], Field(description="Filter by schema name (supports % wildcards)")] = None,
135
+ table: Annotated[Optional[StrictStr], Field(description="Filter by table name (supports % wildcards)")] = None,
136
+ include_columns: Annotated[Optional[StrictBool], Field(description="Include column definitions (default: false)")] = None,
137
+ limit: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Maximum number of tables per page")] = None,
138
+ cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from a previous response")] = None,
139
+ _request_timeout: Union[
140
+ None,
141
+ Annotated[StrictFloat, Field(gt=0)],
142
+ Tuple[
143
+ Annotated[StrictFloat, Field(gt=0)],
144
+ Annotated[StrictFloat, Field(gt=0)]
145
+ ]
146
+ ] = None,
147
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
148
+ _content_type: Optional[StrictStr] = None,
149
+ _headers: Optional[Dict[StrictStr, Any]] = None,
150
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
151
+ ) -> ApiResponse[InformationSchemaResponse]:
152
+ """List tables
153
+
154
+ List discovered tables with optional filtering and pagination. Supports wildcard patterns (SQL %) for schema and table name filters. Set include_columns=true to include column definitions (omitted by default).
155
+
156
+ :param connection_id: Filter by connection ID
157
+ :type connection_id: str
158
+ :param var_schema: Filter by schema name (supports % wildcards)
159
+ :type var_schema: str
160
+ :param table: Filter by table name (supports % wildcards)
161
+ :type table: str
162
+ :param include_columns: Include column definitions (default: false)
163
+ :type include_columns: bool
164
+ :param limit: Maximum number of tables per page
165
+ :type limit: int
166
+ :param cursor: Pagination cursor from a previous response
167
+ :type cursor: str
168
+ :param _request_timeout: timeout setting for this request. If one
169
+ number provided, it will be total request
170
+ timeout. It can also be a pair (tuple) of
171
+ (connection, read) timeouts.
172
+ :type _request_timeout: int, tuple(int, int), optional
173
+ :param _request_auth: set to override the auth_settings for an a single
174
+ request; this effectively ignores the
175
+ authentication in the spec for a single request.
176
+ :type _request_auth: dict, optional
177
+ :param _content_type: force content-type for the request.
178
+ :type _content_type: str, Optional
179
+ :param _headers: set to override the headers for a single
180
+ request; this effectively ignores the headers
181
+ in the spec for a single request.
182
+ :type _headers: dict, optional
183
+ :param _host_index: set to override the host_index for a single
184
+ request; this effectively ignores the host_index
185
+ in the spec for a single request.
186
+ :type _host_index: int, optional
187
+ :return: Returns the result object.
188
+ """ # noqa: E501
189
+
190
+ _param = self._information_schema_serialize(
191
+ connection_id=connection_id,
192
+ var_schema=var_schema,
193
+ table=table,
194
+ include_columns=include_columns,
195
+ limit=limit,
196
+ cursor=cursor,
197
+ _request_auth=_request_auth,
198
+ _content_type=_content_type,
199
+ _headers=_headers,
200
+ _host_index=_host_index
201
+ )
202
+
203
+ _response_types_map: Dict[str, Optional[str]] = {
204
+ '200': "InformationSchemaResponse",
205
+ '404': "ApiErrorResponse",
206
+ }
207
+ response_data = self.api_client.call_api(
208
+ *_param,
209
+ _request_timeout=_request_timeout
210
+ )
211
+ response_data.read()
212
+ return self.api_client.response_deserialize(
213
+ response_data=response_data,
214
+ response_types_map=_response_types_map,
215
+ )
216
+
217
+
218
+ @validate_call
219
+ def information_schema_without_preload_content(
220
+ self,
221
+ connection_id: Annotated[Optional[StrictStr], Field(description="Filter by connection ID")] = None,
222
+ var_schema: Annotated[Optional[StrictStr], Field(description="Filter by schema name (supports % wildcards)")] = None,
223
+ table: Annotated[Optional[StrictStr], Field(description="Filter by table name (supports % wildcards)")] = None,
224
+ include_columns: Annotated[Optional[StrictBool], Field(description="Include column definitions (default: false)")] = None,
225
+ limit: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Maximum number of tables per page")] = None,
226
+ cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from a previous response")] = None,
227
+ _request_timeout: Union[
228
+ None,
229
+ Annotated[StrictFloat, Field(gt=0)],
230
+ Tuple[
231
+ Annotated[StrictFloat, Field(gt=0)],
232
+ Annotated[StrictFloat, Field(gt=0)]
233
+ ]
234
+ ] = None,
235
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
236
+ _content_type: Optional[StrictStr] = None,
237
+ _headers: Optional[Dict[StrictStr, Any]] = None,
238
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
239
+ ) -> RESTResponseType:
240
+ """List tables
241
+
242
+ List discovered tables with optional filtering and pagination. Supports wildcard patterns (SQL %) for schema and table name filters. Set include_columns=true to include column definitions (omitted by default).
243
+
244
+ :param connection_id: Filter by connection ID
245
+ :type connection_id: str
246
+ :param var_schema: Filter by schema name (supports % wildcards)
247
+ :type var_schema: str
248
+ :param table: Filter by table name (supports % wildcards)
249
+ :type table: str
250
+ :param include_columns: Include column definitions (default: false)
251
+ :type include_columns: bool
252
+ :param limit: Maximum number of tables per page
253
+ :type limit: int
254
+ :param cursor: Pagination cursor from a previous response
255
+ :type cursor: str
256
+ :param _request_timeout: timeout setting for this request. If one
257
+ number provided, it will be total request
258
+ timeout. It can also be a pair (tuple) of
259
+ (connection, read) timeouts.
260
+ :type _request_timeout: int, tuple(int, int), optional
261
+ :param _request_auth: set to override the auth_settings for an a single
262
+ request; this effectively ignores the
263
+ authentication in the spec for a single request.
264
+ :type _request_auth: dict, optional
265
+ :param _content_type: force content-type for the request.
266
+ :type _content_type: str, Optional
267
+ :param _headers: set to override the headers for a single
268
+ request; this effectively ignores the headers
269
+ in the spec for a single request.
270
+ :type _headers: dict, optional
271
+ :param _host_index: set to override the host_index for a single
272
+ request; this effectively ignores the host_index
273
+ in the spec for a single request.
274
+ :type _host_index: int, optional
275
+ :return: Returns the result object.
276
+ """ # noqa: E501
277
+
278
+ _param = self._information_schema_serialize(
279
+ connection_id=connection_id,
280
+ var_schema=var_schema,
281
+ table=table,
282
+ include_columns=include_columns,
283
+ limit=limit,
284
+ cursor=cursor,
285
+ _request_auth=_request_auth,
286
+ _content_type=_content_type,
287
+ _headers=_headers,
288
+ _host_index=_host_index
289
+ )
290
+
291
+ _response_types_map: Dict[str, Optional[str]] = {
292
+ '200': "InformationSchemaResponse",
293
+ '404': "ApiErrorResponse",
294
+ }
295
+ response_data = self.api_client.call_api(
296
+ *_param,
297
+ _request_timeout=_request_timeout
298
+ )
299
+ return response_data.response
300
+
301
+
302
+ def _information_schema_serialize(
303
+ self,
304
+ connection_id,
305
+ var_schema,
306
+ table,
307
+ include_columns,
308
+ limit,
309
+ cursor,
310
+ _request_auth,
311
+ _content_type,
312
+ _headers,
313
+ _host_index,
314
+ ) -> RequestSerialized:
315
+
316
+ _host = None
317
+
318
+ _collection_formats: Dict[str, str] = {
319
+ }
320
+
321
+ _path_params: Dict[str, str] = {}
322
+ _query_params: List[Tuple[str, str]] = []
323
+ _header_params: Dict[str, Optional[str]] = _headers or {}
324
+ _form_params: List[Tuple[str, str]] = []
325
+ _files: Dict[
326
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
327
+ ] = {}
328
+ _body_params: Optional[bytes] = None
329
+
330
+ # process the path parameters
331
+ # process the query parameters
332
+ if connection_id is not None:
333
+
334
+ _query_params.append(('connection_id', connection_id))
335
+
336
+ if var_schema is not None:
337
+
338
+ _query_params.append(('schema', var_schema))
339
+
340
+ if table is not None:
341
+
342
+ _query_params.append(('table', table))
343
+
344
+ if include_columns is not None:
345
+
346
+ _query_params.append(('include_columns', include_columns))
347
+
348
+ if limit is not None:
349
+
350
+ _query_params.append(('limit', limit))
351
+
352
+ if cursor is not None:
353
+
354
+ _query_params.append(('cursor', cursor))
355
+
356
+ # process the header parameters
357
+ # process the form parameters
358
+ # process the body parameter
359
+
360
+
361
+ # set the HTTP header `Accept`
362
+ if 'Accept' not in _header_params:
363
+ _header_params['Accept'] = self.api_client.select_header_accept(
364
+ [
365
+ 'application/json'
366
+ ]
367
+ )
368
+
369
+
370
+ # authentication setting
371
+ _auth_settings: List[str] = [
372
+ 'BearerAuth'
373
+ ]
374
+
375
+ return self.api_client.param_serialize(
376
+ method='GET',
377
+ resource_path='/v1/information_schema',
378
+ path_params=_path_params,
379
+ query_params=_query_params,
380
+ header_params=_header_params,
381
+ body=_body_params,
382
+ post_params=_form_params,
383
+ files=_files,
384
+ auth_settings=_auth_settings,
385
+ collection_formats=_collection_formats,
386
+ _host=_host,
387
+ _request_auth=_request_auth
388
+ )
389
+
390
+