singlestoredb 0.4.0__py3-none-any.whl → 1.0.4__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 +33 -1
- singlestoredb/alchemy/__init__.py +90 -0
- singlestoredb/auth.py +5 -1
- singlestoredb/config.py +116 -14
- singlestoredb/connection.py +483 -516
- singlestoredb/converters.py +238 -135
- singlestoredb/exceptions.py +30 -2
- singlestoredb/functions/__init__.py +1 -0
- singlestoredb/functions/decorator.py +142 -0
- singlestoredb/functions/dtypes.py +1639 -0
- singlestoredb/functions/ext/__init__.py +2 -0
- singlestoredb/functions/ext/arrow.py +375 -0
- singlestoredb/functions/ext/asgi.py +661 -0
- singlestoredb/functions/ext/json.py +427 -0
- singlestoredb/functions/ext/mmap.py +306 -0
- singlestoredb/functions/ext/rowdat_1.py +744 -0
- singlestoredb/functions/signature.py +673 -0
- singlestoredb/fusion/__init__.py +11 -0
- singlestoredb/fusion/graphql.py +213 -0
- singlestoredb/fusion/handler.py +621 -0
- singlestoredb/fusion/handlers/stage.py +257 -0
- singlestoredb/fusion/handlers/utils.py +162 -0
- singlestoredb/fusion/handlers/workspace.py +412 -0
- singlestoredb/fusion/registry.py +164 -0
- singlestoredb/fusion/result.py +399 -0
- singlestoredb/http/__init__.py +27 -0
- singlestoredb/{http.py → http/connection.py} +555 -154
- singlestoredb/management/__init__.py +3 -0
- singlestoredb/management/billing_usage.py +148 -0
- singlestoredb/management/cluster.py +14 -6
- singlestoredb/management/manager.py +100 -38
- singlestoredb/management/organization.py +188 -0
- singlestoredb/management/region.py +5 -5
- singlestoredb/management/utils.py +281 -2
- singlestoredb/management/workspace.py +1344 -49
- singlestoredb/{clients/pymysqlsv → mysql}/__init__.py +16 -21
- singlestoredb/{clients/pymysqlsv → mysql}/_auth.py +39 -8
- singlestoredb/{clients/pymysqlsv → mysql}/charset.py +26 -23
- singlestoredb/{clients/pymysqlsv/connections.py → mysql/connection.py} +532 -165
- singlestoredb/{clients/pymysqlsv → mysql}/constants/CLIENT.py +0 -1
- singlestoredb/{clients/pymysqlsv → mysql}/constants/COMMAND.py +0 -1
- singlestoredb/{clients/pymysqlsv → mysql}/constants/CR.py +0 -2
- singlestoredb/{clients/pymysqlsv → mysql}/constants/ER.py +0 -1
- singlestoredb/{clients/pymysqlsv → mysql}/constants/FIELD_TYPE.py +1 -1
- singlestoredb/{clients/pymysqlsv → mysql}/constants/FLAG.py +0 -1
- singlestoredb/{clients/pymysqlsv → mysql}/constants/SERVER_STATUS.py +0 -1
- singlestoredb/mysql/converters.py +271 -0
- singlestoredb/{clients/pymysqlsv → mysql}/cursors.py +228 -112
- singlestoredb/mysql/err.py +92 -0
- singlestoredb/{clients/pymysqlsv → mysql}/optionfile.py +5 -4
- singlestoredb/{clients/pymysqlsv → mysql}/protocol.py +49 -20
- singlestoredb/mysql/tests/__init__.py +19 -0
- singlestoredb/{clients/pymysqlsv → mysql}/tests/base.py +32 -12
- singlestoredb/mysql/tests/conftest.py +37 -0
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_DictCursor.py +11 -7
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_SSCursor.py +17 -12
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_basic.py +32 -24
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_connection.py +130 -119
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_converters.py +9 -7
- singlestoredb/mysql/tests/test_cursor.py +141 -0
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_err.py +3 -2
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_issues.py +35 -27
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_load_local.py +13 -11
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_nextset.py +7 -3
- singlestoredb/{clients/pymysqlsv → mysql}/tests/test_optionfile.py +2 -1
- singlestoredb/{clients/pymysqlsv → mysql}/tests/thirdparty/__init__.py +1 -1
- singlestoredb/mysql/tests/thirdparty/test_MySQLdb/__init__.py +9 -0
- singlestoredb/{clients/pymysqlsv → mysql}/tests/thirdparty/test_MySQLdb/capabilities.py +19 -17
- singlestoredb/{clients/pymysqlsv → mysql}/tests/thirdparty/test_MySQLdb/dbapi20.py +31 -22
- singlestoredb/{clients/pymysqlsv → mysql}/tests/thirdparty/test_MySQLdb/test_MySQLdb_capabilities.py +3 -4
- singlestoredb/{clients/pymysqlsv → mysql}/tests/thirdparty/test_MySQLdb/test_MySQLdb_dbapi20.py +24 -20
- singlestoredb/{clients/pymysqlsv → mysql}/tests/thirdparty/test_MySQLdb/test_MySQLdb_nonstandard.py +4 -4
- singlestoredb/{clients/pymysqlsv → mysql}/times.py +3 -4
- singlestoredb/pytest.py +283 -0
- singlestoredb/tests/empty.sql +0 -0
- singlestoredb/tests/ext_funcs/__init__.py +385 -0
- singlestoredb/tests/test.sql +210 -0
- singlestoredb/tests/test2.sql +1 -0
- singlestoredb/tests/test_basics.py +482 -115
- singlestoredb/tests/test_config.py +13 -13
- singlestoredb/tests/test_connection.py +241 -305
- singlestoredb/tests/test_dbapi.py +27 -0
- singlestoredb/tests/test_ext_func.py +1193 -0
- singlestoredb/tests/test_ext_func_data.py +1101 -0
- singlestoredb/tests/test_fusion.py +465 -0
- singlestoredb/tests/test_http.py +32 -26
- singlestoredb/tests/test_management.py +588 -8
- singlestoredb/tests/test_plugin.py +33 -0
- singlestoredb/tests/test_results.py +11 -12
- singlestoredb/tests/test_udf.py +687 -0
- singlestoredb/tests/utils.py +3 -2
- singlestoredb/utils/config.py +58 -0
- singlestoredb/utils/debug.py +13 -0
- singlestoredb/utils/mogrify.py +151 -0
- singlestoredb/utils/results.py +4 -1
- singlestoredb-1.0.4.dist-info/METADATA +139 -0
- singlestoredb-1.0.4.dist-info/RECORD +112 -0
- {singlestoredb-0.4.0.dist-info → singlestoredb-1.0.4.dist-info}/WHEEL +1 -1
- singlestoredb-1.0.4.dist-info/entry_points.txt +2 -0
- singlestoredb/clients/pymysqlsv/converters.py +0 -365
- singlestoredb/clients/pymysqlsv/err.py +0 -144
- singlestoredb/clients/pymysqlsv/tests/__init__.py +0 -19
- singlestoredb/clients/pymysqlsv/tests/test_cursor.py +0 -133
- singlestoredb/clients/pymysqlsv/tests/thirdparty/test_MySQLdb/__init__.py +0 -9
- singlestoredb/drivers/__init__.py +0 -45
- singlestoredb/drivers/base.py +0 -198
- singlestoredb/drivers/cymysql.py +0 -38
- singlestoredb/drivers/http.py +0 -47
- singlestoredb/drivers/mariadb.py +0 -40
- singlestoredb/drivers/mysqlconnector.py +0 -49
- singlestoredb/drivers/mysqldb.py +0 -60
- singlestoredb/drivers/pymysql.py +0 -37
- singlestoredb/drivers/pymysqlsv.py +0 -35
- singlestoredb/drivers/pyodbc.py +0 -65
- singlestoredb-0.4.0.dist-info/METADATA +0 -111
- singlestoredb-0.4.0.dist-info/RECORD +0 -86
- /singlestoredb/{clients → fusion/handlers}/__init__.py +0 -0
- /singlestoredb/{clients/pymysqlsv → mysql}/constants/__init__.py +0 -0
- {singlestoredb-0.4.0.dist-info → singlestoredb-1.0.4.dist-info}/LICENSE +0 -0
- {singlestoredb-0.4.0.dist-info → singlestoredb-1.0.4.dist-info}/top_level.txt +0 -0
|
@@ -29,7 +29,6 @@ class TestResults(unittest.TestCase):
|
|
|
29
29
|
def setUp(self):
|
|
30
30
|
self.conn = s2.connect(database=type(self).dbname)
|
|
31
31
|
self.cur = self.conn.cursor()
|
|
32
|
-
self.driver = self.conn._driver.dbapi.__name__
|
|
33
32
|
|
|
34
33
|
def tearDown(self):
|
|
35
34
|
try:
|
|
@@ -47,12 +46,12 @@ class TestResults(unittest.TestCase):
|
|
|
47
46
|
pass
|
|
48
47
|
|
|
49
48
|
def test_tuples(self):
|
|
50
|
-
with s2.options(('results.
|
|
49
|
+
with s2.options(('results.type', 'tuples')):
|
|
51
50
|
with s2.connect(database=type(self).dbname) as conn:
|
|
52
51
|
with conn.cursor() as cur:
|
|
53
52
|
cur.execute('select * from data')
|
|
54
53
|
out = cur.fetchone()
|
|
55
|
-
assert type(out)
|
|
54
|
+
assert type(out) is tuple, type(out)
|
|
56
55
|
assert len(out) == 3, len(out)
|
|
57
56
|
cur.fetchall()
|
|
58
57
|
|
|
@@ -60,7 +59,7 @@ class TestResults(unittest.TestCase):
|
|
|
60
59
|
out = cur.fetchall()
|
|
61
60
|
assert len(out) == 5, len(out)
|
|
62
61
|
assert len(out[0]) == 3, len(out[0])
|
|
63
|
-
assert type(out[0])
|
|
62
|
+
assert type(out[0]) is tuple, type(out[0])
|
|
64
63
|
assert sorted(out) == sorted([
|
|
65
64
|
('a', 'antelopes', 2),
|
|
66
65
|
('b', 'bears', 2),
|
|
@@ -73,7 +72,7 @@ class TestResults(unittest.TestCase):
|
|
|
73
72
|
assert len(out) == 0, len(out)
|
|
74
73
|
|
|
75
74
|
def test_namedtuples(self):
|
|
76
|
-
with s2.options(('results.
|
|
75
|
+
with s2.options(('results.type', 'namedtuples')):
|
|
77
76
|
with s2.connect(database=type(self).dbname) as conn:
|
|
78
77
|
with conn.cursor() as cur:
|
|
79
78
|
cur.execute('select * from data')
|
|
@@ -107,18 +106,18 @@ class TestResults(unittest.TestCase):
|
|
|
107
106
|
assert len(out) == 0, len(out)
|
|
108
107
|
|
|
109
108
|
def test_dict(self):
|
|
110
|
-
with s2.options(('results.
|
|
109
|
+
with s2.options(('results.type', 'dicts')):
|
|
111
110
|
with s2.connect(database=type(self).dbname) as conn:
|
|
112
111
|
with conn.cursor() as cur:
|
|
113
112
|
cur.execute('select * from data')
|
|
114
113
|
out = cur.fetchone()
|
|
115
|
-
assert type(out)
|
|
114
|
+
assert type(out) is dict, type(out)
|
|
116
115
|
assert len(out) == 3, len(out)
|
|
117
116
|
cur.fetchall()
|
|
118
117
|
|
|
119
118
|
cur.execute('select * from data')
|
|
120
119
|
out = cur.fetchall()
|
|
121
|
-
assert type(out[0])
|
|
120
|
+
assert type(out[0]) is dict, type(out[0])
|
|
122
121
|
assert len(out) == 5, len(out)
|
|
123
122
|
assert len(out[0]) == 3, len(out[0])
|
|
124
123
|
assert sorted(out, key=lambda x: x['id']) == sorted(
|
|
@@ -134,19 +133,19 @@ class TestResults(unittest.TestCase):
|
|
|
134
133
|
out = cur.fetchall()
|
|
135
134
|
assert len(out) == 0, len(out)
|
|
136
135
|
|
|
137
|
-
def
|
|
138
|
-
with s2.options(('results.
|
|
136
|
+
def _test_dataframe(self):
|
|
137
|
+
with s2.options(('results.type', 'dataframe')):
|
|
139
138
|
with s2.connect(database=type(self).dbname) as conn:
|
|
140
139
|
with conn.cursor() as cur:
|
|
141
140
|
cur.execute('select * from data')
|
|
142
141
|
out = cur.fetchone()
|
|
143
|
-
assert type(out)
|
|
142
|
+
assert type(out) is pd.DataFrame, type(out)
|
|
144
143
|
assert len(out) == 1, len(out)
|
|
145
144
|
cur.fetchall()
|
|
146
145
|
|
|
147
146
|
cur.execute('select * from data')
|
|
148
147
|
out = cur.fetchall()
|
|
149
|
-
assert type(out)
|
|
148
|
+
assert type(out) is pd.DataFrame, type(out)
|
|
150
149
|
assert len(out) == 5, len(out)
|
|
151
150
|
out = out.sort_values('id').reset_index(drop=True)
|
|
152
151
|
exp = pd.DataFrame(
|