singlestoredb 1.14.2__cp38-abi3-win32.whl → 1.15.1__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.

Files changed (55) hide show
  1. _singlestoredb_accel.pyd +0 -0
  2. singlestoredb/__init__.py +2 -2
  3. singlestoredb/ai/chat.py +14 -0
  4. singlestoredb/apps/_python_udfs.py +3 -3
  5. singlestoredb/config.py +11 -0
  6. singlestoredb/docstring/__init__.py +33 -0
  7. singlestoredb/docstring/attrdoc.py +126 -0
  8. singlestoredb/docstring/common.py +230 -0
  9. singlestoredb/docstring/epydoc.py +267 -0
  10. singlestoredb/docstring/google.py +412 -0
  11. singlestoredb/docstring/numpydoc.py +562 -0
  12. singlestoredb/docstring/parser.py +100 -0
  13. singlestoredb/docstring/py.typed +1 -0
  14. singlestoredb/docstring/rest.py +256 -0
  15. singlestoredb/docstring/tests/__init__.py +1 -0
  16. singlestoredb/docstring/tests/_pydoctor.py +21 -0
  17. singlestoredb/docstring/tests/test_epydoc.py +729 -0
  18. singlestoredb/docstring/tests/test_google.py +1007 -0
  19. singlestoredb/docstring/tests/test_numpydoc.py +1100 -0
  20. singlestoredb/docstring/tests/test_parse_from_object.py +109 -0
  21. singlestoredb/docstring/tests/test_parser.py +248 -0
  22. singlestoredb/docstring/tests/test_rest.py +547 -0
  23. singlestoredb/docstring/tests/test_util.py +70 -0
  24. singlestoredb/docstring/util.py +141 -0
  25. singlestoredb/functions/decorator.py +51 -31
  26. singlestoredb/functions/ext/asgi.py +381 -35
  27. singlestoredb/functions/ext/timer.py +98 -0
  28. singlestoredb/functions/signature.py +374 -241
  29. singlestoredb/functions/typing/numpy.py +20 -0
  30. singlestoredb/functions/typing/pandas.py +2 -0
  31. singlestoredb/functions/typing/polars.py +2 -0
  32. singlestoredb/functions/typing/pyarrow.py +2 -0
  33. singlestoredb/fusion/handlers/files.py +4 -4
  34. singlestoredb/fusion/handlers/models.py +1 -1
  35. singlestoredb/fusion/handlers/stage.py +4 -4
  36. singlestoredb/magics/run_personal.py +82 -1
  37. singlestoredb/magics/run_shared.py +82 -1
  38. singlestoredb/management/__init__.py +1 -0
  39. singlestoredb/management/cluster.py +1 -1
  40. singlestoredb/management/manager.py +15 -5
  41. singlestoredb/management/region.py +104 -2
  42. singlestoredb/management/workspace.py +174 -3
  43. singlestoredb/tests/ext_funcs/__init__.py +133 -55
  44. singlestoredb/tests/test.sql +22 -0
  45. singlestoredb/tests/test_connection.py +18 -8
  46. singlestoredb/tests/test_ext_func.py +90 -0
  47. singlestoredb/tests/test_management.py +190 -0
  48. singlestoredb/tests/test_udf.py +43 -15
  49. {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/METADATA +1 -1
  50. {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/RECORD +55 -31
  51. /singlestoredb/functions/{typing.py → typing/__init__.py} +0 -0
  52. {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/LICENSE +0 -0
  53. {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/WHEEL +0 -0
  54. {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/entry_points.txt +0 -0
  55. {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/top_level.txt +0 -0
@@ -13,6 +13,8 @@ import pytest
13
13
  import singlestoredb as s2
14
14
  from singlestoredb.management.job import Status
15
15
  from singlestoredb.management.job import TargetType
16
+ from singlestoredb.management.region import Region
17
+ from singlestoredb.management.utils import NamedList
16
18
 
17
19
 
18
20
  TEST_DIR = pathlib.Path(os.path.dirname(__file__))
@@ -23,6 +25,11 @@ def clean_name(s):
23
25
  return re.sub(r'[^\w]', r'-', s).replace('_', '-').lower()
24
26
 
25
27
 
28
+ def shared_database_name(s):
29
+ """Return a shared database name. Cannot contain special characters except -"""
30
+ return re.sub(r'[^\w]', '', s).replace('-', '_').lower()
31
+
32
+
26
33
  @pytest.mark.management
27
34
  class TestCluster(unittest.TestCase):
28
35
 
@@ -363,6 +370,115 @@ class TestWorkspace(unittest.TestCase):
363
370
  assert 'endpoint' in cm.exception.msg, cm.exception.msg
364
371
 
365
372
 
373
+ @pytest.mark.management
374
+ class TestStarterWorkspace(unittest.TestCase):
375
+
376
+ manager = None
377
+ starter_workspace = None
378
+
379
+ @classmethod
380
+ def setUpClass(cls):
381
+ cls.manager = s2.manage_workspaces()
382
+
383
+ shared_tier_regions: NamedList[Region] = [
384
+ x for x in cls.manager.shared_tier_regions if 'US' in x.name
385
+ ]
386
+ cls.starter_username = 'starter_user'
387
+ cls.password = secrets.token_urlsafe(20)
388
+
389
+ name = shared_database_name(secrets.token_urlsafe(20)[:20])
390
+
391
+ cls.database_name = f'starter_db_{name}'
392
+
393
+ shared_tier_region: Region = random.choice(shared_tier_regions)
394
+
395
+ if not shared_tier_region:
396
+ raise ValueError('No shared tier regions found')
397
+
398
+ cls.starter_workspace = cls.manager.create_starter_workspace(
399
+ f'starter-ws-test-{name}',
400
+ database_name=cls.database_name,
401
+ provider=shared_tier_region.provider,
402
+ region_name=shared_tier_region.region_name,
403
+ )
404
+
405
+ cls.starter_workspace.create_user(
406
+ username=cls.starter_username,
407
+ password=cls.password,
408
+ )
409
+
410
+ @classmethod
411
+ def tearDownClass(cls):
412
+ if cls.starter_workspace is not None:
413
+ cls.starter_workspace.terminate()
414
+ cls.manager = None
415
+ cls.password = None
416
+
417
+ def test_str(self):
418
+ assert self.starter_workspace.name in str(self.starter_workspace.name)
419
+
420
+ def test_repr(self):
421
+ assert repr(self.starter_workspace) == str(self.starter_workspace)
422
+
423
+ def test_get_starter_workspace(self):
424
+ workspace = self.manager.get_starter_workspace(self.starter_workspace.id)
425
+ assert workspace.id == self.starter_workspace.id, workspace.id
426
+
427
+ with self.assertRaises(s2.ManagementError) as cm:
428
+ workspace = self.manager.get_starter_workspace('bad id')
429
+
430
+ assert 'UUID' in cm.exception.msg, cm.exception.msg
431
+
432
+ def test_starter_workspaces(self):
433
+ workspaces = self.manager.starter_workspaces
434
+ ids = [x.id for x in workspaces]
435
+ names = [x.name for x in workspaces]
436
+ assert self.starter_workspace.id in ids
437
+ assert self.starter_workspace.name in names
438
+
439
+ objs = {}
440
+ for item in workspaces:
441
+ objs[item.id] = item
442
+ objs[item.name] = item
443
+
444
+ name = random.choice(names)
445
+ assert workspaces[name] == objs[name]
446
+ id = random.choice(ids)
447
+ assert workspaces[id] == objs[id]
448
+
449
+ def test_no_manager(self):
450
+ workspace = self.manager.get_starter_workspace(self.starter_workspace.id)
451
+ workspace._manager = None
452
+
453
+ with self.assertRaises(s2.ManagementError) as cm:
454
+ workspace.refresh()
455
+
456
+ assert 'No workspace manager' in cm.exception.msg, cm.exception.msg
457
+
458
+ with self.assertRaises(s2.ManagementError) as cm:
459
+ workspace.terminate()
460
+
461
+ assert 'No workspace manager' in cm.exception.msg, cm.exception.msg
462
+
463
+ def test_connect(self):
464
+ with self.starter_workspace.connect(
465
+ user=self.starter_username,
466
+ password=self.password,
467
+ ) as conn:
468
+ with conn.cursor() as cur:
469
+ cur.execute('show databases')
470
+ assert self.database_name in [x[0] for x in list(cur)]
471
+
472
+ # Test missing endpoint
473
+ workspace = self.manager.get_starter_workspace(self.starter_workspace.id)
474
+ workspace.endpoint = None
475
+
476
+ with self.assertRaises(s2.ManagementError) as cm:
477
+ workspace.connect(user=self.starter_username, password=self.password)
478
+
479
+ assert 'endpoint' in cm.exception.msg, cm.exception.msg
480
+
481
+
366
482
  @pytest.mark.management
367
483
  class TestStage(unittest.TestCase):
368
484
 
@@ -1372,3 +1488,77 @@ class TestFileSpaces(unittest.TestCase):
1372
1488
 
1373
1489
  # Cleanup
1374
1490
  space.remove('obj_test_2.ipynb')
1491
+
1492
+
1493
+ @pytest.mark.management
1494
+ class TestRegions(unittest.TestCase):
1495
+ """Test cases for region management."""
1496
+
1497
+ manager = None
1498
+
1499
+ @classmethod
1500
+ def setUpClass(cls):
1501
+ """Set up the test environment."""
1502
+ cls.manager = s2.manage_regions()
1503
+
1504
+ @classmethod
1505
+ def tearDownClass(cls):
1506
+ """Clean up the test environment."""
1507
+ cls.manager = None
1508
+
1509
+ def test_list_regions(self):
1510
+ """Test listing all regions."""
1511
+ regions = self.manager.list_regions()
1512
+
1513
+ # Verify we get a NamedList
1514
+ assert isinstance(regions, NamedList)
1515
+
1516
+ # Verify we have at least one region
1517
+ assert len(regions) > 0
1518
+
1519
+ # Verify region properties
1520
+ region = regions[0]
1521
+ assert isinstance(region, Region)
1522
+ assert hasattr(region, 'id')
1523
+ assert hasattr(region, 'name')
1524
+ assert hasattr(region, 'provider')
1525
+
1526
+ # Verify provider values
1527
+ providers = {x.provider for x in regions}
1528
+ assert 'Azure' in providers or 'GCP' in providers or 'AWS' in providers
1529
+
1530
+ def test_list_shared_tier_regions(self):
1531
+ """Test listing shared tier regions."""
1532
+ regions = self.manager.list_shared_tier_regions()
1533
+
1534
+ # Verify we get a NamedList
1535
+ assert isinstance(regions, NamedList)
1536
+
1537
+ # Verify region properties if we have any shared tier regions
1538
+ if regions:
1539
+ region = regions[0]
1540
+ assert isinstance(region, Region)
1541
+ assert hasattr(region, 'name')
1542
+ assert hasattr(region, 'provider')
1543
+ assert hasattr(region, 'region_name')
1544
+
1545
+ # Verify provider values
1546
+ providers = {x.provider for x in regions}
1547
+ assert any(p in providers for p in ['Azure', 'GCP', 'AWS'])
1548
+
1549
+ def test_str_repr(self):
1550
+ """Test string representation of regions."""
1551
+ regions = self.manager.list_regions()
1552
+ if not regions:
1553
+ self.skipTest('No regions available for testing')
1554
+
1555
+ region = regions[0]
1556
+
1557
+ # Test __str__
1558
+ s = str(region)
1559
+ assert region.id in s
1560
+ assert region.name in s
1561
+ assert region.provider in s
1562
+
1563
+ # Test __repr__
1564
+ assert repr(region) == str(region)
@@ -36,6 +36,32 @@ def to_sql(x):
36
36
 
37
37
  class TestUDF(unittest.TestCase):
38
38
 
39
+ def test_invalid_signature(self):
40
+
41
+ def foo(x: np.ndarray, y: np.ndarray) -> str: ...
42
+ with self.assertRaises(TypeError):
43
+ to_sql(foo)
44
+
45
+ def foo(x: str, y: str) -> np.ndarray: ...
46
+ with self.assertRaises(TypeError):
47
+ to_sql(foo)
48
+
49
+ def foo(x: str, y: np.ndarray) -> np.ndarray: ...
50
+ with self.assertRaises(TypeError):
51
+ to_sql(foo)
52
+
53
+ def foo(x: np.ndarray, y: str) -> np.ndarray: ...
54
+ with self.assertRaises(TypeError):
55
+ to_sql(foo)
56
+
57
+ def foo(x: str, y: np.ndarray) -> str: ...
58
+ with self.assertRaises(TypeError):
59
+ to_sql(foo)
60
+
61
+ def foo(x: np.ndarray, y: str) -> str: ...
62
+ with self.assertRaises(TypeError):
63
+ to_sql(foo)
64
+
39
65
  def test_return_annotations(self):
40
66
 
41
67
  # No annotations
@@ -76,24 +102,25 @@ class TestUDF(unittest.TestCase):
76
102
  assert to_sql(foo) == '`foo`() RETURNS DOUBLE NULL'
77
103
 
78
104
  # Optional return value with collection type
79
- def foo() -> Optional[List[str]]: ...
80
- assert to_sql(foo) == '`foo`() RETURNS ARRAY(TEXT NOT NULL) NULL'
105
+ # def foo() -> Optional[List[str]]: ...
106
+ # assert to_sql(foo) == '`foo`() RETURNS ARRAY(TEXT NOT NULL) NULL'
81
107
 
82
108
  # Optional return value with nested collection type
83
- def foo() -> Optional[List[List[str]]]: ...
84
- assert to_sql(foo) == '`foo`() RETURNS ARRAY(ARRAY(TEXT NOT NULL) NOT NULL) NULL'
109
+ # def foo() -> Optional[List[List[str]]]: ...
110
+ # assert to_sql(foo) == '`foo`()
111
+ # RETURNS ARRAY(ARRAY(TEXT NOT NULL) NOT NULL) NULL'
85
112
 
86
113
  # Optional return value with collection type with nulls
87
- def foo() -> Optional[List[Optional[str]]]: ...
88
- assert to_sql(foo) == '`foo`() RETURNS ARRAY(TEXT NULL) NULL'
114
+ # def foo() -> Optional[List[Optional[str]]]: ...
115
+ # assert to_sql(foo) == '`foo`() RETURNS ARRAY(TEXT NULL) NULL'
89
116
 
90
117
  # Custom type with bound
91
118
  def foo() -> D: ...
92
119
  assert to_sql(foo) == '`foo`() RETURNS TEXT NOT NULL'
93
120
 
94
121
  # Return value with custom collection type with nulls
95
- def foo() -> E: ...
96
- assert to_sql(foo) == '`foo`() RETURNS ARRAY(DOUBLE NULL) NULL'
122
+ # def foo() -> E: ...
123
+ # assert to_sql(foo) == '`foo`() RETURNS ARRAY(DOUBLE NULL) NULL'
97
124
 
98
125
  # Incompatible types
99
126
  def foo() -> Union[int, str]: ...
@@ -158,17 +185,18 @@ class TestUDF(unittest.TestCase):
158
185
  assert to_sql(foo) == '`foo`(`x` DOUBLE NULL) RETURNS TINYINT NULL'
159
186
 
160
187
  # Optional parameter with collection type
161
- def foo(x: Optional[List[str]]) -> None: ...
162
- assert to_sql(foo) == '`foo`(`x` ARRAY(TEXT NOT NULL) NULL) RETURNS TINYINT NULL'
188
+ # def foo(x: Optional[List[str]]) -> None: ...
189
+ # assert to_sql(foo) == '`foo`(`x`
190
+ # ARRAY(TEXT NOT NULL) NULL) RETURNS TINYINT NULL'
163
191
 
164
192
  # Optional parameter with nested collection type
165
- def foo(x: Optional[List[List[str]]]) -> None: ...
166
- assert to_sql(foo) == '`foo`(`x` ARRAY(ARRAY(TEXT NOT NULL) NOT NULL) NULL) ' \
167
- 'RETURNS TINYINT NULL'
193
+ # def foo(x: Optional[List[List[str]]]) -> None: ...
194
+ # assert to_sql(foo) == '`foo`(`x` ARRAY(ARRAY(TEXT NOT NULL) NOT NULL) NULL) ' \
195
+ # 'RETURNS TINYINT NULL'
168
196
 
169
197
  # Optional parameter with collection type with nulls
170
- def foo(x: Optional[List[Optional[str]]]) -> None: ...
171
- assert to_sql(foo) == '`foo`(`x` ARRAY(TEXT NULL) NULL) RETURNS TINYINT NULL'
198
+ # def foo(x: Optional[List[Optional[str]]]) -> None: ...
199
+ # assert to_sql(foo) == '`foo`(`x` ARRAY(TEXT NULL) NULL) RETURNS TINYINT NULL'
172
200
 
173
201
  # Custom type with bound
174
202
  def foo(x: D) -> None: ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: singlestoredb
3
- Version: 1.14.2
3
+ Version: 1.15.1
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,7 +1,7 @@
1
- _singlestoredb_accel.pyd,sha256=9qaS_m5FQLcfFP09l-gJNJBG74ju8eQtvxr9xTV2esg,65536
2
- singlestoredb/__init__.py,sha256=NFQVpJ4HpaZ09FGns8WHu4EFEqcI3FQ5Xmo65kb12vA,2331
1
+ _singlestoredb_accel.pyd,sha256=pSb0uBWRCOADjXBShBJ57cuhnDrd_bLTAAifjGr40zg,65024
2
+ singlestoredb/__init__.py,sha256=lN8ACGOjs3lfRawEm-ZpMPoF2T7xeDdDPGEcAJGnq_k,2347
3
3
  singlestoredb/auth.py,sha256=RmYiH0Wlc2RXc4pTlRMysxtBI445ggCIwojWKC_eDLE,7844
4
- singlestoredb/config.py,sha256=t3aiWi1i3kT5VhEgXca0gwT6591YkZUed-wzvVEBMs0,13424
4
+ singlestoredb/config.py,sha256=sy_sJfj2v9wmeEjraA-BgrieibQhnZOZBsiyqJqZ7pQ,13834
5
5
  singlestoredb/connection.py,sha256=I2AP_0l7hNARfXiSuVW953CsGYn_rKbTg_NyWEiGHbY,47542
6
6
  singlestoredb/converters.py,sha256=6gN3_RzSbw0Aimd5cGgBNPNq1yiHb1a_NK8qC9DmOQ0,21636
7
7
  singlestoredb/exceptions.py,sha256=WCCJrNSsU-hD-621Jpd6bwmvGftQ7byXkk-XKXlaxpg,3354
@@ -10,7 +10,7 @@ singlestoredb/pytest.py,sha256=TH364xRCN7_QaN0oRQDHixrEcDx_ZBgu3bmY0tvKrYU,9357
10
10
  singlestoredb/types.py,sha256=g6iJnOSCuRUkuUJOYSdRPt3QTjC9h2Dq4fqFFktXxXg,10770
11
11
  singlestoredb/vectorstore.py,sha256=4YvXml3PpOEOtUGO7gylucKG2Rny8Bx6L29kmhsFiCY,8600
12
12
  singlestoredb/ai/__init__.py,sha256=5vlx0XpzxalMKySnVF7y40gfuCgaz7COUKqN4KfNKF8,116
13
- singlestoredb/ai/chat.py,sha256=oDig8C8QdPEHL-JmmpdFvt_Ct7-K_D0pG_UJ00WCZ7Y,828
13
+ singlestoredb/ai/chat.py,sha256=zKwJmXHj8ztJOl1p9PK4lVsW0NoMqCoGRuOIy4QORVQ,1308
14
14
  singlestoredb/ai/embeddings.py,sha256=2F6ALJ5Z0PKih3mt3DIFepABcC3u0lshtWu2OUXWZgg,842
15
15
  singlestoredb/alchemy/__init__.py,sha256=bUmCl1xUn2v36RMbXLIrvgKzZSqx71mp1ReUw9JeVA8,2613
16
16
  singlestoredb/apps/__init__.py,sha256=7l4d4hCtm1ykDNf7UBi3Qnqg9N0qPs5jbQ0Al5tS5aM,173
@@ -19,22 +19,46 @@ singlestoredb/apps/_config.py,sha256=b_Op6KjSJdPwym-AlHcy0dXLHiks1cL8Q2ea1W8r3NA
19
19
  singlestoredb/apps/_connection_info.py,sha256=P9rW4t2k3QFk3A34dIg9DbCWBqrcHDcZPi2Q9r2-o3A,321
20
20
  singlestoredb/apps/_dashboards.py,sha256=qEdDivjwS68Uukay0Qw-3awHZFpkcqapzd3vLaVUzWo,1521
21
21
  singlestoredb/apps/_process.py,sha256=eMiBO4piaRX1S6zdnMx0X0E4J7E1XrXndnVW0GRYq1Y,976
22
- singlestoredb/apps/_python_udfs.py,sha256=PW-Lai3dFINsNtqrLlyUafWgs1j86qGqaNZpUD9OxVI,2811
22
+ singlestoredb/apps/_python_udfs.py,sha256=d25hhWKl5ou5r7m0Uaf1xZLz9mCHK1Y6MSLzvmqyibA,2858
23
23
  singlestoredb/apps/_stdout_supress.py,sha256=QRV-IHQQMvWMeJfqORuVE2-Il6ohO2Ti4IokFoTCJWE,689
24
24
  singlestoredb/apps/_uvicorn_util.py,sha256=Petkmq5keBPfXZsHBrnZfY3O2rUHvb3Cw6o-BRz5MP0,994
25
+ singlestoredb/docstring/__init__.py,sha256=NQ5uUsz_CwWALDXQxS_ecHFoqe-2efJLH81zlX8hU2E,876
26
+ singlestoredb/docstring/attrdoc.py,sha256=fOc_lU7ax4xCUaKG8inCcZbcj18QmTc7aSWOi5F36wc,4347
27
+ singlestoredb/docstring/common.py,sha256=NDwwk2uizIcxQE1bjYG-PcE4-fKifkEXW2CYfBHffb4,6637
28
+ singlestoredb/docstring/epydoc.py,sha256=ByejfN_VXF0G8rR-bwm-g-ssEwAQfcGWUP_ckf2gxCM,9370
29
+ singlestoredb/docstring/google.py,sha256=vaihfjC-MLC1yN1ZDOPMV6IMV-F5NcZFVYoZaY3OrC0,14225
30
+ singlestoredb/docstring/numpydoc.py,sha256=o0ghHnxkQcEDwdLRolsUTAAs0TeNbFPSK_W6JMDMtdY,17965
31
+ singlestoredb/docstring/parser.py,sha256=WH-1gy2iWNoUKhXXCttnGxceRgm_f8BRG_pva5stoZM,3164
32
+ singlestoredb/docstring/py.typed,sha256=a1RlQ-hAngPdZDtrgliwTVNtPmZYUZS3wvfbMRnunHI,28
33
+ singlestoredb/docstring/rest.py,sha256=xqBPwmk_Ja4vWxwWQEExyL_B8KCpoCjvuhgcvOfndzw,8748
34
+ singlestoredb/docstring/util.py,sha256=UI5H3-z22JgBvFEEEGtk6kH5Jy2ksWv1hhonaXmmKLA,4805
35
+ singlestoredb/docstring/tests/__init__.py,sha256=4kyGfts_fXa9qIwAcJu2sb_pATskkwNDiLLrldvN-4g,35
36
+ singlestoredb/docstring/tests/_pydoctor.py,sha256=7eAbMMf0BT7cMA3BvkeSXW6-UxWkoCI9LI5YDX8jEl0,811
37
+ singlestoredb/docstring/tests/test_epydoc.py,sha256=8YjYq1betshBlxDxvNyQcnKR-HPSOGeIph3621SVWXk,20019
38
+ singlestoredb/docstring/tests/test_google.py,sha256=82w2616nf66abwxtIJPpG0lhkzDBIZjJUna9aopewIA,28962
39
+ singlestoredb/docstring/tests/test_numpydoc.py,sha256=6hi6dj-oIVrE4tFd_bfatNU8Ts3AG2VwPTDy749RR54,30780
40
+ singlestoredb/docstring/tests/test_parse_from_object.py,sha256=dXtRh6d6LB5q51Mwfc6yB6texAyRnJDyJIQJRZPGT9Y,3971
41
+ singlestoredb/docstring/tests/test_parser.py,sha256=B64vcSwb2fSgv81dHfiQ9aJmg-wF9pHUQEY3PM-SjE0,7693
42
+ singlestoredb/docstring/tests/test_rest.py,sha256=Lx3GxbzGE96fZzg_N1MiYXw5Ucf13OWQVQz6hy2vsk4,15936
43
+ singlestoredb/docstring/tests/test_util.py,sha256=Hc0dWbgvXOKhB6Mjw2Q78lUoy2oph5CAFUXm0hTR32I,2016
25
44
  singlestoredb/functions/__init__.py,sha256=KPBjRaiVipCQwTSsryHvBE_qrwy7Kj74lKnutqplcao,487
26
- singlestoredb/functions/decorator.py,sha256=Zw4mTSzpTxFTdqfrFzdt_8hFptg0PXcrB3TbUMNynyU,5614
45
+ singlestoredb/functions/decorator.py,sha256=4OWVI6S_M1gXEtWDuHM5FBhJXbiSmIsAYL79DAwpunE,6597
27
46
  singlestoredb/functions/dtypes.py,sha256=7w_atIL5jAvDNtu6RDCvY440Y9U-p19_Nf7R5ki46Co,41607
28
- singlestoredb/functions/signature.py,sha256=K1WftlfVei2xmizCxHi91z7mK8vW5VJxJAM7FiCnpEY,43926
29
- singlestoredb/functions/typing.py,sha256=5AJG4nx-HKCeemNxL0qc1VunYPJ5lHRzpYAK_qMybNw,1380
47
+ singlestoredb/functions/signature.py,sha256=1aSFezUgWSRsGcrBjOVVZyZgw0q356y7IWgMeeSxzmY,47123
30
48
  singlestoredb/functions/utils.py,sha256=lZPxdYfHxrSfxGWCoF0YZyakVy2iYlozJ1lPSaPKRlo,11190
31
49
  singlestoredb/functions/ext/__init__.py,sha256=5ppI8IZN_zOwoJFdu_Oq9ipxtyHw9n6OMVAa_s9T_yY,24
32
50
  singlestoredb/functions/ext/arrow.py,sha256=mQhwaMpvCH_dP92WIhP_j-stu272n4UAHsFUOBTgnq0,9436
33
- singlestoredb/functions/ext/asgi.py,sha256=vFX-7P7aVItK76AxBw-DjLGy0nDV9KzcJYyLsLRCsi0,53455
51
+ singlestoredb/functions/ext/asgi.py,sha256=od9pd4uUydNNvGq-OpzIshOVOOIUpJYG8Qlh389Y1uA,66226
34
52
  singlestoredb/functions/ext/json.py,sha256=j9133xOpyuSqb8smBmi_bPvv6OYCbNfpbLbEicyGqmQ,10522
35
53
  singlestoredb/functions/ext/mmap.py,sha256=0BN9OyEONZ174qdZWe2m3Xykt3-QcxyLYBt2iCG772Q,14123
36
54
  singlestoredb/functions/ext/rowdat_1.py,sha256=UNMMUA8mb6iIRfJV2FsdA20Sw6s-LEdHQ_tC4K4g70Q,21836
55
+ singlestoredb/functions/ext/timer.py,sha256=XOI_K-ikOM5xtXnDkmvIwBV4mUS7EWSziKEx2121KaI,3061
37
56
  singlestoredb/functions/ext/utils.py,sha256=OPMFD-tTCx2Kk9jguQkrTr7e4AgNkt15YsvaT1YSmN8,5480
57
+ singlestoredb/functions/typing/__init__.py,sha256=5AJG4nx-HKCeemNxL0qc1VunYPJ5lHRzpYAK_qMybNw,1380
58
+ singlestoredb/functions/typing/numpy.py,sha256=WJt0bWwyEA8Mofpn_-0Q82u7Q8XAtzBuhbaXSqE1E34,681
59
+ singlestoredb/functions/typing/pandas.py,sha256=-abvGDup-WwTbaAyQuNo4Fq7ATe8gYx_5b2yUPJlX7o,85
60
+ singlestoredb/functions/typing/polars.py,sha256=HWAjc6o6NAAXZjNIUyLe5R4ZgrIz2NHjk43wTSpy4bY,85
61
+ singlestoredb/functions/typing/pyarrow.py,sha256=gQcvvrm5BYeuYl8UKr8-07DbA_AtbpkiSEtQkRMW7AA,82
38
62
  singlestoredb/fusion/__init__.py,sha256=FHWtrg6OJFTf6Ye197V5sU6ssryr2h6FBcDIgXP7-H4,367
39
63
  singlestoredb/fusion/graphql.py,sha256=SHqsPe4xgawdsTPHEtJGQlybYGWqPrGMmyK-v20RLac,5420
40
64
  singlestoredb/fusion/handler.py,sha256=JmdIjBUUUDUKsgqTBc7pL_NVvUPXha90VpfAd03mHL4,28598
@@ -42,29 +66,29 @@ singlestoredb/fusion/registry.py,sha256=_eT1gd38VPlFKs5f9Pu6lqQyoDQ_ixW5O56QwYLQ
42
66
  singlestoredb/fusion/result.py,sha256=KAwhXxXVgfkAWekCFY8-Y03ANKDiTflYRXyEc_1Id0k,12189
43
67
  singlestoredb/fusion/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
68
  singlestoredb/fusion/handlers/export.py,sha256=MqPINMHGl-7SkKzdHcgg343uoFQDXaKSHdoFmefA-KM,15834
45
- singlestoredb/fusion/handlers/files.py,sha256=pCx1sqnjPtQrp39rv_V4RX9CVtj6uSiL6HPUyiABYpI,19681
69
+ singlestoredb/fusion/handlers/files.py,sha256=kz4eP06Xux1PW3L-Hj8-PmaCKc-1J8QeKwgqUdudqYA,19661
46
70
  singlestoredb/fusion/handlers/job.py,sha256=3enfxHwERH7T4u0FEwOPN0IL0GtepaCYgEsisiy3Df4,21753
47
- singlestoredb/fusion/handlers/models.py,sha256=XWaPJQc3GQIOAcjNcxBSGUBJ3xu2qkzQ4ILa40TFQmY,6486
48
- singlestoredb/fusion/handlers/stage.py,sha256=PP-SSP204lwpmnycSXXSmFPzoN535JVuwglDCbaQ8Lw,14789
71
+ singlestoredb/fusion/handlers/models.py,sha256=MglLrl57l7sG2K0MDnmnO1wnocdcbEIWvAJS6W74VgE,6481
72
+ singlestoredb/fusion/handlers/stage.py,sha256=oNl11GYUUQHmIrWsqaA1X8lokvFxFgN0Cez7h3o8XK8,14774
49
73
  singlestoredb/fusion/handlers/utils.py,sha256=nV2lSzKhv7CzM7I_uIh5kmDV0Ec6VeeKoHczx5pVNcw,11009
50
74
  singlestoredb/fusion/handlers/workspace.py,sha256=NxoEY5xd5lCQmXiim4nhAYCL0agHo1H_rGPpqa31hiw,28397
51
75
  singlestoredb/http/__init__.py,sha256=4cEDvLloGc3LSpU-PnIwacyu0n5oIIIE6xk2SPyWD_w,939
52
76
  singlestoredb/http/connection.py,sha256=X-zRf7BfsaKRg8GXcaa5Ic42b9uqEfqqxiI47ZijpDE,41221
53
77
  singlestoredb/magics/__init__.py,sha256=fqCBQ0s8o1CYE4Xo_XiSbkLDzLgMNDgpSkOx66-uDZw,1244
54
- singlestoredb/magics/run_personal.py,sha256=M11xHi9lWquh_pLSpFI89LGE7PhOPQOGqlSPDl48itE,1900
55
- singlestoredb/magics/run_shared.py,sha256=rnKpW4d8CJvD6ehK8jG8FlxuqZvjZl4KocPTsk-23O8,1805
56
- singlestoredb/management/__init__.py,sha256=A66ZnFyX--PsAZ2tvtYUfIUBvVGDBFQsnVc6nGTlX60,277
78
+ singlestoredb/magics/run_personal.py,sha256=D71VVRk-qQAZf6fHUbxqTadxcopSklJu7ccoQ82uhV8,5359
79
+ singlestoredb/magics/run_shared.py,sha256=9Lo3hmESgp0gGLaL1pgLtTA6qsbIZluM7mufcoCAVcI,5264
80
+ singlestoredb/management/__init__.py,sha256=wsTdU9mRZuKuJNOu7aPWlmy3dEhRxUIeNIzKQh4IwME,313
57
81
  singlestoredb/management/billing_usage.py,sha256=0UHFSPCrN0nyeGFFM-HXS3NP8pYmYo2BCCahDEPXvzg,3883
58
- singlestoredb/management/cluster.py,sha256=auBzNYIXvnI6rq3DNpPgJhwWoT6JsyZRikjpON23Pxg,14867
82
+ singlestoredb/management/cluster.py,sha256=ec84m8kCvWuThlpiMGAR8tC8aoOTe4KnMBT9UR0xmGc,14881
59
83
  singlestoredb/management/export.py,sha256=9kNb9C9HHyUrIfIWVvpghal47SQutoa2PTPmysIPSq8,9378
60
84
  singlestoredb/management/files.py,sha256=Z9GpS2EHf9atE8kJdz1vJtsiT80O6TV00MPhqyXfAAw,31579
61
85
  singlestoredb/management/inference_api.py,sha256=9d9-7edoZ6JI3SPvStcVDOSHOY6l38V1MFpyskdLAZY,2684
62
86
  singlestoredb/management/job.py,sha256=Npfe1JLYJlggGBrXLniPKwKUKF1i3alvSY1SFtvauSs,25498
63
- singlestoredb/management/manager.py,sha256=iB4XcerOPNoFc04TN40vjosMrDhlE7HMUyHsseRgjBQ,9224
87
+ singlestoredb/management/manager.py,sha256=SR4FvzxYXrn5WruiHG99upZn-8TPgRUSLW8zBYPiBIg,9664
64
88
  singlestoredb/management/organization.py,sha256=viFG8eLVOs-NeoL6zm8nypFRQ-oiRDD2Sk-bL2b6hvw,6095
65
- singlestoredb/management/region.py,sha256=oGoLLS88dE1GmY7GCc0BV7X3f7bWwKQyeXOVBFmK9Pk,1678
89
+ singlestoredb/management/region.py,sha256=4c4z6ETYrSIK3wm2UA4Wr2Td1UgoechN0l1-mqy5bvQ,4283
66
90
  singlestoredb/management/utils.py,sha256=RtFhdIIliQ6aulYs99fgAQ0FxL2LfV-5oPRd9s_bBok,13626
67
- singlestoredb/management/workspace.py,sha256=D9DzpeWU7xFjpj8bBYiXyasjVYVANeYjTzgkz2aKvJQ,57984
91
+ singlestoredb/management/workspace.py,sha256=UYepKm0D4CKsSQ-sPWwPysPT_YcZw2RjJSOZe5Ri_SA,63852
68
92
  singlestoredb/mysql/__init__.py,sha256=CbpwzNUJPAmKPpIobC0-ugBta_RgHCMq7X7N75QLReY,4669
69
93
  singlestoredb/mysql/_auth.py,sha256=YaqqyvAHmeraBv3BM207rNveUVPM-mPnW20ts_ynVWg,8341
70
94
  singlestoredb/mysql/charset.py,sha256=mnCdMpvdub1S2mm2PSk2j5JddgsWRjsVLtGx-y9TskE,10724
@@ -116,28 +140,28 @@ singlestoredb/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
116
140
  singlestoredb/tests/empty.sql,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
141
  singlestoredb/tests/local_infile.csv,sha256=0fYxcZcTvcwS2McF4sktFsipRY1G-ClGmCRR1eCqdEQ,45
118
142
  singlestoredb/tests/test.ipynb,sha256=IEgXbByXyWDplZvod1J2SqNHZiPOGdD4oNVMd0ArP7s,234
119
- singlestoredb/tests/test.sql,sha256=winJzhZ2W52PcQ1j8X_NNIDRBmEa-xMAYrS_hoUtAP8,18337
143
+ singlestoredb/tests/test.sql,sha256=hDz6dWTpsXxUbVYmpfD-KjqasA2olKHN7G0y0Pbpn5M,19320
120
144
  singlestoredb/tests/test2.ipynb,sha256=_kBQVvEoinQ1zInNcWFKpbdw-djkLsEO8l3g2MEU_Zs,236
121
145
  singlestoredb/tests/test2.sql,sha256=CEM8_lX189iQU65G3Pod7lig6osfrveQyoDz6HC35YQ,38
122
146
  singlestoredb/tests/test_basics.py,sha256=tKzeSN8koMRFq5yjb98Wz5VWAOsnUKAETZEJyLhMD_o,49778
123
147
  singlestoredb/tests/test_config.py,sha256=Ad0PDmCnJMOyy9f7WTKiRasSR_3mYRByUlSb7k5ZySg,11502
124
- singlestoredb/tests/test_connection.py,sha256=UmoNo8erkcifEMbHZl83yAaRsyh6HANRdEtY3aViOK8,122792
148
+ singlestoredb/tests/test_connection.py,sha256=OXOk6qCJci62orlptwl8S4BkETVPbFP3uMhlZBmnwhk,123340
125
149
  singlestoredb/tests/test_dbapi.py,sha256=cNJoTEZvYG7ckcwT7xqlkJX-2TDEYGTDDU1Igucp48k,679
126
150
  singlestoredb/tests/test_exceptions.py,sha256=vscMYmdOJr0JmkTAJrNI2w0Q96Nfugjkrt5_lYnw8i0,1176
127
- singlestoredb/tests/test_ext_func.py,sha256=LhuPz8o3UF7x2LNod5oZ1tlxeLvGDEUE5FnzdsIbSPs,44643
151
+ singlestoredb/tests/test_ext_func.py,sha256=YidPnlO7HWsVIbPwdCa33Oo8SyGkP2_Pcuj_pu39r4s,47743
128
152
  singlestoredb/tests/test_ext_func_data.py,sha256=9kn8BWmCjkbnP6hSbFhmhcdW4OmVT-GSvBTIzFBLEys,48796
129
153
  singlestoredb/tests/test_fusion.py,sha256=XT5rhYx32mndcZGaW2Xc7DTLMLEcf_vO3w1Dxss9nMM,52120
130
154
  singlestoredb/tests/test_http.py,sha256=7hwXe61hlUes3nji0MTTZweo94tJAlJ-vA5ct9geXFQ,8868
131
- singlestoredb/tests/test_management.py,sha256=PdY_rrMvossP0HGsppN-F0KfP5WuZmDaJcTCjIPONEo,47221
155
+ singlestoredb/tests/test_management.py,sha256=Cn0n-RhzZPgVqcgDDNrGvwCDJMZo34KVRqYsy_KaKOE,53537
132
156
  singlestoredb/tests/test_plugin.py,sha256=P1nXLnTafaHkHN-6bVbGryxTu7OWJPU9SYFZ_WQUwq8,845
133
157
  singlestoredb/tests/test_results.py,sha256=Zg1ynZFRZqalAMfNLOU5C6BDXaox6JxrKm_XZwVNFcg,6753
134
158
  singlestoredb/tests/test_types.py,sha256=YeVE6KPqlqzJke-4hbRmc8ko1E7RLHu5S8qLg04Bl5Y,4632
135
- singlestoredb/tests/test_udf.py,sha256=b1zOJVuhHvL_cMHYu5iJ5Cinu8gb2Rq_aaCUTaFlNZA,29553
159
+ singlestoredb/tests/test_udf.py,sha256=Yb3z8NHZVLhlxFm0ICfeJZkdwYbDkobL_xei7ETipIw,30413
136
160
  singlestoredb/tests/test_udf_returns.py,sha256=lDx26AUKGS4V0Vxf5ePO-VcrcX0QamyWGo-tm1GNc-E,16000
137
161
  singlestoredb/tests/test_vectorstore.py,sha256=Zy9N63KPcm9bdjMN2dc1iwBZ5J8wK-p96xT6tF8Wk0M,1605
138
162
  singlestoredb/tests/test_xdict.py,sha256=5ArRJqd5aNXkPK7Y6sFeRbqZ59MZ1YaGBpSlDAbBrjM,10741
139
163
  singlestoredb/tests/utils.py,sha256=WR8GFNiC0lU4tz21Y3rlbbp9Gz9WcSwp2jpUSCj7RFU,5136
140
- singlestoredb/tests/ext_funcs/__init__.py,sha256=8kGNrG2qZVcmaAc4KAatrqZYPjBXtKbOqoG7zAwMtM4,14727
164
+ singlestoredb/tests/ext_funcs/__init__.py,sha256=6gPTR_cRvAUjv0gX58pL2CrerzqMsOyv9y351jeR3es,16283
141
165
  singlestoredb/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
166
  singlestoredb/utils/config.py,sha256=WVQ567ZzqzlTGueQH5fEpm5tPZuz8y7qvpEQUB-vPjk,25453
143
167
  singlestoredb/utils/convert_rows.py,sha256=gkZeZazeJvimCYEQ1FdAC-AmMDwmFGCuP6mi653bpns,1885
@@ -149,9 +173,9 @@ singlestoredb/utils/results.py,sha256=wR70LhCqlobniZf52r67zYLBOKjWHQm68NAskdRQND
149
173
  singlestoredb/utils/xdict.py,sha256=-wi1lSPTnY99fhVMBhPKJ8cCsQhNG4GMUfkEBDKYgCw,13321
150
174
  sqlx/__init__.py,sha256=4Sdn8HN-Hf8v0_wCt60DCckCg8BvgM3-9r4YVfZycRE,89
151
175
  sqlx/magic.py,sha256=6VBlotgjautjev599tHaTYOfcfOA9m6gV_-P1_Qc4lI,3622
152
- singlestoredb-1.14.2.dist-info/LICENSE,sha256=Bojenzui8aPNjlF3w4ojguDP7sTf8vFV_9Gc2UAG1sg,11542
153
- singlestoredb-1.14.2.dist-info/METADATA,sha256=82J9S2a0qPCrJocyKKdv6cXWsGpVvoT_x2cCYuOW9fY,5949
154
- singlestoredb-1.14.2.dist-info/WHEEL,sha256=c4k7z5HB0t-y0nBCv6KyJ6KCjn8SEGPddD0lhaPtU3E,96
155
- singlestoredb-1.14.2.dist-info/entry_points.txt,sha256=bSLaTWB5zGjpVYPAaI46MkkDup0su-eb3uAhCNYuRV0,48
156
- singlestoredb-1.14.2.dist-info/top_level.txt,sha256=lA65Vf4qAMfg_s1oG3LEO90h4t1Z-SPDbRqkevI3bSY,40
157
- singlestoredb-1.14.2.dist-info/RECORD,,
176
+ singlestoredb-1.15.1.dist-info/LICENSE,sha256=Bojenzui8aPNjlF3w4ojguDP7sTf8vFV_9Gc2UAG1sg,11542
177
+ singlestoredb-1.15.1.dist-info/METADATA,sha256=7vo7OfaB16n580dBkw6FbLOnDnJsCiH5MuwKtVZqUi0,5949
178
+ singlestoredb-1.15.1.dist-info/WHEEL,sha256=c4k7z5HB0t-y0nBCv6KyJ6KCjn8SEGPddD0lhaPtU3E,96
179
+ singlestoredb-1.15.1.dist-info/entry_points.txt,sha256=bSLaTWB5zGjpVYPAaI46MkkDup0su-eb3uAhCNYuRV0,48
180
+ singlestoredb-1.15.1.dist-info/top_level.txt,sha256=lA65Vf4qAMfg_s1oG3LEO90h4t1Z-SPDbRqkevI3bSY,40
181
+ singlestoredb-1.15.1.dist-info/RECORD,,