singlestoredb 1.4.3__tar.gz → 1.6.0__tar.gz

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 (130) hide show
  1. {singlestoredb-1.4.3/singlestoredb.egg-info → singlestoredb-1.6.0}/PKG-INFO +1 -1
  2. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/setup.cfg +1 -1
  3. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/__init__.py +1 -1
  4. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/config.py +11 -0
  5. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/connection.py +3 -0
  6. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/handler.py +17 -9
  7. singlestoredb-1.6.0/singlestoredb/fusion/handlers/job.py +658 -0
  8. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/handlers/workspace.py +81 -5
  9. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/http/connection.py +2 -0
  10. singlestoredb-1.6.0/singlestoredb/management/job.py +887 -0
  11. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/management/organization.py +17 -0
  12. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/management/utils.py +47 -1
  13. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/connection.py +19 -0
  14. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/notebook/_portal.py +32 -0
  15. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_fusion.py +250 -1
  16. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_management.py +152 -0
  17. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/utils.py +7 -0
  18. {singlestoredb-1.4.3 → singlestoredb-1.6.0/singlestoredb.egg-info}/PKG-INFO +1 -1
  19. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb.egg-info/SOURCES.txt +2 -0
  20. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/LICENSE +0 -0
  21. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/README.md +0 -0
  22. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/accel.c +0 -0
  23. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/setup.py +0 -0
  24. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/ai/__init__.py +0 -0
  25. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/ai/embeddings.py +0 -0
  26. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/alchemy/__init__.py +0 -0
  27. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/auth.py +0 -0
  28. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/converters.py +0 -0
  29. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/exceptions.py +0 -0
  30. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/__init__.py +0 -0
  31. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/decorator.py +0 -0
  32. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/dtypes.py +0 -0
  33. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/ext/__init__.py +0 -0
  34. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/ext/arrow.py +0 -0
  35. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/ext/asgi.py +0 -0
  36. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/ext/json.py +0 -0
  37. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/ext/mmap.py +0 -0
  38. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/ext/rowdat_1.py +0 -0
  39. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/ext/utils.py +0 -0
  40. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/functions/signature.py +0 -0
  41. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/__init__.py +0 -0
  42. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/graphql.py +0 -0
  43. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/handlers/__init__.py +0 -0
  44. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/handlers/stage.py +0 -0
  45. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/handlers/utils.py +0 -0
  46. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/registry.py +0 -0
  47. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/fusion/result.py +0 -0
  48. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/http/__init__.py +0 -0
  49. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/management/__init__.py +0 -0
  50. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/management/billing_usage.py +0 -0
  51. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/management/cluster.py +0 -0
  52. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/management/manager.py +0 -0
  53. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/management/region.py +0 -0
  54. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/management/workspace.py +0 -0
  55. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/__init__.py +0 -0
  56. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/_auth.py +0 -0
  57. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/charset.py +0 -0
  58. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/CLIENT.py +0 -0
  59. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/COMMAND.py +0 -0
  60. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/CR.py +0 -0
  61. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/ER.py +0 -0
  62. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/EXTENDED_TYPE.py +0 -0
  63. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/FIELD_TYPE.py +0 -0
  64. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/FLAG.py +0 -0
  65. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/SERVER_STATUS.py +0 -0
  66. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/VECTOR_TYPE.py +0 -0
  67. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/constants/__init__.py +0 -0
  68. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/converters.py +0 -0
  69. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/cursors.py +0 -0
  70. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/err.py +0 -0
  71. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/optionfile.py +0 -0
  72. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/protocol.py +0 -0
  73. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/__init__.py +0 -0
  74. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/base.py +0 -0
  75. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/conftest.py +0 -0
  76. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_DictCursor.py +0 -0
  77. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_SSCursor.py +0 -0
  78. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_basic.py +0 -0
  79. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_connection.py +0 -0
  80. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_converters.py +0 -0
  81. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_cursor.py +0 -0
  82. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_err.py +0 -0
  83. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_issues.py +0 -0
  84. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_load_local.py +0 -0
  85. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_nextset.py +0 -0
  86. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/test_optionfile.py +0 -0
  87. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/thirdparty/__init__.py +0 -0
  88. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/__init__.py +0 -0
  89. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/capabilities.py +0 -0
  90. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/dbapi20.py +0 -0
  91. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_capabilities.py +0 -0
  92. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_dbapi20.py +0 -0
  93. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_nonstandard.py +0 -0
  94. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/mysql/times.py +0 -0
  95. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/notebook/__init__.py +0 -0
  96. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/notebook/_objects.py +0 -0
  97. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/pytest.py +0 -0
  98. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/__init__.py +0 -0
  99. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/empty.sql +0 -0
  100. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/ext_funcs/__init__.py +0 -0
  101. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/local_infile.csv +0 -0
  102. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test.sql +0 -0
  103. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test2.sql +0 -0
  104. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_basics.py +0 -0
  105. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_config.py +0 -0
  106. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_connection.py +0 -0
  107. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_dbapi.py +0 -0
  108. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_exceptions.py +0 -0
  109. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_ext_func.py +0 -0
  110. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_ext_func_data.py +0 -0
  111. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_http.py +0 -0
  112. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_plugin.py +0 -0
  113. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_results.py +0 -0
  114. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_types.py +0 -0
  115. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_udf.py +0 -0
  116. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/tests/test_xdict.py +0 -0
  117. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/types.py +0 -0
  118. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/__init__.py +0 -0
  119. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/config.py +0 -0
  120. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/convert_rows.py +0 -0
  121. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/debug.py +0 -0
  122. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/dtypes.py +0 -0
  123. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/events.py +0 -0
  124. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/mogrify.py +0 -0
  125. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/results.py +0 -0
  126. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb/utils/xdict.py +0 -0
  127. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb.egg-info/dependency_links.txt +0 -0
  128. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb.egg-info/entry_points.txt +0 -0
  129. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb.egg-info/requires.txt +0 -0
  130. {singlestoredb-1.4.3 → singlestoredb-1.6.0}/singlestoredb.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: singlestoredb
3
- Version: 1.4.3
3
+ Version: 1.6.0
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,6 +1,6 @@
1
1
  [metadata]
2
2
  name = singlestoredb
3
- version = 1.4.3
3
+ version = 1.6.0
4
4
  description = Interface to the SingleStoreDB database and workspace management APIs
5
5
  long_description = file: README.md
6
6
  long_description_content_type = text/markdown
@@ -13,7 +13,7 @@ Examples
13
13
 
14
14
  """
15
15
 
16
- __version__ = '1.4.3'
16
+ __version__ = '1.6.0'
17
17
 
18
18
  from typing import Any
19
19
 
@@ -221,6 +221,17 @@ register_option(
221
221
  environ='SINGLESTOREDB_ENABLE_EXTENDED_DATA_TYPES',
222
222
  )
223
223
 
224
+ register_option(
225
+ 'vector_data_format', 'string',
226
+ functools.partial(
227
+ check_str,
228
+ valid_values=['json', 'binary'],
229
+ ),
230
+ 'binary',
231
+ 'Format for vector data values',
232
+ environ='SINGLESTOREDB_VECTOR_DATA_FORMAT',
233
+ )
234
+
224
235
  register_option(
225
236
  'fusion.enabled', 'bool', check_bool, False,
226
237
  'Should Fusion SQL queries be enabled?',
@@ -1304,6 +1304,7 @@ def connect(
1304
1304
  encoding_errors: Optional[str] = None,
1305
1305
  track_env: Optional[bool] = None,
1306
1306
  enable_extended_data_types: Optional[bool] = None,
1307
+ vector_data_format: Optional[str] = None,
1307
1308
  ) -> Connection:
1308
1309
  """
1309
1310
  Return a SingleStoreDB connection.
@@ -1387,6 +1388,8 @@ def connect(
1387
1388
  Should the connection track the SINGLESTOREDB_URL environment variable?
1388
1389
  enable_extended_data_types : bool, optional
1389
1390
  Should extended data types (BSON, vector) be enabled?
1391
+ vector_data_format : str, optional
1392
+ Format for vector types: json or binary
1390
1393
 
1391
1394
  Examples
1392
1395
  --------
@@ -2,6 +2,7 @@
2
2
  import abc
3
3
  import functools
4
4
  import re
5
+ import sys
5
6
  import textwrap
6
7
  from typing import Any
7
8
  from typing import Callable
@@ -102,7 +103,7 @@ def json_unescape(s: str) -> str:
102
103
 
103
104
  def get_keywords(grammar: str) -> Tuple[str, ...]:
104
105
  """Return all all-caps words from the beginning of the line."""
105
- m = re.match(r'^\s*((?:[A-Z0-9_]+)(\s+|$|;))+', grammar)
106
+ m = re.match(r'^\s*((?:[@A-Z0-9_]+)(\s+|$|;))+', grammar)
106
107
  if not m:
107
108
  return tuple()
108
109
  return tuple(re.split(r'\s+', m.group(0).replace(';', '').strip()))
@@ -110,7 +111,7 @@ def get_keywords(grammar: str) -> Tuple[str, ...]:
110
111
 
111
112
  def is_bool(grammar: str) -> bool:
112
113
  """Determine if the rule is a boolean."""
113
- return bool(re.match(r'^[A-Z0-9_\s*]+$', grammar))
114
+ return bool(re.match(r'^[@A-Z0-9_\s*]+$', grammar))
114
115
 
115
116
 
116
117
  def process_optional(m: Any) -> str:
@@ -137,8 +138,9 @@ def process_repeats(m: Any) -> str:
137
138
 
138
139
  def lower_and_regex(m: Any) -> str:
139
140
  """Lowercase and convert literal to regex."""
140
- sql = m.group(1)
141
- return f'~"{sql.lower()}"i'
141
+ start = m.group(1) or ''
142
+ sql = m.group(2)
143
+ return f'~"{start}{sql.lower()}"i'
142
144
 
143
145
 
144
146
  def split_unions(grammar: str) -> str:
@@ -415,7 +417,7 @@ def process_grammar(
415
417
  sql = re.sub(r'\]\s+\[', r' | ', sql)
416
418
 
417
419
  # Lower-case keywords and make them case-insensitive
418
- sql = re.sub(r'\b([A-Z0-9]+)\b', lower_and_regex, sql)
420
+ sql = re.sub(r'(\b|@+)([A-Z0-9]+)\b', lower_and_regex, sql)
419
421
 
420
422
  # Convert literal strings to 'qs'
421
423
  sql = re.sub(r"'[^']+'", r'qs', sql)
@@ -479,10 +481,16 @@ def process_grammar(
479
481
  cmds = ' / '.join(x for x in rules if x.endswith('_cmd'))
480
482
  cmds = f'init = ws* ( {cmds} ) ws* ";"? ws*\n'
481
483
 
482
- return (
483
- Grammar(cmds + CORE_GRAMMAR + '\n'.join(out)), command_key,
484
- rule_info, syntax_txt, help_txt,
485
- )
484
+ grammar = cmds + CORE_GRAMMAR + '\n'.join(out)
485
+
486
+ try:
487
+ return (
488
+ Grammar(grammar), command_key,
489
+ rule_info, syntax_txt, help_txt,
490
+ )
491
+ except ParseError:
492
+ print(grammar, file=sys.stderr)
493
+ raise
486
494
 
487
495
 
488
496
  def flatten(items: Iterable[Any]) -> List[Any]: