singlestoredb 0.10.1__cp38-abi3-win32.whl → 0.10.2__cp38-abi3-win32.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.

Potentially problematic release.


This version of singlestoredb might be problematic. Click here for more details.

_singlestoredb_accel.pyd CHANGED
Binary file
singlestoredb/__init__.py CHANGED
@@ -13,7 +13,7 @@ Examples
13
13
 
14
14
  """
15
15
 
16
- __version__ = '0.10.1'
16
+ __version__ = '0.10.2'
17
17
 
18
18
  from .alchemy import create_engine
19
19
  from .config import options, get_option, set_option, describe_option
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  import datetime
3
+ import os
3
4
  from typing import Any
4
5
  from typing import Dict
5
6
  from typing import Optional
@@ -26,15 +27,17 @@ def get_workspace_group(params: Dict[str, Any]) -> WorkspaceGroup:
26
27
  """Find a workspace group matching group_id or group_name."""
27
28
  manager = get_workspace_manager()
28
29
 
29
- if params['group_name']:
30
+ group_name = params.get('group_name') or \
31
+ (params.get('in_group') or {}).get('group_name')
32
+ if group_name:
30
33
  workspace_groups = [
31
34
  x for x in manager.workspace_groups
32
- if x.name == params['group_name']
35
+ if x.name == group_name
33
36
  ]
34
37
 
35
38
  if not workspace_groups:
36
39
  raise KeyError(
37
- 'no workspace group found with name "{}"'.format(params['group_name']),
40
+ 'no workspace group found with name "{}"'.format(group_name),
38
41
  )
39
42
 
40
43
  if len(workspace_groups) > 1:
@@ -45,4 +48,17 @@ def get_workspace_group(params: Dict[str, Any]) -> WorkspaceGroup:
45
48
 
46
49
  return workspace_groups[0]
47
50
 
48
- return manager.get_workspace_group(params['group_id'])
51
+ group_id = params.get('group_id') or \
52
+ (params.get('in_group') or {}).get('group_id')
53
+ if group_id:
54
+ return manager.get_workspace_group(group_id)
55
+
56
+ if os.environ.get('SINGLESTOREDB_WORKSPACE_GROUP'):
57
+ return manager.get_workspace_group(
58
+ os.environ['SINGLESTOREDB_WORKSPACE_GROUP'],
59
+ )
60
+
61
+ if os.environ.get('SINGLESTOREDB_CLUSTER'):
62
+ raise ValueError('clusters and shared workspaces are not currently supported')
63
+
64
+ raise KeyError('no workspace group was specified')
@@ -80,8 +80,10 @@ ShowWorkspaceGroupsHandler.register()
80
80
 
81
81
  class ShowWorkspacesHandler(SQLHandler):
82
82
  """
83
- SHOW WORKSPACES IN GROUP { group_id | group_name }
84
- [ <like> ] [ <extended> ] [ <order-by> ] [ <limit> ];
83
+ SHOW WORKSPACES [ in_group ] [ <like> ] [ <extended> ] [ <order-by> ] [ <limit> ];
84
+
85
+ # Workspace group
86
+ in_group = IN GROUP { group_id | group_name }
85
87
 
86
88
  # ID of group
87
89
  group_id = ID '<group-id>'
@@ -198,10 +200,12 @@ CreateWorkspaceGroupHandler.register()
198
200
 
199
201
  class CreateWorkspaceHandler(SQLHandler):
200
202
  """
201
- CREATE WORKSPACE [ if_not_exists ] workspace_name
202
- IN GROUP { group_id | group_name }
203
+ CREATE WORKSPACE [ if_not_exists ] workspace_name [ in_group ]
203
204
  WITH SIZE size [ wait_on_active ];
204
205
 
206
+ # Create workspace in workspace group
207
+ in_group = IN GROUP { group_id | group_name }
208
+
205
209
  # Only run command if workspace doesn't already exist
206
210
  if_not_exists = IF NOT EXISTS
207
211
 
@@ -264,15 +268,15 @@ class DropWorkspaceGroupHandler(SQLHandler):
264
268
  """
265
269
 
266
270
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
267
- manager = get_workspace_manager()
268
-
269
271
  try:
270
- name_or_id = params['group_name'] or params['group_id']
271
- wg = manager.workspace_groups[name_or_id]
272
- wg.terminate(wait_on_terminated=params['wait_on_terminated'])
272
+ workspace_group = get_workspace_group(params)
273
+ if workspace_group.terminated_at is not None:
274
+ raise KeyError
275
+ workspace_group.terminate(wait_on_terminated=params['wait_on_terminated'])
273
276
 
274
277
  except KeyError:
275
278
  if not params['if_exists']:
279
+ name_or_id = params['group_id'] or params['group_name']
276
280
  raise KeyError(f"could not find workspace group '{name_or_id}'")
277
281
 
278
282
  return None
@@ -284,7 +288,10 @@ DropWorkspaceGroupHandler.register()
284
288
  class DropWorkspaceHandler(SQLHandler):
285
289
  """
286
290
  DROP WORKSPACE [ if_exists ] { workspace_id | workspace_name }
287
- IN GROUP { group_id | group_name } [ wait_on_terminated ];
291
+ [ in_group ] [ wait_on_terminated ];
292
+
293
+ # Workspace group
294
+ in_group = IN GROUP { group_id | group_name }
288
295
 
289
296
  # Only drop workspace if it exists
290
297
  if_exists = IF EXISTS
@@ -307,16 +314,15 @@ class DropWorkspaceHandler(SQLHandler):
307
314
  """
308
315
 
309
316
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
310
- manager = get_workspace_manager()
311
-
312
317
  try:
318
+ workspace_group = get_workspace_group(params)
313
319
  workspace_name_or_id = params['workspace_name'] or params['workspace_id']
314
- group_name_or_id = params['group_name'] or params['group_id']
315
- wg = manager.workspace_groups[group_name_or_id]
316
- ws = wg.workspaces[workspace_name_or_id]
320
+ ws = workspace_group.workspaces[workspace_name_or_id]
317
321
  ws.terminate(wait_on_terminated=params['wait_on_terminated'])
318
322
 
319
323
  except KeyError:
324
+ group_name_or_id = params['in_group'].get('group_id', None) or \
325
+ params['in_group'].get('group_name', None)
320
326
  if not params['if_exists']:
321
327
  raise KeyError(
322
328
  f"could not find workspace '{workspace_name_or_id}' "
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: singlestoredb
3
- Version: 0.10.1
3
+ Version: 0.10.2
4
4
  Summary: Interface to the SingleStoreDB database and workspace management APIs
5
5
  Home-page: https://github.com/singlestore-labs/singlestoredb-python
6
6
  Author: SingleStore
@@ -1,5 +1,5 @@
1
- _singlestoredb_accel.pyd,sha256=mCY7pUnRTRR7-MsBxCgVv4-xdev2CoBAFWRoD0qMaKk,42496
2
- singlestoredb/__init__.py,sha256=pfNhZinZq6ma34r0C7lVLA1LbrG9pJhwEQuyOdB1hVM,910
1
+ _singlestoredb_accel.pyd,sha256=Q7DZfTnjn_9MIileaf3QbX7iZhD139iuixKmuJLiAys,42496
2
+ singlestoredb/__init__.py,sha256=HVmH2GEx2_Vmnv0hvAFuRaB2yiP3MMmGY6cfiqJ2AFo,910
3
3
  singlestoredb/auth.py,sha256=RmYiH0Wlc2RXc4pTlRMysxtBI445ggCIwojWKC_eDLE,7844
4
4
  singlestoredb/config.py,sha256=Uq7LWKlIwMAJC3_G3j5dUIQVJf2JzbDVtRK6votjuDw,7746
5
5
  singlestoredb/connection.py,sha256=gSKmMN1d_ZSXVTmzfuHK3BXcLyNGiaSi2Vy6z7nymjg,45657
@@ -22,8 +22,8 @@ singlestoredb/fusion/registry.py,sha256=7wELKu09I6N4Oif4lpqAHCy8p_C4COn85hhtoCN5
22
22
  singlestoredb/fusion/result.py,sha256=EcFY5Qv43ySlQsfl_JB-I3ko7PzVdjuhhoKN96uHSAM,12171
23
23
  singlestoredb/fusion/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  singlestoredb/fusion/handlers/stage.py,sha256=VEoHU3q5BX3lCl6pG9jVf-eviqkTZhyzTbO3sRKrMPs,5426
25
- singlestoredb/fusion/handlers/utils.py,sha256=GPDlvm-hU2zwTYczyITHcWwmBc4BwhiVN5JF3SeX2Nw,1476
26
- singlestoredb/fusion/handlers/workspace.py,sha256=Q6rEa0I74V3ujn_JHzUAROz8GxgLMjLWSaeiVpC5ZSs,9770
25
+ singlestoredb/fusion/handlers/utils.py,sha256=H79iVSp0EZKyL3vI8OX8m8cBuFfU-7X9u5CjqnFBmRs,2045
26
+ singlestoredb/fusion/handlers/workspace.py,sha256=b21Vi6zZPi8TyWaI7BcAF4L7KGU6xFNV3EAN7wF1fN4,10045
27
27
  singlestoredb/http/__init__.py,sha256=4cEDvLloGc3LSpU-PnIwacyu0n5oIIIE6xk2SPyWD_w,939
28
28
  singlestoredb/http/connection.py,sha256=vYP10ZsqrhK8RrLS17OVuMkpTsO0VZQu3bxx1FQzUwU,37839
29
29
  singlestoredb/management/__init__.py,sha256=kdKM-wErALWaEHYBLx_raHkJ8xUvUPflhOk8OBJyn58,173
@@ -98,8 +98,8 @@ singlestoredb/utils/debug.py,sha256=y7dnJeJGt3U_BWXz9pLt1qNQREpPtumYX_sk1DiqG6Y,
98
98
  singlestoredb/utils/mogrify.py,sha256=gCcn99-vgsGVjTUV7RHJ6hH4vCNrsGB_Xo4z8kiSPDQ,4201
99
99
  singlestoredb/utils/results.py,sha256=ely2XVAHHejObjLibS3UcrPOuCO2g5aRtA3PxAMtE-g,5432
100
100
  singlestoredb/utils/xdict.py,sha256=-wi1lSPTnY99fhVMBhPKJ8cCsQhNG4GMUfkEBDKYgCw,13321
101
- singlestoredb-0.10.1.dist-info/LICENSE,sha256=Bojenzui8aPNjlF3w4ojguDP7sTf8vFV_9Gc2UAG1sg,11542
102
- singlestoredb-0.10.1.dist-info/METADATA,sha256=iCAwLrDXbtWnwNl_MBAvGmu9vU0Ehm9WeD_pWrcf4mU,7794
103
- singlestoredb-0.10.1.dist-info/WHEEL,sha256=JjDd0FQBSruYmZy_b8ddnWkQmalS34MTxErrvze-qAs,96
104
- singlestoredb-0.10.1.dist-info/top_level.txt,sha256=SDtemIXf-Kp-_F2f_S6x0db33cHGOILdAEsIQZe2LZc,35
105
- singlestoredb-0.10.1.dist-info/RECORD,,
101
+ singlestoredb-0.10.2.dist-info/LICENSE,sha256=Bojenzui8aPNjlF3w4ojguDP7sTf8vFV_9Gc2UAG1sg,11542
102
+ singlestoredb-0.10.2.dist-info/METADATA,sha256=WJLPuZGqhIr4yEui0bNp7_4jhJkryaQ4-ZdHRkhkXus,7794
103
+ singlestoredb-0.10.2.dist-info/WHEEL,sha256=JjDd0FQBSruYmZy_b8ddnWkQmalS34MTxErrvze-qAs,96
104
+ singlestoredb-0.10.2.dist-info/top_level.txt,sha256=SDtemIXf-Kp-_F2f_S6x0db33cHGOILdAEsIQZe2LZc,35
105
+ singlestoredb-0.10.2.dist-info/RECORD,,