singlestoredb 1.5.0__tar.gz → 1.6.1__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.5.0/singlestoredb.egg-info → singlestoredb-1.6.1}/PKG-INFO +1 -1
  2. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/setup.cfg +1 -1
  3. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/__init__.py +1 -1
  4. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/handler.py +17 -9
  5. singlestoredb-1.6.1/singlestoredb/fusion/handlers/job.py +658 -0
  6. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/handlers/workspace.py +33 -10
  7. singlestoredb-1.6.1/singlestoredb/management/job.py +887 -0
  8. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/management/organization.py +17 -0
  9. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/management/utils.py +47 -1
  10. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/connection.py +7 -6
  11. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_fusion.py +250 -1
  12. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_management.py +152 -0
  13. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/utils.py +7 -0
  14. {singlestoredb-1.5.0 → singlestoredb-1.6.1/singlestoredb.egg-info}/PKG-INFO +1 -1
  15. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb.egg-info/SOURCES.txt +2 -0
  16. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/LICENSE +0 -0
  17. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/README.md +0 -0
  18. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/accel.c +0 -0
  19. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/setup.py +0 -0
  20. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/ai/__init__.py +0 -0
  21. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/ai/embeddings.py +0 -0
  22. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/alchemy/__init__.py +0 -0
  23. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/auth.py +0 -0
  24. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/config.py +0 -0
  25. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/connection.py +0 -0
  26. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/converters.py +0 -0
  27. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/exceptions.py +0 -0
  28. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/__init__.py +0 -0
  29. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/decorator.py +0 -0
  30. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/dtypes.py +0 -0
  31. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/ext/__init__.py +0 -0
  32. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/ext/arrow.py +0 -0
  33. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/ext/asgi.py +0 -0
  34. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/ext/json.py +0 -0
  35. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/ext/mmap.py +0 -0
  36. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/ext/rowdat_1.py +0 -0
  37. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/ext/utils.py +0 -0
  38. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/functions/signature.py +0 -0
  39. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/__init__.py +0 -0
  40. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/graphql.py +0 -0
  41. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/handlers/__init__.py +0 -0
  42. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/handlers/stage.py +0 -0
  43. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/handlers/utils.py +0 -0
  44. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/registry.py +0 -0
  45. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/fusion/result.py +0 -0
  46. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/http/__init__.py +0 -0
  47. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/http/connection.py +0 -0
  48. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/management/__init__.py +0 -0
  49. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/management/billing_usage.py +0 -0
  50. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/management/cluster.py +0 -0
  51. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/management/manager.py +0 -0
  52. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/management/region.py +0 -0
  53. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/management/workspace.py +0 -0
  54. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/__init__.py +0 -0
  55. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/_auth.py +0 -0
  56. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/charset.py +0 -0
  57. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/CLIENT.py +0 -0
  58. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/COMMAND.py +0 -0
  59. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/CR.py +0 -0
  60. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/ER.py +0 -0
  61. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/EXTENDED_TYPE.py +0 -0
  62. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/FIELD_TYPE.py +0 -0
  63. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/FLAG.py +0 -0
  64. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/SERVER_STATUS.py +0 -0
  65. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/VECTOR_TYPE.py +0 -0
  66. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/constants/__init__.py +0 -0
  67. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/converters.py +0 -0
  68. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/cursors.py +0 -0
  69. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/err.py +0 -0
  70. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/optionfile.py +0 -0
  71. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/protocol.py +0 -0
  72. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/__init__.py +0 -0
  73. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/base.py +0 -0
  74. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/conftest.py +0 -0
  75. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_DictCursor.py +0 -0
  76. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_SSCursor.py +0 -0
  77. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_basic.py +0 -0
  78. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_connection.py +0 -0
  79. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_converters.py +0 -0
  80. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_cursor.py +0 -0
  81. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_err.py +0 -0
  82. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_issues.py +0 -0
  83. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_load_local.py +0 -0
  84. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_nextset.py +0 -0
  85. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/test_optionfile.py +0 -0
  86. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/thirdparty/__init__.py +0 -0
  87. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/__init__.py +0 -0
  88. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/capabilities.py +0 -0
  89. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/dbapi20.py +0 -0
  90. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_capabilities.py +0 -0
  91. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_dbapi20.py +0 -0
  92. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_nonstandard.py +0 -0
  93. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/mysql/times.py +0 -0
  94. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/notebook/__init__.py +0 -0
  95. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/notebook/_objects.py +0 -0
  96. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/notebook/_portal.py +0 -0
  97. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/pytest.py +0 -0
  98. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/__init__.py +0 -0
  99. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/empty.sql +0 -0
  100. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/ext_funcs/__init__.py +0 -0
  101. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/local_infile.csv +0 -0
  102. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test.sql +0 -0
  103. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test2.sql +0 -0
  104. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_basics.py +0 -0
  105. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_config.py +0 -0
  106. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_connection.py +0 -0
  107. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_dbapi.py +0 -0
  108. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_exceptions.py +0 -0
  109. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_ext_func.py +0 -0
  110. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_ext_func_data.py +0 -0
  111. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_http.py +0 -0
  112. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_plugin.py +0 -0
  113. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_results.py +0 -0
  114. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_types.py +0 -0
  115. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_udf.py +0 -0
  116. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/tests/test_xdict.py +0 -0
  117. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/types.py +0 -0
  118. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/__init__.py +0 -0
  119. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/config.py +0 -0
  120. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/convert_rows.py +0 -0
  121. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/debug.py +0 -0
  122. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/dtypes.py +0 -0
  123. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/events.py +0 -0
  124. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/mogrify.py +0 -0
  125. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/results.py +0 -0
  126. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb/utils/xdict.py +0 -0
  127. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb.egg-info/dependency_links.txt +0 -0
  128. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb.egg-info/entry_points.txt +0 -0
  129. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/singlestoredb.egg-info/requires.txt +0 -0
  130. {singlestoredb-1.5.0 → singlestoredb-1.6.1}/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.5.0
3
+ Version: 1.6.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,6 +1,6 @@
1
1
  [metadata]
2
2
  name = singlestoredb
3
- version = 1.5.0
3
+ version = 1.6.1
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.5.0'
16
+ __version__ = '1.6.1'
17
17
 
18
18
  from typing import Any
19
19
 
@@ -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]: