singlestoredb 1.14.2__py3-none-any.whl → 1.15.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.
Potentially problematic release.
This version of singlestoredb might be problematic. Click here for more details.
- singlestoredb/__init__.py +2 -2
- singlestoredb/ai/chat.py +14 -0
- singlestoredb/apps/_python_udfs.py +3 -3
- singlestoredb/config.py +11 -0
- singlestoredb/docstring/__init__.py +33 -0
- singlestoredb/docstring/attrdoc.py +126 -0
- singlestoredb/docstring/common.py +230 -0
- singlestoredb/docstring/epydoc.py +267 -0
- singlestoredb/docstring/google.py +412 -0
- singlestoredb/docstring/numpydoc.py +562 -0
- singlestoredb/docstring/parser.py +100 -0
- singlestoredb/docstring/py.typed +1 -0
- singlestoredb/docstring/rest.py +256 -0
- singlestoredb/docstring/tests/__init__.py +1 -0
- singlestoredb/docstring/tests/_pydoctor.py +21 -0
- singlestoredb/docstring/tests/test_epydoc.py +729 -0
- singlestoredb/docstring/tests/test_google.py +1007 -0
- singlestoredb/docstring/tests/test_numpydoc.py +1100 -0
- singlestoredb/docstring/tests/test_parse_from_object.py +109 -0
- singlestoredb/docstring/tests/test_parser.py +248 -0
- singlestoredb/docstring/tests/test_rest.py +547 -0
- singlestoredb/docstring/tests/test_util.py +70 -0
- singlestoredb/docstring/util.py +141 -0
- singlestoredb/functions/decorator.py +51 -31
- singlestoredb/functions/ext/asgi.py +381 -35
- singlestoredb/functions/ext/timer.py +98 -0
- singlestoredb/functions/signature.py +374 -241
- singlestoredb/functions/typing/numpy.py +20 -0
- singlestoredb/functions/typing/pandas.py +2 -0
- singlestoredb/functions/typing/polars.py +2 -0
- singlestoredb/functions/typing/pyarrow.py +2 -0
- singlestoredb/fusion/handlers/files.py +4 -4
- singlestoredb/fusion/handlers/models.py +1 -1
- singlestoredb/fusion/handlers/stage.py +4 -4
- singlestoredb/magics/run_personal.py +82 -1
- singlestoredb/magics/run_shared.py +82 -1
- singlestoredb/management/__init__.py +1 -0
- singlestoredb/management/cluster.py +1 -1
- singlestoredb/management/manager.py +15 -5
- singlestoredb/management/region.py +104 -2
- singlestoredb/management/workspace.py +174 -3
- singlestoredb/tests/ext_funcs/__init__.py +133 -55
- singlestoredb/tests/test.sql +22 -0
- singlestoredb/tests/test_connection.py +18 -8
- singlestoredb/tests/test_ext_func.py +90 -0
- singlestoredb/tests/test_management.py +190 -0
- singlestoredb/tests/test_udf.py +43 -15
- {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/METADATA +1 -1
- {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/RECORD +54 -30
- /singlestoredb/functions/{typing.py → typing/__init__.py} +0 -0
- {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/LICENSE +0 -0
- {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/WHEEL +0 -0
- {singlestoredb-1.14.2.dist-info → singlestoredb-1.15.1.dist-info}/entry_points.txt +0 -0
- {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)
|
singlestoredb/tests/test_udf.py
CHANGED
|
@@ -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`()
|
|
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`
|
|
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
|
-
|
|
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
|
-
singlestoredb/__init__.py,sha256=
|
|
1
|
+
singlestoredb/__init__.py,sha256=0oMPzlsB1ZxWKQ0Gjrn1mLxlbPjH_dKuwkTsEX44TUU,2272
|
|
2
2
|
singlestoredb/auth.py,sha256=u8D9tpKzrqa4ssaHjyZnGDX1q8XBpGtuoOkTkSv7B28,7599
|
|
3
|
-
singlestoredb/config.py,sha256=
|
|
3
|
+
singlestoredb/config.py,sha256=kas72OMNhvjpXSHxY5a0JaEIx9L5-M-Q8ZLVdA-W-Wo,13368
|
|
4
4
|
singlestoredb/connection.py,sha256=ELk3-UpM6RaB993aIt08MydKiiDnejHQ1s8EFiacrAI,46055
|
|
5
5
|
singlestoredb/converters.py,sha256=Ui-AqdW3pRAQ8A_YcK9EqVYyM4Pt1_Q-tjlotbpK6Cw,20686
|
|
6
6
|
singlestoredb/exceptions.py,sha256=HuoA6sMRL5qiCiee-_5ddTGmFbYC9Euk8TYUsh5GvTw,3234
|
|
@@ -9,7 +9,7 @@ singlestoredb/pytest.py,sha256=OyF3BO9mgxenifYhOihnzGk8WzCJ_zN5_mxe8XyFPOc,9074
|
|
|
9
9
|
singlestoredb/types.py,sha256=Qp_PWYjSYG6PRnmXAZZ7K2QehUqfoG4KSllI3O1stPE,10397
|
|
10
10
|
singlestoredb/vectorstore.py,sha256=BZb8e7m02_XVHqOyu8tA94R6kHb3n-BC8F08JyJwDzY,8408
|
|
11
11
|
singlestoredb/ai/__init__.py,sha256=-uNcq-bY-AiWhZ5Plq2ZXtfIVL4PaifMJsJf58rdN8I,114
|
|
12
|
-
singlestoredb/ai/chat.py,sha256=
|
|
12
|
+
singlestoredb/ai/chat.py,sha256=5vi_jVSH8xJ_WIn_mst8uw5cv9tJJBn3AFYRM4LhYI8,1268
|
|
13
13
|
singlestoredb/ai/embeddings.py,sha256=X3g0sJNDVOzXzZwoXz3M3ch-IERQXNkHxuH4cj125I8,815
|
|
14
14
|
singlestoredb/alchemy/__init__.py,sha256=dXRThusYrs_9GjrhPOw0-vw94in_T8yY9jE7SGCqiQk,2523
|
|
15
15
|
singlestoredb/apps/__init__.py,sha256=dfN97AZz7Np6JML3i9GJrv22ZbNCUletXmsJpQnKhKg,170
|
|
@@ -18,22 +18,46 @@ singlestoredb/apps/_config.py,sha256=FlV0ABP7qlBJoKo9NOme6Fpp4yUFm5QEpHEHbl1A24o
|
|
|
18
18
|
singlestoredb/apps/_connection_info.py,sha256=QOr-wcQJn6oCZw2kLEP0Uwzo85CGolGz0QIvlem3gug,303
|
|
19
19
|
singlestoredb/apps/_dashboards.py,sha256=_03fI-GJannamA5lxLvIoC6Mim-H1jTRuI8-dw_P--k,1474
|
|
20
20
|
singlestoredb/apps/_process.py,sha256=G37fk6bzIxzhfEqp2aJBk3JCij-T2HFtTd078k5Xq9I,944
|
|
21
|
-
singlestoredb/apps/_python_udfs.py,sha256
|
|
21
|
+
singlestoredb/apps/_python_udfs.py,sha256=hwncnfx7MpOsvCH0Ic64otDIo-GGPT3UC89y2uAA_Uw,2773
|
|
22
22
|
singlestoredb/apps/_stdout_supress.py,sha256=8s9zMIIRPpeu44yluJFc_0VueAxZDmr9QVGT6TGiFeY,659
|
|
23
23
|
singlestoredb/apps/_uvicorn_util.py,sha256=rEK4nEmq5hbpRgsmK16UVlxe2DyQSq7C5w5WZSp0kX8,962
|
|
24
|
+
singlestoredb/docstring/__init__.py,sha256=tTkEitbunkZ-yw2h620BRB1RSTnSmB47UYa6yyNcksM,843
|
|
25
|
+
singlestoredb/docstring/attrdoc.py,sha256=1eE5JmEQv3TkyYfq4OOQ9tuFOzuCFi3Yx4ehuVvMwsA,4221
|
|
26
|
+
singlestoredb/docstring/common.py,sha256=EQntxc6bsqCwzwOSO_qiIQog-W19dDKeeGUrUVkZmBg,6407
|
|
27
|
+
singlestoredb/docstring/epydoc.py,sha256=gSZmM4Xn1G6JAgg70p2aH5CXjHz644RZ_3lr7nn667c,9103
|
|
28
|
+
singlestoredb/docstring/google.py,sha256=_64n5rc4yCVNJvLah5DkQn7qORKYeQ3-nWRq4CcaHWQ,13813
|
|
29
|
+
singlestoredb/docstring/numpydoc.py,sha256=6B-cpSvJEPnnc80TLzyx5YNLtGpiIujYBngQUmxIDH0,17403
|
|
30
|
+
singlestoredb/docstring/parser.py,sha256=Vmrzsh5TSBzBR4zJgxC-lSXk6PAbZXy5FUs2rN5Efrk,3064
|
|
31
|
+
singlestoredb/docstring/py.typed,sha256=bWew9mHgMy8LqMu7RuqQXFXLBxh2CRx0dUbSx-3wE48,27
|
|
32
|
+
singlestoredb/docstring/rest.py,sha256=yrZp-tmeTPGD_M0BhmXNSurpfMvwMfI_K3ruxVG8eUs,8492
|
|
33
|
+
singlestoredb/docstring/util.py,sha256=Hrc90jdu1bN3MCYeLScJ_ynTBDpWWLBKofrLAWk8KvA,4664
|
|
34
|
+
singlestoredb/docstring/tests/__init__.py,sha256=6VULghkufHkqtZfyiBamwZQNBA3z7f4TMEcBclUqTKE,34
|
|
35
|
+
singlestoredb/docstring/tests/_pydoctor.py,sha256=SC-bFHFocEC3jdrXiD0-HV88Ff2XI96K2LvufeweCNQ,790
|
|
36
|
+
singlestoredb/docstring/tests/test_epydoc.py,sha256=1oLC7L9Uc1XhePLr3G_ie5KIuXPAuSieoLq1dWUSz30,19290
|
|
37
|
+
singlestoredb/docstring/tests/test_google.py,sha256=2dVyFN-NjiuyUC3ZcGEm33aENAZNh9F7Eq_ErmyneIA,27955
|
|
38
|
+
singlestoredb/docstring/tests/test_numpydoc.py,sha256=9qr9jHr4feTF1E09c8J6SHWSXUTHsnoln2_DImYKAYM,29680
|
|
39
|
+
singlestoredb/docstring/tests/test_parse_from_object.py,sha256=gZnfgraFb4CGNaoXpQKTZT-QZet0CKdhikZtN148e84,3862
|
|
40
|
+
singlestoredb/docstring/tests/test_parser.py,sha256=1QAB125mmp5sDImafGDa34hhwTPQNOtkQxp75NJJov4,7445
|
|
41
|
+
singlestoredb/docstring/tests/test_rest.py,sha256=ljbY0zi7Wdk90eCg1xgS3aD9GvzB0TdTRhzHGuykaeM,15389
|
|
42
|
+
singlestoredb/docstring/tests/test_util.py,sha256=ES-bb99Qt1AXtCTDO8CdcWInJJLhH1Mh0e4I8MUsabA,1946
|
|
24
43
|
singlestoredb/functions/__init__.py,sha256=I2GnxOhLb4_7xhgOxdIwmwD5NiK7QYPYaE3PUIX-7xk,471
|
|
25
|
-
singlestoredb/functions/decorator.py,sha256=
|
|
44
|
+
singlestoredb/functions/decorator.py,sha256=GrbTMIhXRPlVeVlENrgCjt9aZjZQC7Z4tLOvODAre5Y,6396
|
|
26
45
|
singlestoredb/functions/dtypes.py,sha256=DgJaNXouJ2t-qIqDiQlUYU9IhkXXUTigWeE_MAcmvHM,39814
|
|
27
|
-
singlestoredb/functions/signature.py,sha256=
|
|
28
|
-
singlestoredb/functions/typing.py,sha256=gT_Sz5YH-L-9WeIHwWYMEx-hUCZqis7ec5Ipk3JXpnM,1339
|
|
46
|
+
singlestoredb/functions/signature.py,sha256=h2vFVNP07d5a3gi7zMiM_sztDUNK_HlJWR-Rl3nMxPA,45545
|
|
29
47
|
singlestoredb/functions/utils.py,sha256=1L0Phgzq0XdWK3ecfOOydq4zV955yCwpDoAaCYRGldk,10769
|
|
30
48
|
singlestoredb/functions/ext/__init__.py,sha256=1oLL20yLB1GL9IbFiZD8OReDqiCpFr-yetIR6x1cNkI,23
|
|
31
49
|
singlestoredb/functions/ext/arrow.py,sha256=WB7n1ACslyd8nlbFzUvlbxn1BVuEjA9-BGBEqCWlSOo,9061
|
|
32
|
-
singlestoredb/functions/ext/asgi.py,sha256=
|
|
50
|
+
singlestoredb/functions/ext/asgi.py,sha256=SuaNnatHY7Y5v2YtioSc6UHsOyYozK14xqKI-LbMy1I,64299
|
|
33
51
|
singlestoredb/functions/ext/json.py,sha256=RIuZdDybEdHuC-f2p6BdjhFjM3iGb3a1PRQ4k11P6N8,10102
|
|
34
52
|
singlestoredb/functions/ext/mmap.py,sha256=RzyNSLRpI5ZJ8YN6k-AvZlRTLjj80j52byHLtW8c3ps,13710
|
|
35
53
|
singlestoredb/functions/ext/rowdat_1.py,sha256=SlXbJ2042jEoaXw81y5llw1625w0aU2nZ8vI_O3qA-M,21112
|
|
54
|
+
singlestoredb/functions/ext/timer.py,sha256=kgmJACV6LAfev53XiGMwCv4DDlgF3Icg7G8VCuTQp4Q,2963
|
|
36
55
|
singlestoredb/functions/ext/utils.py,sha256=2-B8YU_Iekv8JcpI-ochs9TIeuyatLaLAH-AyYyUUIg,5311
|
|
56
|
+
singlestoredb/functions/typing/__init__.py,sha256=gT_Sz5YH-L-9WeIHwWYMEx-hUCZqis7ec5Ipk3JXpnM,1339
|
|
57
|
+
singlestoredb/functions/typing/numpy.py,sha256=WO64_HziveGk0dqRrkuZ51aohULy9qYuqaKHAoiiA3A,661
|
|
58
|
+
singlestoredb/functions/typing/pandas.py,sha256=wZUTMbte937EKtGdnFFWB0fFut5unTOyAbn8fSBsfro,83
|
|
59
|
+
singlestoredb/functions/typing/polars.py,sha256=b_UOIXLkvptHiAB7sXSzC7XPHMWNOglCz6h9amCA6Kg,83
|
|
60
|
+
singlestoredb/functions/typing/pyarrow.py,sha256=WkqQrUPS__jYzUJntLLUVDgYIcnqR9HU6Q5grZojZrc,80
|
|
37
61
|
singlestoredb/fusion/__init__.py,sha256=Qo7SuqGw-l-vE8-EI2jhm6hXJkYfOLUKIws9c7LFNX0,356
|
|
38
62
|
singlestoredb/fusion/graphql.py,sha256=ZA3HcDq5rER-dCEavwTqnF7KM0D2LCYIY7nLQk7lSso,5207
|
|
39
63
|
singlestoredb/fusion/handler.py,sha256=M5iyNP4zOaGqUqnZg_b5xhRE-8tHgfZSHDH0zKTiJmE,27692
|
|
@@ -41,29 +65,29 @@ singlestoredb/fusion/registry.py,sha256=jjdRTYZ3ylhy6gAoW5xBj0tkxGFBT-2yLQ0tztTg
|
|
|
41
65
|
singlestoredb/fusion/result.py,sha256=p5I65C-Dhhl1yeZwetXXZabwritr8Ph2mFvJJ3ovcBM,11790
|
|
42
66
|
singlestoredb/fusion/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
67
|
singlestoredb/fusion/handlers/export.py,sha256=Af4eIMPGKEOpmf4LXnvQsgmnvx5F8B5FkRI20RvEa7o,15309
|
|
44
|
-
singlestoredb/fusion/handlers/files.py,sha256=
|
|
68
|
+
singlestoredb/fusion/handlers/files.py,sha256=6SMVn80DrnBWabbd1vevicR827P0Y6-B1bTfqr4VuL4,18971
|
|
45
69
|
singlestoredb/fusion/handlers/job.py,sha256=r0KdOD55VUDw-SymC__5Mn-fzJTZE_xcBgH-O8DYVHc,21095
|
|
46
|
-
singlestoredb/fusion/handlers/models.py,sha256=
|
|
47
|
-
singlestoredb/fusion/handlers/stage.py,sha256=
|
|
70
|
+
singlestoredb/fusion/handlers/models.py,sha256=2LWx7da7qVc65xFIKPsFikvvA9zF-QxMZJ76HV5inNw,6231
|
|
71
|
+
singlestoredb/fusion/handlers/stage.py,sha256=edViRGlBF7xZUd3ClmpBlMcBc6O4JKdvA9DGgnbGFdU,14272
|
|
48
72
|
singlestoredb/fusion/handlers/utils.py,sha256=ozHOWUraoN8XGTK9JZdhv5HV8AQR8zfUd1yh1kLvUXY,10685
|
|
49
73
|
singlestoredb/fusion/handlers/workspace.py,sha256=4xN2TFO4yF7KZB2Fcht7IuvoDdAT6fDfDLjixiHZN8w,27506
|
|
50
74
|
singlestoredb/http/__init__.py,sha256=A_2ZUCCpvRYIA6YDpPy57wL5R1eZ5SfP6I1To5nfJ2s,912
|
|
51
75
|
singlestoredb/http/connection.py,sha256=X5GEPPOE-rMm17d0-TPhcdxUHibcYl-MZAnPhut8xyo,39956
|
|
52
76
|
singlestoredb/magics/__init__.py,sha256=lZjkT3Webo9c1EQAzlRCRh6B2pckQH8uvNrrB__abcI,1210
|
|
53
|
-
singlestoredb/magics/run_personal.py,sha256=
|
|
54
|
-
singlestoredb/magics/run_shared.py,sha256=
|
|
55
|
-
singlestoredb/management/__init__.py,sha256=
|
|
77
|
+
singlestoredb/magics/run_personal.py,sha256=Y5lVpJ8vqOyEjtZkip04Hwi4uZ7CQLU5Rd1MrCmpNvs,5222
|
|
78
|
+
singlestoredb/magics/run_shared.py,sha256=czoO4z6gtoq9ek_41efRBRk-XQiHKuHdY0BOdfKkFrc,5130
|
|
79
|
+
singlestoredb/management/__init__.py,sha256=8q7i6-Cr9x-oZ8-NVAvTo_qtfHEndX4wx2g6GMAAgPQ,304
|
|
56
80
|
singlestoredb/management/billing_usage.py,sha256=9ighjIpcopgIyJOktBYQ6pahBZmWGHOPyyCW4gu9FGs,3735
|
|
57
|
-
singlestoredb/management/cluster.py,sha256=
|
|
81
|
+
singlestoredb/management/cluster.py,sha256=vDefpp2IMZRawvueIqZK2pePWVNnPWb6Szrt8mO8gmg,14419
|
|
58
82
|
singlestoredb/management/export.py,sha256=yR-yZUE9USFrP5OR_5iLFqEc8GLiKDQypSEp08CmT5k,9083
|
|
59
83
|
singlestoredb/management/files.py,sha256=89IhpGw9WdwxVeksavHEDMVn9wb_jxb-utZuIDqkLHw,30477
|
|
60
84
|
singlestoredb/management/inference_api.py,sha256=L6eFqaUaPugF_cmrZ4xlArj8CIv25vWqQs1vwgKPEF4,2583
|
|
61
85
|
singlestoredb/management/job.py,sha256=4-xLWzbE8odQogVVaFer80UEoTAZY1T28VZ9Ug4rbmM,24611
|
|
62
|
-
singlestoredb/management/manager.py,sha256=
|
|
86
|
+
singlestoredb/management/manager.py,sha256=k8JKPXyJVHI7gFwqIhxhUtQr_KdBCXw7Dw4GCdCtdKg,9352
|
|
63
87
|
singlestoredb/management/organization.py,sha256=_JvW0Znu5emR5uYGVEcZvakQqftNb_vRhzmkOoPRPfc,5869
|
|
64
|
-
singlestoredb/management/region.py,sha256=
|
|
88
|
+
singlestoredb/management/region.py,sha256=ji3u6ZjQoNJ9i_X4C9ojciYPq4Oz7gKkeeUDndO8dZU,4114
|
|
65
89
|
singlestoredb/management/utils.py,sha256=QIhZCZSRaDbAG35xu1_n7ihmRXON8swc-gEK2FGYutI,13203
|
|
66
|
-
singlestoredb/management/workspace.py,sha256=
|
|
90
|
+
singlestoredb/management/workspace.py,sha256=XoguxUm2k2MP6Fct8am_735ZgPqUXBkIjPwBOVtIBIY,61931
|
|
67
91
|
singlestoredb/mysql/__init__.py,sha256=olUTAvkiERhDW41JXQMawkg-i0tvBEkoTkII1tt6lxU,4492
|
|
68
92
|
singlestoredb/mysql/_auth.py,sha256=AugRitoUwgRIDFuJxuAH4MWIAmckY7Ji2pP6r_Ng9dY,8043
|
|
69
93
|
singlestoredb/mysql/charset.py,sha256=-FlONDS_oAUF5B3mIgeHBPb_SCt4zHD33arUeBNctU0,10510
|
|
@@ -115,28 +139,28 @@ singlestoredb/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
|
115
139
|
singlestoredb/tests/empty.sql,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
116
140
|
singlestoredb/tests/local_infile.csv,sha256=sBtqjvfkS9aoOVx8nMXYgYv4rDuT4OuYhqUhNRu0O68,42
|
|
117
141
|
singlestoredb/tests/test.ipynb,sha256=jrkI2WoSsUA9xQpKTBCHnsDptryQhPdM5QaxfvYRGpg,216
|
|
118
|
-
singlestoredb/tests/test.sql,sha256=
|
|
142
|
+
singlestoredb/tests/test.sql,sha256=mErluOEZsN0QH5EuSVR8Ki-NSIpdpR8MStuchec_ZKc,18640
|
|
119
143
|
singlestoredb/tests/test2.ipynb,sha256=yd1PE1VK-DwiRd6mYS4_0cPBtuVkvcDtycvTwD-YnDo,218
|
|
120
144
|
singlestoredb/tests/test2.sql,sha256=D4U2GSlOVeo39U8-RMM4YziJzYFfi4Ztm2YXJVJVAS8,37
|
|
121
145
|
singlestoredb/tests/test_basics.py,sha256=Dw1irrtf3gWN7tqGruSH6uhWi5zkmCpJl6ZMQxMqlf4,48446
|
|
122
146
|
singlestoredb/tests/test_config.py,sha256=63lyIQ2KrvGE6C9403B_4Mc90mX4tp42ys5Bih2sXrE,11184
|
|
123
|
-
singlestoredb/tests/test_connection.py,sha256=
|
|
147
|
+
singlestoredb/tests/test_connection.py,sha256=ax2hBPahn0rFENBbYLoph_JIAR20eYeJLyQPIQGIdX4,120237
|
|
124
148
|
singlestoredb/tests/test_dbapi.py,sha256=IKq5Hcwx8WikASP8_AB5fo3TXv7ryWPCVGonoly00gI,652
|
|
125
149
|
singlestoredb/tests/test_exceptions.py,sha256=tfr_8X2w1UmG4nkSBzWGB0C7ehrf1GAVgj6_ODaG-TM,1131
|
|
126
|
-
singlestoredb/tests/test_ext_func.py,sha256=
|
|
150
|
+
singlestoredb/tests/test_ext_func.py,sha256=_YREceW1Llwx9Wcamj0up2IXLuBTnuvQqCFOWphckKI,46271
|
|
127
151
|
singlestoredb/tests/test_ext_func_data.py,sha256=yTADD93nPxX6_rZXXLZaOWEI_yPvYyir9psn5PK9ctU,47695
|
|
128
152
|
singlestoredb/tests/test_fusion.py,sha256=7YQ_nOQoV_7yD4OEpJz2Ov-zok-cBFK9IOJ3FgZ0xo0,50593
|
|
129
153
|
singlestoredb/tests/test_http.py,sha256=RXasTqBWRn__omj0eLFTJYIbZjd0PPdIV2d4Cqz0MC8,8580
|
|
130
|
-
singlestoredb/tests/test_management.py,sha256=
|
|
154
|
+
singlestoredb/tests/test_management.py,sha256=R5g5QHWCSPxCrwMUOD0BL-touGIDvqQfDve-YmZyhX4,51973
|
|
131
155
|
singlestoredb/tests/test_plugin.py,sha256=qpO9wmWc62VaijN1sJ97YSYIX7I7Y5C6sY-WzwrutDQ,812
|
|
132
156
|
singlestoredb/tests/test_results.py,sha256=wg93sujwt-R9_eJCgSCElgAZhLDkIiAo3qPkPydOv78,6582
|
|
133
157
|
singlestoredb/tests/test_types.py,sha256=jqoAaSjhbgwB3vt0KsTcl7XBWoMMIa0mPFKhEi5bBjo,4500
|
|
134
|
-
singlestoredb/tests/test_udf.py,sha256=
|
|
158
|
+
singlestoredb/tests/test_udf.py,sha256=ycqSwwwCw3Mq4r0cyIylg63ReSjP4KbMX_7XqoYm-dg,29676
|
|
135
159
|
singlestoredb/tests/test_udf_returns.py,sha256=k31L6Ir2Xw8MEZ18upuu0p_D_OpbrPAzWhDQXVFDS7I,15541
|
|
136
160
|
singlestoredb/tests/test_vectorstore.py,sha256=anHfp5gQrQy8Iw3Ub4mxFEkaZWahs566OXuKqjpkozM,1554
|
|
137
161
|
singlestoredb/tests/test_xdict.py,sha256=fqHspoi39nbX3fIDVkkRXcd5H50xdOsSvK0bxAMQnaE,10408
|
|
138
162
|
singlestoredb/tests/utils.py,sha256=2A2tEdD3t8aXWUnHtAIcFlWrflsz2MlMcCbUDaAG29c,4995
|
|
139
|
-
singlestoredb/tests/ext_funcs/__init__.py,sha256=
|
|
163
|
+
singlestoredb/tests/ext_funcs/__init__.py,sha256=Gg15gcphVnW5ZXgFT8P8hYSOmgvmVIaUA8jxTC_UgRc,15581
|
|
140
164
|
singlestoredb/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
165
|
singlestoredb/utils/config.py,sha256=m3Xn6hsbdKyLufSnbokhFJ9Vfaz9Qpkj1IEnIiH9oJQ,24503
|
|
142
166
|
singlestoredb/utils/convert_rows.py,sha256=A6up7a8Bq-eV2BXdGCotQviqp1Q7XdJ2MA9339hLYVQ,1816
|
|
@@ -148,9 +172,9 @@ singlestoredb/utils/results.py,sha256=bJtaUaDiFq26IsPAKZ2FHGB7csMn94EAxLKrP4HaEE
|
|
|
148
172
|
singlestoredb/utils/xdict.py,sha256=S9HKgrPrnu_6b7iOwa2KrW8CmU1Uqx0BWdEyogFzWbE,12896
|
|
149
173
|
sqlx/__init__.py,sha256=aBYiU8DZXCogvWu3yWafOz7bZS5WWwLZXj7oL0dXGyU,85
|
|
150
174
|
sqlx/magic.py,sha256=JsS9_9aBFaOt91Torm1JPN0c8qB2QmYJmNSKtbSQIY0,3509
|
|
151
|
-
singlestoredb-1.
|
|
152
|
-
singlestoredb-1.
|
|
153
|
-
singlestoredb-1.
|
|
154
|
-
singlestoredb-1.
|
|
155
|
-
singlestoredb-1.
|
|
156
|
-
singlestoredb-1.
|
|
175
|
+
singlestoredb-1.15.1.dist-info/LICENSE,sha256=Mlq78idURT-9G026aMYswwwnnrLcgzTLuXeAs5hjDLM,11341
|
|
176
|
+
singlestoredb-1.15.1.dist-info/METADATA,sha256=Jv3BREq0woLIxNAFWlMQ_CCNP9XyQuK81oG57-4FCxg,5786
|
|
177
|
+
singlestoredb-1.15.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
178
|
+
singlestoredb-1.15.1.dist-info/entry_points.txt,sha256=bSLaTWB5zGjpVYPAaI46MkkDup0su-eb3uAhCNYuRV0,48
|
|
179
|
+
singlestoredb-1.15.1.dist-info/top_level.txt,sha256=DfFGz7bM4XrshloiCeTABgylT3BUnS8T5pJam3ewT6Q,19
|
|
180
|
+
singlestoredb-1.15.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|