singlestoredb 1.16.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 (183) hide show
  1. singlestoredb/__init__.py +75 -0
  2. singlestoredb/ai/__init__.py +2 -0
  3. singlestoredb/ai/chat.py +139 -0
  4. singlestoredb/ai/embeddings.py +128 -0
  5. singlestoredb/alchemy/__init__.py +90 -0
  6. singlestoredb/apps/__init__.py +3 -0
  7. singlestoredb/apps/_cloud_functions.py +90 -0
  8. singlestoredb/apps/_config.py +72 -0
  9. singlestoredb/apps/_connection_info.py +18 -0
  10. singlestoredb/apps/_dashboards.py +47 -0
  11. singlestoredb/apps/_process.py +32 -0
  12. singlestoredb/apps/_python_udfs.py +100 -0
  13. singlestoredb/apps/_stdout_supress.py +30 -0
  14. singlestoredb/apps/_uvicorn_util.py +36 -0
  15. singlestoredb/auth.py +245 -0
  16. singlestoredb/config.py +484 -0
  17. singlestoredb/connection.py +1487 -0
  18. singlestoredb/converters.py +950 -0
  19. singlestoredb/docstring/__init__.py +33 -0
  20. singlestoredb/docstring/attrdoc.py +126 -0
  21. singlestoredb/docstring/common.py +230 -0
  22. singlestoredb/docstring/epydoc.py +267 -0
  23. singlestoredb/docstring/google.py +412 -0
  24. singlestoredb/docstring/numpydoc.py +562 -0
  25. singlestoredb/docstring/parser.py +100 -0
  26. singlestoredb/docstring/py.typed +1 -0
  27. singlestoredb/docstring/rest.py +256 -0
  28. singlestoredb/docstring/tests/__init__.py +1 -0
  29. singlestoredb/docstring/tests/_pydoctor.py +21 -0
  30. singlestoredb/docstring/tests/test_epydoc.py +729 -0
  31. singlestoredb/docstring/tests/test_google.py +1007 -0
  32. singlestoredb/docstring/tests/test_numpydoc.py +1100 -0
  33. singlestoredb/docstring/tests/test_parse_from_object.py +109 -0
  34. singlestoredb/docstring/tests/test_parser.py +248 -0
  35. singlestoredb/docstring/tests/test_rest.py +547 -0
  36. singlestoredb/docstring/tests/test_util.py +70 -0
  37. singlestoredb/docstring/util.py +141 -0
  38. singlestoredb/exceptions.py +120 -0
  39. singlestoredb/functions/__init__.py +16 -0
  40. singlestoredb/functions/decorator.py +201 -0
  41. singlestoredb/functions/dtypes.py +1793 -0
  42. singlestoredb/functions/ext/__init__.py +1 -0
  43. singlestoredb/functions/ext/arrow.py +375 -0
  44. singlestoredb/functions/ext/asgi.py +2133 -0
  45. singlestoredb/functions/ext/json.py +420 -0
  46. singlestoredb/functions/ext/mmap.py +413 -0
  47. singlestoredb/functions/ext/rowdat_1.py +724 -0
  48. singlestoredb/functions/ext/timer.py +89 -0
  49. singlestoredb/functions/ext/utils.py +218 -0
  50. singlestoredb/functions/signature.py +1578 -0
  51. singlestoredb/functions/typing/__init__.py +41 -0
  52. singlestoredb/functions/typing/numpy.py +20 -0
  53. singlestoredb/functions/typing/pandas.py +2 -0
  54. singlestoredb/functions/typing/polars.py +2 -0
  55. singlestoredb/functions/typing/pyarrow.py +2 -0
  56. singlestoredb/functions/utils.py +421 -0
  57. singlestoredb/fusion/__init__.py +11 -0
  58. singlestoredb/fusion/graphql.py +213 -0
  59. singlestoredb/fusion/handler.py +916 -0
  60. singlestoredb/fusion/handlers/__init__.py +0 -0
  61. singlestoredb/fusion/handlers/export.py +525 -0
  62. singlestoredb/fusion/handlers/files.py +690 -0
  63. singlestoredb/fusion/handlers/job.py +660 -0
  64. singlestoredb/fusion/handlers/models.py +250 -0
  65. singlestoredb/fusion/handlers/stage.py +502 -0
  66. singlestoredb/fusion/handlers/utils.py +324 -0
  67. singlestoredb/fusion/handlers/workspace.py +956 -0
  68. singlestoredb/fusion/registry.py +249 -0
  69. singlestoredb/fusion/result.py +399 -0
  70. singlestoredb/http/__init__.py +27 -0
  71. singlestoredb/http/connection.py +1267 -0
  72. singlestoredb/magics/__init__.py +34 -0
  73. singlestoredb/magics/run_personal.py +137 -0
  74. singlestoredb/magics/run_shared.py +134 -0
  75. singlestoredb/management/__init__.py +9 -0
  76. singlestoredb/management/billing_usage.py +148 -0
  77. singlestoredb/management/cluster.py +462 -0
  78. singlestoredb/management/export.py +295 -0
  79. singlestoredb/management/files.py +1102 -0
  80. singlestoredb/management/inference_api.py +105 -0
  81. singlestoredb/management/job.py +887 -0
  82. singlestoredb/management/manager.py +373 -0
  83. singlestoredb/management/organization.py +226 -0
  84. singlestoredb/management/region.py +169 -0
  85. singlestoredb/management/utils.py +423 -0
  86. singlestoredb/management/workspace.py +1927 -0
  87. singlestoredb/mysql/__init__.py +177 -0
  88. singlestoredb/mysql/_auth.py +298 -0
  89. singlestoredb/mysql/charset.py +214 -0
  90. singlestoredb/mysql/connection.py +2032 -0
  91. singlestoredb/mysql/constants/CLIENT.py +38 -0
  92. singlestoredb/mysql/constants/COMMAND.py +32 -0
  93. singlestoredb/mysql/constants/CR.py +78 -0
  94. singlestoredb/mysql/constants/ER.py +474 -0
  95. singlestoredb/mysql/constants/EXTENDED_TYPE.py +3 -0
  96. singlestoredb/mysql/constants/FIELD_TYPE.py +48 -0
  97. singlestoredb/mysql/constants/FLAG.py +15 -0
  98. singlestoredb/mysql/constants/SERVER_STATUS.py +10 -0
  99. singlestoredb/mysql/constants/VECTOR_TYPE.py +6 -0
  100. singlestoredb/mysql/constants/__init__.py +0 -0
  101. singlestoredb/mysql/converters.py +271 -0
  102. singlestoredb/mysql/cursors.py +896 -0
  103. singlestoredb/mysql/err.py +92 -0
  104. singlestoredb/mysql/optionfile.py +20 -0
  105. singlestoredb/mysql/protocol.py +450 -0
  106. singlestoredb/mysql/tests/__init__.py +19 -0
  107. singlestoredb/mysql/tests/base.py +126 -0
  108. singlestoredb/mysql/tests/conftest.py +37 -0
  109. singlestoredb/mysql/tests/test_DictCursor.py +132 -0
  110. singlestoredb/mysql/tests/test_SSCursor.py +141 -0
  111. singlestoredb/mysql/tests/test_basic.py +452 -0
  112. singlestoredb/mysql/tests/test_connection.py +851 -0
  113. singlestoredb/mysql/tests/test_converters.py +58 -0
  114. singlestoredb/mysql/tests/test_cursor.py +141 -0
  115. singlestoredb/mysql/tests/test_err.py +16 -0
  116. singlestoredb/mysql/tests/test_issues.py +514 -0
  117. singlestoredb/mysql/tests/test_load_local.py +75 -0
  118. singlestoredb/mysql/tests/test_nextset.py +88 -0
  119. singlestoredb/mysql/tests/test_optionfile.py +27 -0
  120. singlestoredb/mysql/tests/thirdparty/__init__.py +6 -0
  121. singlestoredb/mysql/tests/thirdparty/test_MySQLdb/__init__.py +9 -0
  122. singlestoredb/mysql/tests/thirdparty/test_MySQLdb/capabilities.py +323 -0
  123. singlestoredb/mysql/tests/thirdparty/test_MySQLdb/dbapi20.py +865 -0
  124. singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_capabilities.py +110 -0
  125. singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_dbapi20.py +224 -0
  126. singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_nonstandard.py +101 -0
  127. singlestoredb/mysql/times.py +23 -0
  128. singlestoredb/notebook/__init__.py +16 -0
  129. singlestoredb/notebook/_objects.py +213 -0
  130. singlestoredb/notebook/_portal.py +352 -0
  131. singlestoredb/py.typed +0 -0
  132. singlestoredb/pytest.py +352 -0
  133. singlestoredb/server/__init__.py +0 -0
  134. singlestoredb/server/docker.py +452 -0
  135. singlestoredb/server/free_tier.py +267 -0
  136. singlestoredb/tests/__init__.py +0 -0
  137. singlestoredb/tests/alltypes.sql +307 -0
  138. singlestoredb/tests/alltypes_no_nulls.sql +208 -0
  139. singlestoredb/tests/empty.sql +0 -0
  140. singlestoredb/tests/ext_funcs/__init__.py +702 -0
  141. singlestoredb/tests/local_infile.csv +3 -0
  142. singlestoredb/tests/test.ipynb +18 -0
  143. singlestoredb/tests/test.sql +680 -0
  144. singlestoredb/tests/test2.ipynb +18 -0
  145. singlestoredb/tests/test2.sql +1 -0
  146. singlestoredb/tests/test_basics.py +1332 -0
  147. singlestoredb/tests/test_config.py +318 -0
  148. singlestoredb/tests/test_connection.py +3103 -0
  149. singlestoredb/tests/test_dbapi.py +27 -0
  150. singlestoredb/tests/test_exceptions.py +45 -0
  151. singlestoredb/tests/test_ext_func.py +1472 -0
  152. singlestoredb/tests/test_ext_func_data.py +1101 -0
  153. singlestoredb/tests/test_fusion.py +1527 -0
  154. singlestoredb/tests/test_http.py +288 -0
  155. singlestoredb/tests/test_management.py +1599 -0
  156. singlestoredb/tests/test_plugin.py +33 -0
  157. singlestoredb/tests/test_results.py +171 -0
  158. singlestoredb/tests/test_types.py +132 -0
  159. singlestoredb/tests/test_udf.py +737 -0
  160. singlestoredb/tests/test_udf_returns.py +459 -0
  161. singlestoredb/tests/test_vectorstore.py +51 -0
  162. singlestoredb/tests/test_xdict.py +333 -0
  163. singlestoredb/tests/utils.py +141 -0
  164. singlestoredb/types.py +373 -0
  165. singlestoredb/utils/__init__.py +0 -0
  166. singlestoredb/utils/config.py +950 -0
  167. singlestoredb/utils/convert_rows.py +69 -0
  168. singlestoredb/utils/debug.py +13 -0
  169. singlestoredb/utils/dtypes.py +205 -0
  170. singlestoredb/utils/events.py +65 -0
  171. singlestoredb/utils/mogrify.py +151 -0
  172. singlestoredb/utils/results.py +585 -0
  173. singlestoredb/utils/xdict.py +425 -0
  174. singlestoredb/vectorstore.py +192 -0
  175. singlestoredb/warnings.py +5 -0
  176. singlestoredb-1.16.1.dist-info/METADATA +165 -0
  177. singlestoredb-1.16.1.dist-info/RECORD +183 -0
  178. singlestoredb-1.16.1.dist-info/WHEEL +5 -0
  179. singlestoredb-1.16.1.dist-info/entry_points.txt +2 -0
  180. singlestoredb-1.16.1.dist-info/licenses/LICENSE +201 -0
  181. singlestoredb-1.16.1.dist-info/top_level.txt +3 -0
  182. sqlx/__init__.py +4 -0
  183. sqlx/magic.py +113 -0
@@ -0,0 +1,250 @@
1
+ #!/usr/bin/env python3
2
+ import os
3
+ from typing import Any
4
+ from typing import Dict
5
+ from typing import Optional
6
+
7
+ from ..handler import SQLHandler
8
+ from ..result import FusionSQLResult
9
+ from .files import ShowFilesHandler
10
+ from .utils import get_file_space
11
+
12
+
13
+ class ShowModelsHandler(ShowFilesHandler):
14
+ """
15
+ SHOW MODELS
16
+ [ at_path ] [ <like> ]
17
+ [ <order-by> ]
18
+ [ <limit> ] [ recursive ] [ extended ];
19
+
20
+ # File path to list
21
+ at_path = AT '<path>'
22
+
23
+ # Should the listing be recursive?
24
+ recursive = RECURSIVE
25
+
26
+ # Should extended attributes be shown?
27
+ extended = EXTENDED
28
+
29
+ Description
30
+ -----------
31
+ Displays the list of models in models space.
32
+
33
+ Arguments
34
+ ---------
35
+ * ``<path>``: A path in the models space.
36
+ * ``<pattern>``: A pattern similar to SQL LIKE clause.
37
+ Uses ``%`` as the wildcard character.
38
+
39
+ Remarks
40
+ -------
41
+ * Use the ``LIKE`` clause to specify a pattern and return only the
42
+ files that match the specified pattern.
43
+ * The ``LIMIT`` clause limits the number of results to the
44
+ specified number.
45
+ * Use the ``ORDER BY`` clause to sort the results by the specified
46
+ key. By default, the results are sorted in the ascending order.
47
+ * The ``AT`` clause specifies the path in the models
48
+ space to list the files from.
49
+ * To return more information about the files, use the ``EXTENDED``
50
+ clause.
51
+
52
+ Examples
53
+ --------
54
+ The following command lists the models::
55
+
56
+ SHOW MODELS;
57
+
58
+ The following command lists the models with additional information::
59
+
60
+ SHOW MODELS EXTENDED;
61
+
62
+ See Also
63
+ --------
64
+ * ``UPLOAD MODEL model_name FROM path``
65
+ * ``DOWNLOAD MODEL model_name``
66
+
67
+
68
+ """ # noqa: E501
69
+
70
+ def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
71
+ params['file_location'] = 'MODELS'
72
+
73
+ return super().run(params)
74
+
75
+
76
+ ShowModelsHandler.register(overwrite=True)
77
+
78
+
79
+ class UploadModelHandler(SQLHandler):
80
+ """
81
+ UPLOAD MODEL model_name
82
+ FROM local_path [ overwrite ];
83
+
84
+ # Model Name
85
+ model_name = '<model-name>'
86
+
87
+ # Path to local file or directory
88
+ local_path = '<local-path>'
89
+
90
+ # Should an existing file be overwritten?
91
+ overwrite = OVERWRITE
92
+
93
+ Description
94
+ -----------
95
+ Uploads a file or folder to models space.
96
+
97
+ Arguments
98
+ ---------
99
+ * ``<model-name>``: Model name.
100
+ * ``<local-path>``: The path to the file or folder to upload in the local
101
+ directory.
102
+
103
+ Remarks
104
+ -------
105
+ * If the ``OVERWRITE`` clause is specified, any existing file at the
106
+ specified path in the models space is overwritten.
107
+
108
+ Examples
109
+ --------
110
+ The following command uploads a file to models space and overwrite any
111
+ existing files at the specified path::
112
+
113
+ UPLOAD MODEL model_name
114
+ FROM 'llama3/' OVERWRITE;
115
+
116
+ See Also
117
+ --------
118
+ * ``DOWNLOAD MODEL model_name``
119
+
120
+ """ # noqa: E501
121
+
122
+ def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
123
+ params['file_location'] = 'MODELS'
124
+
125
+ model_name = params['model_name']
126
+ local_path = params['local_path']
127
+
128
+ file_space = get_file_space(params)
129
+
130
+ if os.path.isdir(local_path):
131
+ file_space.upload_folder(
132
+ local_path=local_path,
133
+ path=os.path.join(model_name, ''),
134
+ overwrite=params['overwrite'],
135
+ )
136
+ else:
137
+ file_space.upload_file(
138
+ local_path=local_path,
139
+ path=os.path.join(model_name, local_path),
140
+ overwrite=params['overwrite'],
141
+ )
142
+
143
+ return None
144
+
145
+
146
+ UploadModelHandler.register(overwrite=True)
147
+
148
+
149
+ class DownloadModelHandler(SQLHandler):
150
+ """
151
+ DOWNLOAD MODEL model_name
152
+ [ local_path ]
153
+ [ overwrite ];
154
+
155
+ # Model Name
156
+ model_name = '<model-name>'
157
+
158
+ # Path to local directory
159
+ local_path = TO '<local-path>'
160
+
161
+ # Should an existing directory be overwritten?
162
+ overwrite = OVERWRITE
163
+
164
+ Description
165
+ -----------
166
+ Download a model from models space.
167
+
168
+ Arguments
169
+ ---------
170
+ * ``<model-name>``: Model name to download in models space.
171
+ * ``<local-path>``: Specifies the path in the local directory
172
+ where the model is downloaded.
173
+
174
+ Remarks
175
+ -------
176
+ * If the ``OVERWRITE`` clause is specified, any existing file or folder at
177
+ the download location is overwritten.
178
+ * If ``<local-path>`` is not specified, the model is downloaded to the current location.
179
+
180
+ Examples
181
+ --------
182
+ The following command displays the contents of the file on the
183
+ standard output::
184
+
185
+ DOWNLOAD MODEL llama3;
186
+
187
+ The following command downloads a model to a specific location and
188
+ overwrites any existing models folder with the name ``local_llama3`` on the local storage::
189
+
190
+ DOWNLOAD MODEL llama3
191
+ TO 'local_llama3' OVERWRITE;
192
+
193
+ See Also
194
+ --------
195
+ * ``UPLOAD MODEL model_name FROM local_path``
196
+
197
+ """ # noqa: E501
198
+
199
+ def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
200
+ params['file_location'] = 'MODELS'
201
+
202
+ file_space = get_file_space(params)
203
+
204
+ model_name = params['model_name']
205
+ file_space.download_folder(
206
+ path=os.path.join(model_name, ''),
207
+ local_path=params['local_path'] or model_name,
208
+ overwrite=params['overwrite'],
209
+ )
210
+
211
+ return None
212
+
213
+
214
+ DownloadModelHandler.register(overwrite=True)
215
+
216
+
217
+ class DropModelsHandler(SQLHandler):
218
+ """
219
+ DROP MODEL model_name;
220
+
221
+ # Model Name
222
+ model_name = '<model-name>'
223
+
224
+ Description
225
+ -----------
226
+ Deletes a model from models space.
227
+
228
+ Arguments
229
+ ---------
230
+ * ``<model-name>``: Model name to delete in models space.
231
+
232
+ Example
233
+ --------
234
+ The following commands deletes a model from a model space::
235
+
236
+ DROP MODEL llama3;
237
+
238
+ """ # noqa: E501
239
+
240
+ def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
241
+ params['file_location'] = 'MODELS'
242
+ path = os.path.join(params['model_name'], '')
243
+
244
+ file_space = get_file_space(params)
245
+ file_space.removedirs(path=path)
246
+
247
+ return None
248
+
249
+
250
+ DropModelsHandler.register(overwrite=True)