From fbb950ec7e0e7c70090a5cb3af5791d5b8daf2f9 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Sat, 1 Feb 2025 12:44:01 -0600 Subject: [PATCH 1/5] Add docker module for managing singlestoredb-dev-image --- singlestoredb/docker.py | 210 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 singlestoredb/docker.py diff --git a/singlestoredb/docker.py b/singlestoredb/docker.py new file mode 100644 index 000000000..7a301d6ad --- /dev/null +++ b/singlestoredb/docker.py @@ -0,0 +1,210 @@ +#!/usr/bin/env python +"""Utilities for running singlestoredb-dev-image.""" +import atexit +import os +import platform +import secrets +import urllib.parse +from types import TracebackType +from typing import Any +from typing import Dict +from typing import List +from typing import Optional +from typing import Type + +import docker + +from . import connect +from .connection import Connection + +try: + import pymongo + has_pymongo = True +except ImportError: + has_pymongo = False + + +class SingleStoreDB: + + name: Optional[str] + hostname: Optional[str] + root_password: str + license: str + kai_enabled: bool + server_port: int + studio_port: int + data_api_port: int + kai_port: int + data_dir: Optional[str] + logs_dir: Optional[str] + server_dir: Optional[str] + global_vars: Dict[str, Any] + + def __init__( + self, + name: Optional[str] = None, + root_password: Optional[str] = None, + license: Optional[str] = None, + enable_kai: bool = False, + server_port: int = 3306, + studio_port: int = 8080, + data_api_port: int = 9000, + kai_port: int = 27017, + hostname: Optional[str] = None, + data_dir: Optional[str] = None, + logs_dir: Optional[str] = None, + server_dir: Optional[str] = None, + global_vars: Optional[Dict[str, Any]] = None, + init_sql: Optional[str] = None, + image: str = 'ghcr.io/singlestore-labs/singlestoredb-dev:latest', + ): + self.kai_enabled = enable_kai + self.server_port = server_port + self.studio_port = studio_port + self.data_api_port = data_api_port + self.kai_port = kai_port + self.data_dir = data_dir + self.logs_dir = logs_dir + self.server_dir = server_dir + self.hostname = hostname + + # Setup container ports + ports = { + '3306/tcp': server_port, + '8080/tcp': studio_port, + '9000/tcp': data_api_port, + } + + if enable_kai: + ports['27017/tcp'] = kai_port + + # Setup root password + self.root_password = root_password or secrets.token_urlsafe(10) + + # Setup license value + if license is None: + try: + self.license = os.environ['SINGLESTORE_LICENSE'] + except KeyError: + raise ValueError('a SingleStore license must be supplied') + else: + self.license = license + + env = { + 'ROOT_PASSWORD': self.root_password, + 'SINGLESTORE_LICENSE': self.license, + } + + if enable_kai: + env['ENABLE_KAI'] = '1' + + # Construct Docker arguments + kwargs = { + 'environment': env, + 'ports': ports, + 'detach': True, + 'auto_remove': True, + 'remove': True, + } + + if 'macOS' in platform.platform(): + kwargs['platform'] = 'linux/amd64' + + for pname, pvalue in [('name', name), ('hostname', hostname)]: + if pvalue is not None: + kwargs[pname] = pvalue + + # Setup volumes + volumes: Dict[str, Dict[str, str]] = {} + if data_dir: + {data_dir: {'bind': '/data', 'mode': 'rw'}} + if logs_dir: + {logs_dir: {'bind': '/logs', 'mode': 'ro'}} + if server_dir: + {server_dir: {'bind': '/server', 'mode': 'ro'}} + if init_sql: + {init_sql: {'bind': '/init.sql', 'mode': 'ro'}} + if volumes: + kwargs['volumes'] = volumes + + # Setup global vars + self.global_vars = global_vars or {} + for k, v in self.global_vars.items(): + env['SINGLESTORE_SET_GLOBAL_' + k.upper()] = str(v) + + docker_client = docker.from_env() + + self.container = docker_client.containers.run( + image, + environmen=env, + ports=ports, + detach=True, + **kwargs, + ) + + atexit.register(self.stop) + + def logs(self) -> List[str]: + return self.container.logs().encode('utf8').split('\n') + + @property + def connection_url(self) -> str: + root_password = urllib.parse.quote_plus(self.root_password) + return f'singlestoredb://root:{root_password}@' + \ + f'localhost:{self.server_port}' + + @property + def http_connection_url(self) -> str: + root_password = urllib.parse.quote_plus(self.root_password) + return f'singlestoredb+http://root:{root_password}@' + \ + f'localhost:{self.data_api_port}' + + def connect( + self, + use_data_api: bool = False, + **kwargs: Any, + ) -> Connection: + if use_data_api: + return connect(self.http_connection_url, **kwargs) + return connect(self.connection_url, **kwargs) + + @property + def kai_url(self) -> Optional[str]: + if not self.kai_enabled: + return None + root_password = urllib.parse.quote_plus(self.root_password) + return f'mongodb://root:{root_password}@' + \ + f'localhost:{self.kai_port}/?authMechanism=PLAIN&loadBalanced=true' + + def connect_kai(self) -> pymongo.MongoClient: + if not self.kai_enabled: + raise RuntimeError('kai is not enabled') + if not has_pymongo: + raise RuntimeError('pymongo is not installed') + return pymongo.MongoClient(self.kai_url) + + @property + def studio_url(self) -> str: + root_password = urllib.parse.quote_plus(self.root_password) + return f'http://root:{root_password}@localhost:{self.studio_port}' + + def connect_studio(self) -> None: + import webbrowser + webbrowser.open(self.studio_url) + + def __enter__(self) -> None: + pass + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> Optional[bool]: + self.stop() + return None + + def stop(self) -> None: + if self.container is not None: + self.container.stop() + self.container = None From 3331ddb0d4fdcbb08ff85a4766015fcdecc0873e Mon Sep 17 00:00:00 2001 From: Kevin D Smith Date: Sat, 1 Feb 2025 14:52:46 -0600 Subject: [PATCH 2/5] Make server module; add fixes from testing --- singlestoredb/server/__init__.py | 0 singlestoredb/{ => server}/docker.py | 86 +++++++++++++++++++++++----- 2 files changed, 72 insertions(+), 14 deletions(-) create mode 100644 singlestoredb/server/__init__.py rename singlestoredb/{ => server}/docker.py (71%) diff --git a/singlestoredb/server/__init__.py b/singlestoredb/server/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/singlestoredb/docker.py b/singlestoredb/server/docker.py similarity index 71% rename from singlestoredb/docker.py rename to singlestoredb/server/docker.py index 7a301d6ad..b3b13a4b5 100644 --- a/singlestoredb/docker.py +++ b/singlestoredb/server/docker.py @@ -1,9 +1,12 @@ #!/usr/bin/env python """Utilities for running singlestoredb-dev-image.""" +from __future__ import annotations + import atexit import os import platform import secrets +import time import urllib.parse from types import TracebackType from typing import Any @@ -14,8 +17,8 @@ import docker -from . import connect -from .connection import Connection +from .. import connect +from ..connection import Connection try: import pymongo @@ -132,20 +135,38 @@ def __init__( for k, v in self.global_vars.items(): env['SINGLESTORE_SET_GLOBAL_' + k.upper()] = str(v) + self._saved_server_urls: Dict[str, Optional[str]] = {} + docker_client = docker.from_env() + self.container = docker_client.containers.run(image, **kwargs) + atexit.register(self.stop) - self.container = docker_client.containers.run( - image, - environmen=env, - ports=ports, - detach=True, - **kwargs, - ) + if not self._wait_on_ready(): + raise RuntimeError('server did not come up properly') - atexit.register(self.stop) + self._set_server_urls() + + def _set_server_urls(self) -> None: + self._saved_server_urls['DATABASE_URL'] = os.environ.get('DATABASE_URL') + os.environ['DATABASE_URL'] = self.connection_url + + def _restore_server_urls(self) -> None: + for k, v in self._saved_server_urls.items(): + if v is None: + del os.environ[k] + else: + os.environ[k] = v + + def _wait_on_ready(self) -> bool: + for i in range(20): + for line in self.logs(): + if 'INFO: ' in line: + return True + time.sleep(3) + return False def logs(self) -> List[str]: - return self.container.logs().encode('utf8').split('\n') + return self.container.logs().decode('utf8').split('\n') @property def connection_url(self) -> str: @@ -176,7 +197,7 @@ def kai_url(self) -> Optional[str]: return f'mongodb://root:{root_password}@' + \ f'localhost:{self.kai_port}/?authMechanism=PLAIN&loadBalanced=true' - def connect_kai(self) -> pymongo.MongoClient: + def connect_kai(self) -> 'pymongo.MongoClient': if not self.kai_enabled: raise RuntimeError('kai is not enabled') if not has_pymongo: @@ -192,8 +213,8 @@ def connect_studio(self) -> None: import webbrowser webbrowser.open(self.studio_url) - def __enter__(self) -> None: - pass + def __enter__(self) -> SingleStoreDB: + return self def __exit__( self, @@ -206,5 +227,42 @@ def __exit__( def stop(self) -> None: if self.container is not None: + self._restore_server_urls() self.container.stop() self.container = None + + +def start( + name: Optional[str] = None, + root_password: Optional[str] = None, + license: Optional[str] = None, + enable_kai: bool = False, + server_port: int = 3306, + studio_port: int = 8080, + data_api_port: int = 9000, + kai_port: int = 27017, + hostname: Optional[str] = None, + data_dir: Optional[str] = None, + logs_dir: Optional[str] = None, + server_dir: Optional[str] = None, + global_vars: Optional[Dict[str, Any]] = None, + init_sql: Optional[str] = None, + image: str = 'ghcr.io/singlestore-labs/singlestoredb-dev:latest', +) -> SingleStoreDB: + return SingleStoreDB( + name=name, + root_password=root_password, + license=license, + enable_kai=enable_kai, + server_port=server_port, + studio_port=studio_port, + data_api_port=data_api_port, + kai_port=kai_port, + hostname=hostname, + data_dir=data_dir, + logs_dir=logs_dir, + server_dir=server_dir, + global_vars=global_vars, + init_sql=init_sql, + image=image, + ) From 205b4075131fecfcca6d693e2a481d0d58466b0c Mon Sep 17 00:00:00 2001 From: Kevin D Smith Date: Sat, 1 Feb 2025 18:12:10 -0600 Subject: [PATCH 3/5] Make ports automatic --- singlestoredb/server/docker.py | 74 +++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/singlestoredb/server/docker.py b/singlestoredb/server/docker.py index b3b13a4b5..8a7853450 100644 --- a/singlestoredb/server/docker.py +++ b/singlestoredb/server/docker.py @@ -6,8 +6,10 @@ import os import platform import secrets +import socket import time import urllib.parse +from contextlib import closing from types import TracebackType from typing import Any from typing import Dict @@ -26,22 +28,20 @@ except ImportError: has_pymongo = False +DEFAULT_IMAGE = 'ghcr.io/singlestore-labs/singlestoredb-dev:latest' + class SingleStoreDB: - name: Optional[str] - hostname: Optional[str] root_password: str - license: str kai_enabled: bool server_port: int studio_port: int data_api_port: int - kai_port: int + kai_port: Optional[int] data_dir: Optional[str] logs_dir: Optional[str] server_dir: Optional[str] - global_vars: Dict[str, Any] def __init__( self, @@ -49,37 +49,37 @@ def __init__( root_password: Optional[str] = None, license: Optional[str] = None, enable_kai: bool = False, - server_port: int = 3306, - studio_port: int = 8080, - data_api_port: int = 9000, - kai_port: int = 27017, + server_port: Optional[int] = None, + studio_port: Optional[int] = None, + data_api_port: Optional[int] = None, + kai_port: Optional[int] = None, hostname: Optional[str] = None, data_dir: Optional[str] = None, logs_dir: Optional[str] = None, server_dir: Optional[str] = None, global_vars: Optional[Dict[str, Any]] = None, init_sql: Optional[str] = None, - image: str = 'ghcr.io/singlestore-labs/singlestoredb-dev:latest', + image: str = DEFAULT_IMAGE, ): self.kai_enabled = enable_kai - self.server_port = server_port - self.studio_port = studio_port - self.data_api_port = data_api_port - self.kai_port = kai_port + self.kai_port = None + self.server_port = server_port or self._get_available_port() + self.studio_port = studio_port or self._get_available_port() + self.data_api_port = data_api_port or self._get_available_port() self.data_dir = data_dir self.logs_dir = logs_dir self.server_dir = server_dir - self.hostname = hostname # Setup container ports ports = { - '3306/tcp': server_port, - '8080/tcp': studio_port, - '9000/tcp': data_api_port, + '3306/tcp': self.server_port, + '8080/tcp': self.studio_port, + '9000/tcp': self.data_api_port, } if enable_kai: - ports['27017/tcp'] = kai_port + self.kai_port = kai_port or self._get_available_port() + ports['27017/tcp'] = self.kai_port # Setup root password self.root_password = root_password or secrets.token_urlsafe(10) @@ -87,15 +87,13 @@ def __init__( # Setup license value if license is None: try: - self.license = os.environ['SINGLESTORE_LICENSE'] + license = os.environ['SINGLESTORE_LICENSE'] except KeyError: raise ValueError('a SingleStore license must be supplied') - else: - self.license = license env = { 'ROOT_PASSWORD': self.root_password, - 'SINGLESTORE_LICENSE': self.license, + 'SINGLESTORE_LICENSE': license, } if enable_kai: @@ -131,8 +129,7 @@ def __init__( kwargs['volumes'] = volumes # Setup global vars - self.global_vars = global_vars or {} - for k, v in self.global_vars.items(): + for k, v in (global_vars or {}).items(): env['SINGLESTORE_SET_GLOBAL_' + k.upper()] = str(v) self._saved_server_urls: Dict[str, Optional[str]] = {} @@ -146,6 +143,12 @@ def __init__( self._set_server_urls() + def _get_available_port(self) -> int: + with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: + s.bind(('', 0)) + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + return s.getsockname()[1] + def _set_server_urls(self) -> None: self._saved_server_urls['DATABASE_URL'] = os.environ.get('DATABASE_URL') os.environ['DATABASE_URL'] = self.connection_url @@ -206,12 +209,16 @@ def connect_kai(self) -> 'pymongo.MongoClient': @property def studio_url(self) -> str: - root_password = urllib.parse.quote_plus(self.root_password) - return f'http://root:{root_password}@localhost:{self.studio_port}' + return f'http://localhost:{self.studio_port}' def connect_studio(self) -> None: import webbrowser - webbrowser.open(self.studio_url) + + if platform.platform().lower().startswith('macos'): + chrome_path = r'open -a /Applications/Google\ Chrome.app %s' + webbrowser.get(chrome_path).open(self.studio_url, new=2) + else: + webbrowser.open(self.studio_url, new=2) def __enter__(self) -> SingleStoreDB: return self @@ -237,18 +244,19 @@ def start( root_password: Optional[str] = None, license: Optional[str] = None, enable_kai: bool = False, - server_port: int = 3306, - studio_port: int = 8080, - data_api_port: int = 9000, - kai_port: int = 27017, + server_port: Optional[int] = None, + studio_port: Optional[int] = None, + data_api_port: Optional[int] = None, + kai_port: Optional[int] = None, hostname: Optional[str] = None, data_dir: Optional[str] = None, logs_dir: Optional[str] = None, server_dir: Optional[str] = None, global_vars: Optional[Dict[str, Any]] = None, init_sql: Optional[str] = None, - image: str = 'ghcr.io/singlestore-labs/singlestoredb-dev:latest', + image: str = DEFAULT_IMAGE, ) -> SingleStoreDB: + """Start a SingleStoreDB server using Docker.""" return SingleStoreDB( name=name, root_password=root_password, From d5295c58f3f602b175d80b5e9839495f128c4e1d Mon Sep 17 00:00:00 2001 From: Kevin D Smith Date: Sun, 2 Feb 2025 20:16:27 -0600 Subject: [PATCH 4/5] Fix volumes; add database name --- singlestoredb/server/docker.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/singlestoredb/server/docker.py b/singlestoredb/server/docker.py index 8a7853450..68b7fec84 100644 --- a/singlestoredb/server/docker.py +++ b/singlestoredb/server/docker.py @@ -46,6 +46,7 @@ class SingleStoreDB: def __init__( self, name: Optional[str] = None, + *, root_password: Optional[str] = None, license: Optional[str] = None, enable_kai: bool = False, @@ -60,6 +61,7 @@ def __init__( global_vars: Optional[Dict[str, Any]] = None, init_sql: Optional[str] = None, image: str = DEFAULT_IMAGE, + database: Optional[str] = None, ): self.kai_enabled = enable_kai self.kai_port = None @@ -118,13 +120,13 @@ def __init__( # Setup volumes volumes: Dict[str, Dict[str, str]] = {} if data_dir: - {data_dir: {'bind': '/data', 'mode': 'rw'}} + volumes[data_dir] = {'bind': '/data', 'mode': 'rw'} if logs_dir: - {logs_dir: {'bind': '/logs', 'mode': 'ro'}} + volumes[logs_dir] = {'bind': '/logs', 'mode': 'ro'} if server_dir: - {server_dir: {'bind': '/server', 'mode': 'ro'}} + volumes[server_dir] = {'bind': '/server', 'mode': 'ro'} if init_sql: - {init_sql: {'bind': '/init.sql', 'mode': 'ro'}} + volumes[os.path.abspath(init_sql)] = {'bind': '/init.sql', 'mode': 'ro'} if volumes: kwargs['volumes'] = volumes @@ -141,8 +143,15 @@ def __init__( if not self._wait_on_ready(): raise RuntimeError('server did not come up properly') + self._database = database self._set_server_urls() + def __str__(self) -> str: + return f"SingleStoreDB('{self.connection_url}')" + + def __repr__(self) -> str: + return str(self) + def _get_available_port(self) -> int: with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: s.bind(('', 0)) @@ -152,6 +161,8 @@ def _get_available_port(self) -> int: def _set_server_urls(self) -> None: self._saved_server_urls['DATABASE_URL'] = os.environ.get('DATABASE_URL') os.environ['DATABASE_URL'] = self.connection_url + self._saved_server_urls['SINGLESTOREDB_URL'] = os.environ.get('SINGLESTOREDB_URL') + os.environ['SINGLESTOREDB_URL'] = self.connection_url def _restore_server_urls(self) -> None: for k, v in self._saved_server_urls.items(): @@ -173,15 +184,17 @@ def logs(self) -> List[str]: @property def connection_url(self) -> str: + dbname = f'/{self._database}' if self._database else '' root_password = urllib.parse.quote_plus(self.root_password) return f'singlestoredb://root:{root_password}@' + \ - f'localhost:{self.server_port}' + f'localhost:{self.server_port}{dbname}' @property def http_connection_url(self) -> str: + dbname = f'/{self._database}' if self._database else '' root_password = urllib.parse.quote_plus(self.root_password) return f'singlestoredb+http://root:{root_password}@' + \ - f'localhost:{self.data_api_port}' + f'localhost:{self.data_api_port}{dbname}' def connect( self, @@ -213,7 +226,6 @@ def studio_url(self) -> str: def connect_studio(self) -> None: import webbrowser - if platform.platform().lower().startswith('macos'): chrome_path = r'open -a /Applications/Google\ Chrome.app %s' webbrowser.get(chrome_path).open(self.studio_url, new=2) @@ -255,6 +267,7 @@ def start( global_vars: Optional[Dict[str, Any]] = None, init_sql: Optional[str] = None, image: str = DEFAULT_IMAGE, + database: Optional[str] = None, ) -> SingleStoreDB: """Start a SingleStoreDB server using Docker.""" return SingleStoreDB( @@ -273,4 +286,5 @@ def start( global_vars=global_vars, init_sql=init_sql, image=image, + database=database, ) From 8ef5bc3f18ae7ed7b3421b71c3c3242c1d48d02c Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Thu, 13 Feb 2025 14:44:31 -0600 Subject: [PATCH 5/5] Add docker docs --- docs/_sources/api.rst.txt | 44 ++++ docs/api.html | 87 ++++++++ .../generated/singlestoredb.auth.get_jwt.html | 1 + docs/generated/singlestoredb.connect.html | 3 +- ...redb.connection.Connection.autocommit.html | 1 + ...lestoredb.connection.Connection.close.html | 1 + ...estoredb.connection.Connection.commit.html | 1 + ...estoredb.connection.Connection.cursor.html | 1 + ...onnection.Connection.disable_data_api.html | 1 + ...connection.Connection.enable_data_api.html | 1 + .../singlestoredb.connection.Connection.html | 1 + ...db.connection.Connection.is_connected.html | 1 + ...toredb.connection.Connection.rollback.html | 1 + ...glestoredb.connection.Cursor.callproc.html | 1 + ...singlestoredb.connection.Cursor.close.html | 1 + ...nglestoredb.connection.Cursor.execute.html | 1 + ...storedb.connection.Cursor.executemany.html | 1 + ...glestoredb.connection.Cursor.fetchall.html | 1 + ...lestoredb.connection.Cursor.fetchmany.html | 1 + ...glestoredb.connection.Cursor.fetchone.html | 1 + .../singlestoredb.connection.Cursor.html | 1 + ...toredb.connection.Cursor.is_connected.html | 1 + .../singlestoredb.connection.Cursor.next.html | 1 + ...nglestoredb.connection.Cursor.nextset.html | 1 + ...inglestoredb.connection.Cursor.scroll.html | 1 + ...oredb.connection.Cursor.setinputsizes.html | 1 + ...oredb.connection.Cursor.setoutputsize.html | 1 + ...db.connection.ShowAccessor.aggregates.html | 1 + ...oredb.connection.ShowAccessor.columns.html | 1 + ...nection.ShowAccessor.create_aggregate.html | 1 + ...nnection.ShowAccessor.create_function.html | 1 + ...nnection.ShowAccessor.create_pipeline.html | 1 + ....connection.ShowAccessor.create_table.html | 1 + ...b.connection.ShowAccessor.create_view.html | 1 + ...nnection.ShowAccessor.database_status.html | 1 + ...edb.connection.ShowAccessor.databases.html | 1 + ...toredb.connection.ShowAccessor.errors.html | 1 + ...edb.connection.ShowAccessor.functions.html | 1 + ...connection.ShowAccessor.global_status.html | 1 + ...oredb.connection.ShowAccessor.indexes.html | 1 + ...db.connection.ShowAccessor.partitions.html | 1 + ...edb.connection.ShowAccessor.pipelines.html | 1 + ...estoredb.connection.ShowAccessor.plan.html | 1 + ...edb.connection.ShowAccessor.plancache.html | 1 + ...db.connection.ShowAccessor.procedures.html | 1 + ...b.connection.ShowAccessor.processlist.html | 1 + ....connection.ShowAccessor.reproduction.html | 1 + ...oredb.connection.ShowAccessor.schemas.html | 1 + ...onnection.ShowAccessor.session_status.html | 1 + ...toredb.connection.ShowAccessor.status.html | 1 + ....connection.ShowAccessor.table_status.html | 1 + ...toredb.connection.ShowAccessor.tables.html | 1 + ...redb.connection.ShowAccessor.warnings.html | 1 + .../singlestoredb.connection.ShowResult.html | 1 + .../singlestoredb.create_engine.html | 1 + .../singlestoredb.describe_option.html | 1 + docs/generated/singlestoredb.get_option.html | 5 +- .../singlestoredb.manage_workspaces.html | 1 + ...inglestoredb.management.region.Region.html | 1 + ...agement.workspace.Stage.download_file.html | 1 + ...ement.workspace.Stage.download_folder.html | 1 + ...edb.management.workspace.Stage.exists.html | 1 + ...glestoredb.management.workspace.Stage.html | 1 + ...oredb.management.workspace.Stage.info.html | 1 + ...edb.management.workspace.Stage.is_dir.html | 1 + ...db.management.workspace.Stage.is_file.html | 1 + ...db.management.workspace.Stage.listdir.html | 1 + ...redb.management.workspace.Stage.mkdir.html | 1 + ...oredb.management.workspace.Stage.open.html | 1 + ...edb.management.workspace.Stage.remove.html | 1 + ...management.workspace.Stage.removedirs.html | 1 + ...edb.management.workspace.Stage.rename.html | 1 + ...redb.management.workspace.Stage.rmdir.html | 1 + ...anagement.workspace.Stage.upload_file.html | 1 + ...agement.workspace.Stage.upload_folder.html | 1 + ...agement.workspace.StageObject.abspath.html | 1 + ...gement.workspace.StageObject.basename.html | 1 + ...agement.workspace.StageObject.dirname.html | 1 + ...gement.workspace.StageObject.download.html | 1 + ...nagement.workspace.StageObject.exists.html | 1 + ...gement.workspace.StageObject.getctime.html | 1 + ...gement.workspace.StageObject.getmtime.html | 1 + ...redb.management.workspace.StageObject.html | 1 + ...nagement.workspace.StageObject.is_dir.html | 1 + ...agement.workspace.StageObject.is_file.html | 1 + ...management.workspace.StageObject.open.html | 1 + ...nagement.workspace.StageObject.remove.html | 1 + ...ment.workspace.StageObject.removedirs.html | 1 + ...nagement.workspace.StageObject.rename.html | 1 + ...anagement.workspace.StageObject.rmdir.html | 1 + ...anagement.workspace.Workspace.connect.html | 1 + ...toredb.management.workspace.Workspace.html | 1 + ...anagement.workspace.Workspace.refresh.html | 1 + ...agement.workspace.Workspace.terminate.html | 1 + ...management.workspace.Workspace.update.html | 1 + ...space.WorkspaceGroup.create_workspace.html | 1 + ...b.management.workspace.WorkspaceGroup.html | 1 + ...ment.workspace.WorkspaceGroup.refresh.html | 1 + ...gement.workspace.WorkspaceGroup.stage.html | 1 + ...nt.workspace.WorkspaceGroup.terminate.html | 1 + ...ement.workspace.WorkspaceGroup.update.html | 1 + ...t.workspace.WorkspaceGroup.workspaces.html | 1 + ...ace.WorkspaceManager.create_workspace.html | 1 + ...rkspaceManager.create_workspace_group.html | 1 + ...kspace.WorkspaceManager.get_workspace.html | 1 + ....WorkspaceManager.get_workspace_group.html | 1 + ...management.workspace.WorkspaceManager.html | 1 + ...rkspace.WorkspaceManager.organization.html | 1 + ...nt.workspace.WorkspaceManager.regions.html | 1 + ...ace.WorkspaceManager.workspace_groups.html | 1 + .../singlestoredb.notebook.organization.html | 1 + .../singlestoredb.notebook.secrets.html | 1 + .../singlestoredb.notebook.stage.html | 1 + .../singlestoredb.notebook.workspace.html | 5 +- ...inglestoredb.notebook.workspace_group.html | 1 + docs/generated/singlestoredb.set_option.html | 1 + docs/genindex.html | 44 +++- docs/index.html | 15 ++ docs/objects.inv | Bin 2848 -> 3093 bytes docs/searchindex.js | 2 +- docs/src/api.rst | 63 ++++++ singlestoredb/server/docker.py | 193 ++++++++++++++++-- 122 files changed, 550 insertions(+), 22 deletions(-) diff --git a/docs/_sources/api.rst.txt b/docs/_sources/api.rst.txt index f006b72fb..fbbe95cb0 100644 --- a/docs/_sources/api.rst.txt +++ b/docs/_sources/api.rst.txt @@ -226,6 +226,50 @@ calls to the currently selected portal services. workspace_group stage workspace +Server Tools +------------ +If you have Docker installed on your machine, you can use the Docker interface +included with the Python SDK to start a SingleStoreDB server in Docker. This +allows you to open interactive shells, SQL Studio, and also use the `%sql` +magic commands from Jupysql with a SingleStoreDB server running in a container. +An example of starting SingleStoreDB in Docker is shown below. +.. sourcecode:: python + from singlestoredb.server import docker + s2db = docker.start() + with s2db.connect() as conn: + with conn.cursor() as cur: + cur.execute('SHOW DATABASES') + for line in cur: + print(line) + s2db.stop() +It is possible to use the server instance as a context manager as well. +This will automatically shut down the container after exiting the ``with`` +block. +.. sourcecode:: python + from singlestoredb.server import docker + with docker.start() as s2db: + with s2db.connect() as conn: + with conn.cursor() as cur: + cur.execute('SHOW DATABASES') + for line in cur: + print(line) +If you do not explicitly shut down the container, it will get shut +down when the Python process exits. +.. currentmodule:: singlestoredb.server.docker +.. autosummary:: + :toctree: generated/ + start + SingleStoreDB.logs + SingleStoreDB.connect + SingleStoreDB.connect_kai + SingleStoreDB.connection_url + SingleStoreDB.http_connection_url + SingleStoreDB.kai_url + SingleStoreDB.studio_url + SingleStoreDB.open_studio + SingleStoreDB.open_shell + SingleStoreDB.open_mongosh + SingleStoreDB.stop Configuration ------------- The following functions are used to get and set package configuration settings. diff --git a/docs/api.html b/docs/api.html index e7611b2b6..562815706 100644 --- a/docs/api.html +++ b/docs/api.html @@ -191,6 +191,21 @@
  • singlestoredb.notebook.workspace
  • +
  • Server Tools +
  • Configuration
    • singlestoredb.get_option
    • singlestoredb.set_option
    • @@ -699,6 +714,78 @@

      Notebook Tools +

      Server Tools

      +

      If you have Docker installed on your machine, you can use the Docker interface +included with the Python SDK to start a SingleStoreDB server in Docker. This +allows you to open interactive shells, SQL Studio, and also use the %sql +magic commands from Jupysql with a SingleStoreDB server running in a container.

      +

      An example of starting SingleStoreDB in Docker is shown below.

      +
      from singlestoredb.server import docker
      +s2db = docker.start()
      +with s2db.connect() as conn:
      +    with conn.cursor() as cur:
      +        cur.execute('SHOW DATABASES')
      +        for line in cur:
      +            print(line)
      +s2db.stop()
      +
      +
      +

      It is possible to use the server instance as a context manager as well. +This will automatically shut down the container after exiting the with +block.

      +
      from singlestoredb.server import docker
      +with docker.start() as s2db:
      +    with s2db.connect() as conn:
      +        with conn.cursor() as cur:
      +            cur.execute('SHOW DATABASES')
      +            for line in cur:
      +                print(line)
      +
      +
      +

      If you do not explicitly shut down the container, it will get shut +down when the Python process exits.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      start([name, root_password, license, ...])

      Manager for SingleStoreDB server running in Docker.

      SingleStoreDB.logs()

      SingleStoreDB.connect([use_data_api])

      Connect to the SingleStoreDB server.

      SingleStoreDB.connect_kai()

      Connect to the Kai (MongoDB) server.

      SingleStoreDB.connection_url

      Connection URL for the SingleStoreDB server.

      SingleStoreDB.http_connection_url

      HTTP Connection URL for the SingleStoreDB server.

      SingleStoreDB.kai_url

      Connection URL for the Kai (MongoDB) server.

      SingleStoreDB.studio_url

      URL for the SingleStoreDB Studio.

      SingleStoreDB.open_studio()

      Open the SingleStoreDB Studio in a web browser.

      SingleStoreDB.open_shell()

      Open a shell in the SingleStoreDB server.

      SingleStoreDB.open_mongosh()

      Open a mongosh in the SingleStoreDB server.

      SingleStoreDB.stop()

      Stop the SingleStoreDB server.

      +

      Configuration

      The following functions are used to get and set package configuration settings. diff --git a/docs/generated/singlestoredb.auth.get_jwt.html b/docs/generated/singlestoredb.auth.get_jwt.html index 0a5fb7be7..e74b4024b 100644 --- a/docs/generated/singlestoredb.auth.get_jwt.html +++ b/docs/generated/singlestoredb.auth.get_jwt.html @@ -54,6 +54,7 @@

    • Management API
    • Notebook Tools
    • +
    • Server Tools
    • Configuration
  • diff --git a/docs/generated/singlestoredb.connect.html b/docs/generated/singlestoredb.connect.html index be46a66bc..a8c708ed3 100644 --- a/docs/generated/singlestoredb.connect.html +++ b/docs/generated/singlestoredb.connect.html @@ -57,6 +57,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • @@ -88,7 +89,7 @@

    singlestoredb.connect

    -singlestoredb.connect(host: str | None = None, user: str | None = None, password: str | None = None, port: int | None = None, database: str | None = None, driver: str | None = None, pure_python: bool | None = None, local_infile: bool | None = None, charset: str | None = None, ssl_key: str | None = None, ssl_cert: str | None = None, ssl_ca: str | None = None, ssl_disabled: bool | None = None, ssl_cipher: str | None = None, ssl_verify_cert: bool | None = None, tls_sni_servername: str | None = None, ssl_verify_identity: bool | None = None, conv: Dict[int, Callable[[...], Any]] | None = None, credential_type: str | None = None, autocommit: bool | None = None, results_type: str | None = None, buffered: bool | None = None, results_format: str | None = None, program_name: str | None = None, conn_attrs: Dict[str, str] | None = None, multi_statements: bool | None = None, client_found_rows: bool | None = None, connect_timeout: int | None = None, nan_as_null: bool | None = None, inf_as_null: bool | None = None, encoding_errors: str | None = None, track_env: bool | None = None, enable_extended_data_types: bool | None = None, vector_data_format: str | None = None) Connection
    +singlestoredb.connect(host: str | None = None, user: str | None = None, password: str | None = None, port: int | None = None, database: str | None = None, driver: str | None = None, pure_python: bool | None = None, local_infile: bool | None = None, charset: str | None = None, ssl_key: str | None = None, ssl_cert: str | None = None, ssl_ca: str | None = None, ssl_disabled: bool | None = None, ssl_cipher: str | None = None, ssl_verify_cert: bool | None = None, tls_sni_servername: str | None = None, ssl_verify_identity: bool | None = None, conv: Dict[int, Callable[[...], Any]] | None = None, credential_type: str | None = None, autocommit: bool | None = None, results_type: str | None = None, buffered: bool | None = None, results_format: str | None = None, program_name: str | None = None, conn_attrs: Dict[str, str] | None = None, multi_statements: bool | None = None, client_found_rows: bool | None = None, connect_timeout: int | None = None, nan_as_null: bool | None = None, inf_as_null: bool | None = None, encoding_errors: str | None = None, track_env: bool | None = None, enable_extended_data_types: bool | None = None, vector_data_format: str | None = None, parse_json: bool | None = None) Connection

    Return a SingleStoreDB connection.

    Parameters:
    diff --git a/docs/generated/singlestoredb.connection.Connection.autocommit.html b/docs/generated/singlestoredb.connection.Connection.autocommit.html index 2dc3085bd..0b9ff68d0 100644 --- a/docs/generated/singlestoredb.connection.Connection.autocommit.html +++ b/docs/generated/singlestoredb.connection.Connection.autocommit.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Connection.close.html b/docs/generated/singlestoredb.connection.Connection.close.html index 302afc3a2..ba6536cd1 100644 --- a/docs/generated/singlestoredb.connection.Connection.close.html +++ b/docs/generated/singlestoredb.connection.Connection.close.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Connection.commit.html b/docs/generated/singlestoredb.connection.Connection.commit.html index 5f1817d93..89adf901a 100644 --- a/docs/generated/singlestoredb.connection.Connection.commit.html +++ b/docs/generated/singlestoredb.connection.Connection.commit.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Connection.cursor.html b/docs/generated/singlestoredb.connection.Connection.cursor.html index 173393f49..4aac03263 100644 --- a/docs/generated/singlestoredb.connection.Connection.cursor.html +++ b/docs/generated/singlestoredb.connection.Connection.cursor.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Connection.disable_data_api.html b/docs/generated/singlestoredb.connection.Connection.disable_data_api.html index 549710b9a..557e6e22a 100644 --- a/docs/generated/singlestoredb.connection.Connection.disable_data_api.html +++ b/docs/generated/singlestoredb.connection.Connection.disable_data_api.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Connection.enable_data_api.html b/docs/generated/singlestoredb.connection.Connection.enable_data_api.html index 62ef2b021..9d595a25b 100644 --- a/docs/generated/singlestoredb.connection.Connection.enable_data_api.html +++ b/docs/generated/singlestoredb.connection.Connection.enable_data_api.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Connection.html b/docs/generated/singlestoredb.connection.Connection.html index e53c5325b..523397fde 100644 --- a/docs/generated/singlestoredb.connection.Connection.html +++ b/docs/generated/singlestoredb.connection.Connection.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Connection.is_connected.html b/docs/generated/singlestoredb.connection.Connection.is_connected.html index ee5bf0e77..53eb29ded 100644 --- a/docs/generated/singlestoredb.connection.Connection.is_connected.html +++ b/docs/generated/singlestoredb.connection.Connection.is_connected.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Connection.rollback.html b/docs/generated/singlestoredb.connection.Connection.rollback.html index 94c233811..e5540e371 100644 --- a/docs/generated/singlestoredb.connection.Connection.rollback.html +++ b/docs/generated/singlestoredb.connection.Connection.rollback.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.callproc.html b/docs/generated/singlestoredb.connection.Cursor.callproc.html index ac1f9fd04..9a373f42d 100644 --- a/docs/generated/singlestoredb.connection.Cursor.callproc.html +++ b/docs/generated/singlestoredb.connection.Cursor.callproc.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.close.html b/docs/generated/singlestoredb.connection.Cursor.close.html index 9d6607bac..0adf69ce8 100644 --- a/docs/generated/singlestoredb.connection.Cursor.close.html +++ b/docs/generated/singlestoredb.connection.Cursor.close.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.execute.html b/docs/generated/singlestoredb.connection.Cursor.execute.html index b11449bb2..511424ccc 100644 --- a/docs/generated/singlestoredb.connection.Cursor.execute.html +++ b/docs/generated/singlestoredb.connection.Cursor.execute.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.executemany.html b/docs/generated/singlestoredb.connection.Cursor.executemany.html index 8c6f21071..36eb5346b 100644 --- a/docs/generated/singlestoredb.connection.Cursor.executemany.html +++ b/docs/generated/singlestoredb.connection.Cursor.executemany.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.fetchall.html b/docs/generated/singlestoredb.connection.Cursor.fetchall.html index 4aba8a681..b16303591 100644 --- a/docs/generated/singlestoredb.connection.Cursor.fetchall.html +++ b/docs/generated/singlestoredb.connection.Cursor.fetchall.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.fetchmany.html b/docs/generated/singlestoredb.connection.Cursor.fetchmany.html index 7c842a199..b55d43afc 100644 --- a/docs/generated/singlestoredb.connection.Cursor.fetchmany.html +++ b/docs/generated/singlestoredb.connection.Cursor.fetchmany.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.fetchone.html b/docs/generated/singlestoredb.connection.Cursor.fetchone.html index dcbb91e76..58634c55a 100644 --- a/docs/generated/singlestoredb.connection.Cursor.fetchone.html +++ b/docs/generated/singlestoredb.connection.Cursor.fetchone.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.html b/docs/generated/singlestoredb.connection.Cursor.html index 315046412..e4154ec61 100644 --- a/docs/generated/singlestoredb.connection.Cursor.html +++ b/docs/generated/singlestoredb.connection.Cursor.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.is_connected.html b/docs/generated/singlestoredb.connection.Cursor.is_connected.html index d49a5c490..bb22f6fae 100644 --- a/docs/generated/singlestoredb.connection.Cursor.is_connected.html +++ b/docs/generated/singlestoredb.connection.Cursor.is_connected.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.next.html b/docs/generated/singlestoredb.connection.Cursor.next.html index fd41c3014..efbb0326e 100644 --- a/docs/generated/singlestoredb.connection.Cursor.next.html +++ b/docs/generated/singlestoredb.connection.Cursor.next.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.nextset.html b/docs/generated/singlestoredb.connection.Cursor.nextset.html index 57312d8d7..305367006 100644 --- a/docs/generated/singlestoredb.connection.Cursor.nextset.html +++ b/docs/generated/singlestoredb.connection.Cursor.nextset.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.scroll.html b/docs/generated/singlestoredb.connection.Cursor.scroll.html index 49a713d59..251700d6f 100644 --- a/docs/generated/singlestoredb.connection.Cursor.scroll.html +++ b/docs/generated/singlestoredb.connection.Cursor.scroll.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.setinputsizes.html b/docs/generated/singlestoredb.connection.Cursor.setinputsizes.html index 6209d84b4..3b57ff886 100644 --- a/docs/generated/singlestoredb.connection.Cursor.setinputsizes.html +++ b/docs/generated/singlestoredb.connection.Cursor.setinputsizes.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.Cursor.setoutputsize.html b/docs/generated/singlestoredb.connection.Cursor.setoutputsize.html index 2787c5fed..8c2b04497 100644 --- a/docs/generated/singlestoredb.connection.Cursor.setoutputsize.html +++ b/docs/generated/singlestoredb.connection.Cursor.setoutputsize.html @@ -70,6 +70,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.aggregates.html b/docs/generated/singlestoredb.connection.ShowAccessor.aggregates.html index 16a2b4a0d..d7eca5d83 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.aggregates.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.aggregates.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.columns.html b/docs/generated/singlestoredb.connection.ShowAccessor.columns.html index 53887582e..eb875f8c2 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.columns.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.columns.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.create_aggregate.html b/docs/generated/singlestoredb.connection.ShowAccessor.create_aggregate.html index b95be2f47..30033e0b1 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.create_aggregate.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.create_aggregate.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.create_function.html b/docs/generated/singlestoredb.connection.ShowAccessor.create_function.html index 44dd440c8..ee0e98ee4 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.create_function.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.create_function.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.create_pipeline.html b/docs/generated/singlestoredb.connection.ShowAccessor.create_pipeline.html index cabc1ecf3..001e1a87c 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.create_pipeline.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.create_pipeline.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.create_table.html b/docs/generated/singlestoredb.connection.ShowAccessor.create_table.html index c6bfe291e..2d10913c3 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.create_table.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.create_table.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.create_view.html b/docs/generated/singlestoredb.connection.ShowAccessor.create_view.html index 0867adcb2..7b96d4212 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.create_view.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.create_view.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.database_status.html b/docs/generated/singlestoredb.connection.ShowAccessor.database_status.html index 28fea0e5c..041cc236e 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.database_status.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.database_status.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.databases.html b/docs/generated/singlestoredb.connection.ShowAccessor.databases.html index 4781b2afd..019e0c2da 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.databases.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.databases.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.errors.html b/docs/generated/singlestoredb.connection.ShowAccessor.errors.html index b06786923..5b60ef604 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.errors.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.errors.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.functions.html b/docs/generated/singlestoredb.connection.ShowAccessor.functions.html index be0dd3d11..5d00ec849 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.functions.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.functions.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.global_status.html b/docs/generated/singlestoredb.connection.ShowAccessor.global_status.html index 44382eae8..443fcc908 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.global_status.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.global_status.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.indexes.html b/docs/generated/singlestoredb.connection.ShowAccessor.indexes.html index 49815e454..140c7f3c3 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.indexes.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.indexes.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.partitions.html b/docs/generated/singlestoredb.connection.ShowAccessor.partitions.html index ffbbeca34..bce41877a 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.partitions.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.partitions.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.pipelines.html b/docs/generated/singlestoredb.connection.ShowAccessor.pipelines.html index 2ba205cce..300010d4a 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.pipelines.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.pipelines.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.plan.html b/docs/generated/singlestoredb.connection.ShowAccessor.plan.html index 56cc2f295..138b4ea1e 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.plan.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.plan.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.plancache.html b/docs/generated/singlestoredb.connection.ShowAccessor.plancache.html index 3d638b362..b34983284 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.plancache.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.plancache.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.procedures.html b/docs/generated/singlestoredb.connection.ShowAccessor.procedures.html index 43d34c92b..2da3df0ce 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.procedures.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.procedures.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.processlist.html b/docs/generated/singlestoredb.connection.ShowAccessor.processlist.html index 7850fd9cc..4c390bb4a 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.processlist.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.processlist.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.reproduction.html b/docs/generated/singlestoredb.connection.ShowAccessor.reproduction.html index e91b790a5..3baf19d82 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.reproduction.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.reproduction.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.schemas.html b/docs/generated/singlestoredb.connection.ShowAccessor.schemas.html index 698a039cc..bbb156514 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.schemas.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.schemas.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.session_status.html b/docs/generated/singlestoredb.connection.ShowAccessor.session_status.html index 607ccf3e5..367106cbf 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.session_status.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.session_status.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.status.html b/docs/generated/singlestoredb.connection.ShowAccessor.status.html index daa7890b6..f65440e6c 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.status.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.status.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.table_status.html b/docs/generated/singlestoredb.connection.ShowAccessor.table_status.html index 242ffdb54..9759f4302 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.table_status.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.table_status.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.tables.html b/docs/generated/singlestoredb.connection.ShowAccessor.tables.html index 1cacaf6eb..571c598e5 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.tables.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.tables.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowAccessor.warnings.html b/docs/generated/singlestoredb.connection.ShowAccessor.warnings.html index b665828fe..75f1033a9 100644 --- a/docs/generated/singlestoredb.connection.ShowAccessor.warnings.html +++ b/docs/generated/singlestoredb.connection.ShowAccessor.warnings.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.connection.ShowResult.html b/docs/generated/singlestoredb.connection.ShowResult.html index 76400b7bf..8aa0cb0e1 100644 --- a/docs/generated/singlestoredb.connection.ShowResult.html +++ b/docs/generated/singlestoredb.connection.ShowResult.html @@ -92,6 +92,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.create_engine.html b/docs/generated/singlestoredb.create_engine.html index a56c07b46..f13c2202b 100644 --- a/docs/generated/singlestoredb.create_engine.html +++ b/docs/generated/singlestoredb.create_engine.html @@ -57,6 +57,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.describe_option.html b/docs/generated/singlestoredb.describe_option.html index f9249b43e..04947f4ef 100644 --- a/docs/generated/singlestoredb.describe_option.html +++ b/docs/generated/singlestoredb.describe_option.html @@ -48,6 +48,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.region.Region.html b/docs/generated/singlestoredb.management.region.Region.html index c567d68bb..a494b11f7 100644 --- a/docs/generated/singlestoredb.management.region.Region.html +++ b/docs/generated/singlestoredb.management.region.Region.html @@ -60,6 +60,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.download_file.html b/docs/generated/singlestoredb.management.workspace.Stage.download_file.html index be7f540ee..efd5c87f4 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.download_file.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.download_file.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.download_folder.html b/docs/generated/singlestoredb.management.workspace.Stage.download_folder.html index b2d0ff6b9..4328d4390 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.download_folder.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.download_folder.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.exists.html b/docs/generated/singlestoredb.management.workspace.Stage.exists.html index 16543bb56..066fb6747 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.exists.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.exists.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.html b/docs/generated/singlestoredb.management.workspace.Stage.html index 374b1b366..dcdcd3575 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.info.html b/docs/generated/singlestoredb.management.workspace.Stage.info.html index 3a0455214..4af5a9419 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.info.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.info.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.is_dir.html b/docs/generated/singlestoredb.management.workspace.Stage.is_dir.html index 1cf1325e2..ba462a777 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.is_dir.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.is_dir.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.is_file.html b/docs/generated/singlestoredb.management.workspace.Stage.is_file.html index d50802e66..362fa04f8 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.is_file.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.is_file.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.listdir.html b/docs/generated/singlestoredb.management.workspace.Stage.listdir.html index c520b2d27..993d91596 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.listdir.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.listdir.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.mkdir.html b/docs/generated/singlestoredb.management.workspace.Stage.mkdir.html index 75313e392..05a488501 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.mkdir.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.mkdir.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.open.html b/docs/generated/singlestoredb.management.workspace.Stage.open.html index 996fb7ea2..3ad86ce7a 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.open.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.open.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.remove.html b/docs/generated/singlestoredb.management.workspace.Stage.remove.html index d0dd5481a..09be605a4 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.remove.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.remove.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.removedirs.html b/docs/generated/singlestoredb.management.workspace.Stage.removedirs.html index bca46a5d4..eeb397a25 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.removedirs.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.removedirs.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.rename.html b/docs/generated/singlestoredb.management.workspace.Stage.rename.html index e4806f475..46df729fe 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.rename.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.rename.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.rmdir.html b/docs/generated/singlestoredb.management.workspace.Stage.rmdir.html index be553cc67..0f55cfa6e 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.rmdir.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.rmdir.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.upload_file.html b/docs/generated/singlestoredb.management.workspace.Stage.upload_file.html index 74a579482..e70fc99d0 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.upload_file.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.upload_file.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Stage.upload_folder.html b/docs/generated/singlestoredb.management.workspace.Stage.upload_folder.html index 7f4ef189e..406f40fb5 100644 --- a/docs/generated/singlestoredb.management.workspace.Stage.upload_folder.html +++ b/docs/generated/singlestoredb.management.workspace.Stage.upload_folder.html @@ -75,6 +75,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.abspath.html b/docs/generated/singlestoredb.management.workspace.StageObject.abspath.html index 2614a4e0f..50fd9965c 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.abspath.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.abspath.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.basename.html b/docs/generated/singlestoredb.management.workspace.StageObject.basename.html index 5408ba0db..dfa906562 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.basename.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.basename.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.dirname.html b/docs/generated/singlestoredb.management.workspace.StageObject.dirname.html index 29fcef2de..d77bc5271 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.dirname.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.dirname.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.download.html b/docs/generated/singlestoredb.management.workspace.StageObject.download.html index e318e9db6..9c9d8951d 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.download.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.download.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.exists.html b/docs/generated/singlestoredb.management.workspace.StageObject.exists.html index a6e1fea13..ea788a8c8 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.exists.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.exists.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.getctime.html b/docs/generated/singlestoredb.management.workspace.StageObject.getctime.html index b439d66c0..8c046be5f 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.getctime.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.getctime.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.getmtime.html b/docs/generated/singlestoredb.management.workspace.StageObject.getmtime.html index 278027012..4299b5193 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.getmtime.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.getmtime.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.html b/docs/generated/singlestoredb.management.workspace.StageObject.html index 4f89379ad..973037ee8 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.is_dir.html b/docs/generated/singlestoredb.management.workspace.StageObject.is_dir.html index 47907a4a4..111185dc7 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.is_dir.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.is_dir.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.is_file.html b/docs/generated/singlestoredb.management.workspace.StageObject.is_file.html index c4fb79ab1..ddf9a6671 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.is_file.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.is_file.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.open.html b/docs/generated/singlestoredb.management.workspace.StageObject.open.html index a5f8d3b7b..cd966f53e 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.open.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.open.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.remove.html b/docs/generated/singlestoredb.management.workspace.StageObject.remove.html index 0e2a5b56f..679e82b6d 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.remove.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.remove.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.removedirs.html b/docs/generated/singlestoredb.management.workspace.StageObject.removedirs.html index 918abd249..55ad828f9 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.removedirs.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.removedirs.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.rename.html b/docs/generated/singlestoredb.management.workspace.StageObject.rename.html index f379bbf2c..f08b73c09 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.rename.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.rename.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.StageObject.rmdir.html b/docs/generated/singlestoredb.management.workspace.StageObject.rmdir.html index 5b6e0ea09..eb8b386bd 100644 --- a/docs/generated/singlestoredb.management.workspace.StageObject.rmdir.html +++ b/docs/generated/singlestoredb.management.workspace.StageObject.rmdir.html @@ -74,6 +74,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Workspace.connect.html b/docs/generated/singlestoredb.management.workspace.Workspace.connect.html index 9f9c1a4b5..a97c42158 100644 --- a/docs/generated/singlestoredb.management.workspace.Workspace.connect.html +++ b/docs/generated/singlestoredb.management.workspace.Workspace.connect.html @@ -64,6 +64,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Workspace.html b/docs/generated/singlestoredb.management.workspace.Workspace.html index 57c1cafee..4a1e17b39 100644 --- a/docs/generated/singlestoredb.management.workspace.Workspace.html +++ b/docs/generated/singlestoredb.management.workspace.Workspace.html @@ -64,6 +64,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Workspace.refresh.html b/docs/generated/singlestoredb.management.workspace.Workspace.refresh.html index 662207185..50f4c2834 100644 --- a/docs/generated/singlestoredb.management.workspace.Workspace.refresh.html +++ b/docs/generated/singlestoredb.management.workspace.Workspace.refresh.html @@ -64,6 +64,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Workspace.terminate.html b/docs/generated/singlestoredb.management.workspace.Workspace.terminate.html index abbb52b00..e48dc9291 100644 --- a/docs/generated/singlestoredb.management.workspace.Workspace.terminate.html +++ b/docs/generated/singlestoredb.management.workspace.Workspace.terminate.html @@ -64,6 +64,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.Workspace.update.html b/docs/generated/singlestoredb.management.workspace.Workspace.update.html index 292e03b36..795159ba6 100644 --- a/docs/generated/singlestoredb.management.workspace.Workspace.update.html +++ b/docs/generated/singlestoredb.management.workspace.Workspace.update.html @@ -64,6 +64,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.create_workspace.html b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.create_workspace.html index ab47ed88d..baa33de34 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.create_workspace.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.create_workspace.html @@ -66,6 +66,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.html b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.html index ed8667199..651eaeeb9 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.html @@ -66,6 +66,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.refresh.html b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.refresh.html index 7edfb6ed1..d6d202580 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.refresh.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.refresh.html @@ -66,6 +66,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.stage.html b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.stage.html index c91a51b5a..35e087be6 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.stage.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.stage.html @@ -66,6 +66,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.terminate.html b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.terminate.html index 139776058..938a02f1d 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.terminate.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.terminate.html @@ -66,6 +66,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.update.html b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.update.html index 7d9bdcfb3..d3bc019ba 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.update.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.update.html @@ -66,6 +66,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.workspaces.html b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.workspaces.html index f52b986bd..19a381007 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.workspaces.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceGroup.workspaces.html @@ -66,6 +66,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.create_workspace.html b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.create_workspace.html index d28e6b8de..ab718d1f2 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.create_workspace.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.create_workspace.html @@ -67,6 +67,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.create_workspace_group.html b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.create_workspace_group.html index 8f831c7ae..642c48835 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.create_workspace_group.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.create_workspace_group.html @@ -67,6 +67,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.get_workspace.html b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.get_workspace.html index 00ed6116c..6a06338d9 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.get_workspace.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.get_workspace.html @@ -67,6 +67,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.get_workspace_group.html b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.get_workspace_group.html index 3cb3cf0a6..6065adc13 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.get_workspace_group.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.get_workspace_group.html @@ -67,6 +67,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.html b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.html index 6d6534040..4c7682326 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.html @@ -67,6 +67,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.organization.html b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.organization.html index afedd61f3..5acaf2992 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.organization.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.organization.html @@ -67,6 +67,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.regions.html b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.regions.html index 81bfc4f4c..a3165d40a 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.regions.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.regions.html @@ -67,6 +67,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.workspace_groups.html b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.workspace_groups.html index e4a79bb58..bc68d8884 100644 --- a/docs/generated/singlestoredb.management.workspace.WorkspaceManager.workspace_groups.html +++ b/docs/generated/singlestoredb.management.workspace.WorkspaceManager.workspace_groups.html @@ -67,6 +67,7 @@
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.notebook.organization.html b/docs/generated/singlestoredb.notebook.organization.html index c7fb792ec..339173dd9 100644 --- a/docs/generated/singlestoredb.notebook.organization.html +++ b/docs/generated/singlestoredb.notebook.organization.html @@ -58,6 +58,7 @@
  • singlestoredb.notebook.workspace
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.notebook.secrets.html b/docs/generated/singlestoredb.notebook.secrets.html index 110495190..89f95ed77 100644 --- a/docs/generated/singlestoredb.notebook.secrets.html +++ b/docs/generated/singlestoredb.notebook.secrets.html @@ -58,6 +58,7 @@
  • singlestoredb.notebook.workspace
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.notebook.stage.html b/docs/generated/singlestoredb.notebook.stage.html index a34b1607f..774bf0000 100644 --- a/docs/generated/singlestoredb.notebook.stage.html +++ b/docs/generated/singlestoredb.notebook.stage.html @@ -58,6 +58,7 @@
  • singlestoredb.notebook.workspace
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.notebook.workspace.html b/docs/generated/singlestoredb.notebook.workspace.html index fc415689f..dcc9fbc8a 100644 --- a/docs/generated/singlestoredb.notebook.workspace.html +++ b/docs/generated/singlestoredb.notebook.workspace.html @@ -16,7 +16,7 @@ - + @@ -58,6 +58,7 @@ +
  • Server Tools
  • Configuration
  • @@ -106,7 +107,7 @@

    singlestoredb.notebook.workspace - +
    diff --git a/docs/generated/singlestoredb.notebook.workspace_group.html b/docs/generated/singlestoredb.notebook.workspace_group.html index 99f202ea4..986b13767 100644 --- a/docs/generated/singlestoredb.notebook.workspace_group.html +++ b/docs/generated/singlestoredb.notebook.workspace_group.html @@ -58,6 +58,7 @@
  • singlestoredb.notebook.workspace
  • +
  • Server Tools
  • Configuration
  • diff --git a/docs/generated/singlestoredb.set_option.html b/docs/generated/singlestoredb.set_option.html index f8662d7cd..61e00965e 100644 --- a/docs/generated/singlestoredb.set_option.html +++ b/docs/generated/singlestoredb.set_option.html @@ -48,6 +48,7 @@
  • Utilities
  • Management API
  • Notebook Tools
  • +
  • Server Tools
  • Configuration
  • +
  • open_mongosh() (singlestoredb.server.docker.SingleStoreDB method) +
  • +
  • StageObject (in module singlestoredb.management.workspace) +
  • +
  • start() (in module singlestoredb.server.docker)
  • status() (singlestoredb.connection.ShowAccessor method) +
  • +
  • stop() (singlestoredb.server.docker.SingleStoreDB method) +
  • +
  • studio_url (singlestoredb.server.docker.SingleStoreDB property)
  • diff --git a/docs/index.html b/docs/index.html index aa7db54c1..8c9d7ba65 100644 --- a/docs/index.html +++ b/docs/index.html @@ -189,6 +189,21 @@

    SingleStoreDB Python SDKsinglestoredb.notebook.workspace +
  • Server Tools +
  • Configuration
    • singlestoredb.get_option
    • singlestoredb.set_option
    • diff --git a/docs/objects.inv b/docs/objects.inv index 1c68afb3d51394d08dbebb0e9d2b8d987868377f..2dff482bc8c4cbb1f093e9753a281dc8d54a732f 100644 GIT binary patch delta 2993 zcmV;i3r_T)7L^!~f`6RLlH;}&hWF4h8f)iDe9Qd%KvB(=Ocy`0Va8J1aX5EF_SS2m}!vw!8E#&TBS?V z^vkh*{~^zf?Zw&Q(3yj;LvH+r4K+aCR_D5rRUbXbr90z`?B?vU3|D5%F!N25LYB#k z8Rb--OjR~2yJhlXMsfXeQzOU4h#BHbY2Gz5^gh%G{YrbES+lb)b7$Gva^=O1q7#B# z-gI5t$$x4O7SzJi*(9qyyHLv?s&=1M8pl6!qQ)qj!Y?~z0Y(pM=~LFZQho#$8*+eg z5);;+T*&3COmemjXhV6_@Uh*BvoO5c$ZLbSaF)>Fs|cMzLNT1v3KQr$A| zzhWZ!E`nQ@b=G7DvwLs5H+#zR;eDLoywcq-P@Bg2Y4*@3`F!~&P#rbW-9#|E?fo`)6z+`Jj2))`xK-gaxpHI2@$YuMG@}_m%((VZ zN;A5#?_A*p7}Fy~XDlw@$?#rUaf&nNjwa|?Y=BQiNx5B6~afbr3(EYcMAF*pAU&V;(J9Wcd z7PsvVSyTR*O(ZaM@Lz#tHWSb_ujSnt*A}w%)V{kR)5E_|Iz22 z6q~w-MXd2B_3&X?s{bf?Y(1?}l8x^zLgrD?WRYt9a3)xfTuyXyk^5({HQg8gekj`f z&HwXqdF`ct?ZHJ~-H;RM=-g?io@>LE6VC5u zr9h(-Cq&gI{@Co138#4fd4K1wZkt1!c)ylv#tvhTCh<|MG%J1(cP`3SDapl)6UC1? zi8J&jyyAUqrBh@vON-*KZe1$bVMBSl2=V8BcH`%M{qyYB72o@U`1IY(zrY_p{fwW@ ztLaRWn|V}~?M)Sq^B${_!4n_b8vn=BGG=)?+(HULBaE9&+`!wf!+(QcjHc8JFS@w- z5|EygC)C_vXJEoW-~uxE(XJpHNYem=tijK^JOYo&!-2!$5JV*IO5Sc9APoGF3nu~7 z$AgUS!H>Ji2|vm(fsz601d~&i#S7LFl8i=2{HUs6J7=r z2LqKS!;2QMXfSOoFrhQdd@F7Zk|e<7)UeZDp>B{Q0Y2A;7=QR49S5l@U;=R@nM0-y zk|ZES=ZIo&VR(?I1tE7wp^pgRgDfcskv$4sMD!nINkIbqQD|WS2O(Vt0#cAd_8B;Y zWElwILXz}boFZgN*GY0zyTKtDGFdikR)kik`fX{AfhHoaznM83XsuZS=2R1-TnslL1AyEW; z=#(gQjIKhe3IwDoaqa+kg=85>_*RnWD^3>Db-;vUNpgpLEhI@m2GSCRUL(1XqXZs` zOB9_RnHM$Ue+dGw@Lx#R@xsev(*x6^&ZIFx*a$R+G=B|{pkIuX0WAy@20{`eEGfqd zDu#CkKq5darScYY4DSws$C$B{!dFl-y!9$1v&T}ZZUf8k!62YQ!qTJM0E}VUSfD=! zOpLb01jE$PAf$Qp$kT$H7pB(Af_y=)8raw|VHW{x1BoJF(#nL1XW$u&v|_#pD5fYt*DjA zQGWuD?81&7<0g@!02x+NA@ZH4oYRyb15zrq5CZs+qXa3)QlW{MkB2-hh&Y%ET?9lu zWC%fk&6B5J@RvxIfhOHjtCdY29m;(`0hg)OBm3l!Qk#J?lc#wK?f14)l$ljBvKtfgn!nPcNB6$ks$h4F1J;$ z!A&A8YB&K25}VS|ZMrNb41`puEGbF|qQ(1TAPqiCD}QU@9gl!?ZY-(%-5Gv83V*2h zT3(pj)9;h3Bo*uQut1NIB?T_) zSQ>xkB_mA(GA^<_c0^c4juHrnWq*3!h0Kf(hrweYb6S9V4@TMO!Ke#AAjU6GTLFS n*#GeQr~XFZ{g^r1#88@P+c5ff|G)qJ=f4(zHSh3$!epg=9jLD# delta 2746 zcmV;r3Ptsm7@!uAf`44glH;}&-QTacRmrwH@zy&#u5!5&CsWf4FI5zYmgwO_ML_Op zulyVSJ%33+@gabuB-}@@ria3LTvC8QiTBvDIaJ2Fwll>ZPw(H>ZE>y){u8rP`FwPB z^|#^3)8Fw4Y&iNkJGFo}1j2ZG+$7!8E4JoPR0)aT_wQuW9qPX-uBV zIF5cm<~g4KHUHUD=T&CyW8N4@QhDC(%BFO?-Q~0zcWjG~)$=E}&D**zoj~zQLKDxc z)*6BC1y7We*2=2$+}XC1h+YV2qD5)5ePwn<=CYlim;(7F70rlgw0ta>Xf{f_8(%Pm zz(YtwGtjkFwSUj@F9Pw2B1L$9&rw#biG_HTdM72>ih2M6{42&F9=~LFZQho)lG-LzgA|}+ISjh5K zCi__E2{@v8mLH8+`NBe$_cx2CICs)>KGU!aSX-6W$sG(lR12N);NmRb7KB7p6V_k6 zI+I<6k%KJl|M3SkmcE#ZY(&8TOZc*D(WpNpVt<)XkS7bjWnJS3%A_ZfMDfqYo-0TE z((Vc*sj$DiOVAs3oTfR9`}maKWJ1g>;==fw>~e2*?P*$;5~vrbTjc#uOeEeb;1*?_ zHQB-J-rDYqJ!SduK2Bg>;qD96rg46mJ@igKU;asX3*Ev}wPy#@O?ORi|S+RR96K_aU$wX$_sxY0NoeLeqkooGjH&*InU}4CY&1)+a?>RWq zc2|_*D=@I|bBQ{zAeKZ%?L?YWExr>CV*cZ{iC-u(0L* zS+hD8dM1{QCaV?BLeIjHuNB^W7ZQf}`G2JLffP^)jHrAVMPzg{|J(mMK82Jy=eL~w z@46fx0}ogKIotbV?kGGNF&W!T|8=XvG+D5*?f7@Qo|}=3Z)V*4D7hKg*mhJlQV|#1 ziodt=H%VI8X=0Pusa5UNB0DPkzKBa=Md33bCS#jX*bxOxY#S=OqlimrMPaA3;(rrZ z(p!K#*@uC~4l1M~8Tn=Ui~U8$%)rxC_(DVKAb4(DYT&^`-4D>6dF_lnY8V-*m`0rG z>at0FEF_hTY36(?l$;DqJR3iD?fE31Bo`Wi1I_6o_A-85{uZtwDxQ|a5|et9D&mt^ zveP%mr_O)GckW$i$&$a(T@Yx__kRVW#FpC359uU^;@?n|t{&+JmJODlFRym;wP_?0 zxzJpnRQ!Cv8g+|W*XZsred2tO-9bQRy8rd@BTj9^t7uXEq;9aw?6%z@Ys%lV=_g?E zBC|y-vpD=@Y8B7o$SAY5xC~bH>@CS}S#4Tp_HFxRbshVMKJU2L#61+T#(z)h;mfjA z{t@z+dfKBT6W`l}%%h^kB9;2#O0XVzo#L2(Mt2+I|9HBNx%Tr}Na=YF?I!m~?86L3#kDjRj^*0Mp+pX#hzOU?vN&-7dljkOTpK5&_Zhy*vY? zqJSA;An_cgARq|>(tof6k?pPE1ms~sn3SMUM-;k%EGP&=78I(8@*0o@1xZAMLJ8NX z2c+XbknN!0eU6AgG7N-q5EA!W$r8wdva3+>&vH)pJVsdv3EnSN`5|?B%?&{!2>3A}BGYl$2vSiX$QBX%4kAjB3VY`b1=U9ioC9B=EvhMAqq+c~+yu7J=baU<=Z5Jo9qfbi;J3b2f~?Y!nTHGz^ep zS{N>ad>2d@2!BbbE=fLCF)(;%03=4fq$qEt#Ngc_@HiMIMR*Y-gSTFVmHW+71JBkct9sWRB4E zHFgJS7+~h?2>s42=}3YAI~7OhH|ShPA_zoDJ}SQF7I$O-fgJ-R_CEK+BM}7L@F1z> znm!FL7?4E`32iS!i;#l^X+)7y5uBY=gavMHf~t7Q`7&I+cWhP{;&>Fak=Y63*>X1O;(+lu8{@5EU}PAP%0= zs->3HQp;-5xJg_`U?B?%(!?vRGU(fp7z?7nER`zgw>be2guzxS6>x5RA}A=tb17Cr zzZF`+L74ERR1N!cy%X+F6mFDOIb+B{04(=XFsKBpY1JcG*A@gI4`g=`=ENI7kYyX z^n&j6ieBZip_BzwGV}B*3`6)(KmfW)dwK4rz&@lKv!+)S|i;bF3?@!YU!| None: os.environ[k] = v def _wait_on_ready(self) -> bool: - for i in range(20): + for i in range(60): for line in self.logs(): if 'INFO: ' in line: return True - time.sleep(3) + time.sleep(5) return False def logs(self) -> List[str]: @@ -184,6 +233,7 @@ def logs(self) -> List[str]: @property def connection_url(self) -> str: + """Connection URL for the SingleStoreDB server.""" dbname = f'/{self._database}' if self._database else '' root_password = urllib.parse.quote_plus(self.root_password) return f'singlestoredb://root:{root_password}@' + \ @@ -191,6 +241,7 @@ def connection_url(self) -> str: @property def http_connection_url(self) -> str: + """HTTP Connection URL for the SingleStoreDB server.""" dbname = f'/{self._database}' if self._database else '' root_password = urllib.parse.quote_plus(self.root_password) return f'singlestoredb+http://root:{root_password}@' + \ @@ -201,12 +252,28 @@ def connect( use_data_api: bool = False, **kwargs: Any, ) -> Connection: + """ + Connect to the SingleStoreDB server. + + Parameters + ----------- + use_data_api : bool, optional + Use the Data API for the connection. + **kwargs : Any, optional + Additional keyword arguments to pass to the connection. + + Returns + -------- + Connection : Connection to the SingleStoreDB server. + + """ if use_data_api: return connect(self.http_connection_url, **kwargs) return connect(self.connection_url, **kwargs) @property def kai_url(self) -> Optional[str]: + """Connection URL for the Kai (MongoDB) server.""" if not self.kai_enabled: return None root_password = urllib.parse.quote_plus(self.root_password) @@ -214,6 +281,7 @@ def kai_url(self) -> Optional[str]: f'localhost:{self.kai_port}/?authMechanism=PLAIN&loadBalanced=true' def connect_kai(self) -> 'pymongo.MongoClient': + """Connect to the Kai (MongoDB) server.""" if not self.kai_enabled: raise RuntimeError('kai is not enabled') if not has_pymongo: @@ -222,9 +290,11 @@ def connect_kai(self) -> 'pymongo.MongoClient': @property def studio_url(self) -> str: + """URL for the SingleStoreDB Studio.""" return f'http://localhost:{self.studio_port}' - def connect_studio(self) -> None: + def open_studio(self) -> None: + """Open the SingleStoreDB Studio in a web browser.""" import webbrowser if platform.platform().lower().startswith('macos'): chrome_path = r'open -a /Applications/Google\ Chrome.app %s' @@ -232,6 +302,62 @@ def connect_studio(self) -> None: else: webbrowser.open(self.studio_url, new=2) + def open_shell(self) -> None: + """Open a shell in the SingleStoreDB server.""" + env_token = '_SINGLESTOREDB_TOKEN_' + self.container.id + try: + os.environ[env_token] = self.root_password + if platform.platform().lower().startswith('macos'): + subprocess.call( + f'open -a Terminal --args docker exec -it {self.container.id} ' + f'singlestore -p"${env_token}"', + shell=True, + ) + elif platform.platform().lower().startswith('linux'): + subprocess.call( + f'gnome-terminal -- docker exec -it {self.container.id} ' + f'singlestore -p"${env_token}"', + shell=True, + ) + elif platform.platform().lower().startswith('windows'): + subprocess.call( + f'start cmd /k docker exec -it {self.container.id} ' + f'singlestore -p"%{env_token}%"', + shell=True, + ) + else: + raise RuntimeError('unsupported platform') + finally: + del os.environ[env_token] + + def open_mongosh(self) -> None: + """Open a mongosh in the SingleStoreDB server.""" + if not self.kai_enabled: + raise RuntimeError('kai interface is not enabled') + env_token = '_SINGLESTOREDB_TOKEN_' + self.container.id + try: + os.environ[env_token] = self.root_password + if platform.platform().lower().startswith('macos'): + subprocess.call( + 'open -a Terminal --args ' + f'docker exec -it {self.container.id} mongosh', + shell=True, + ) + elif platform.platform().lower().startswith('linux'): + subprocess.call( + f'gnome-terminal -- docker exec -it {self.container.id} mongosh', + shell=True, + ) + elif platform.platform().lower().startswith('windows'): + subprocess.call( + f'start cmd /k docker exec -it {self.container.id} mongosh', + shell=True, + ) + else: + raise RuntimeError('unsupported platform') + finally: + del os.environ[env_token] + def __enter__(self) -> SingleStoreDB: return self @@ -245,10 +371,13 @@ def __exit__( return None def stop(self) -> None: + """Stop the SingleStoreDB server.""" if self.container is not None: - self._restore_server_urls() - self.container.stop() - self.container = None + try: + self._restore_server_urls() + self.container.stop() + finally: + self.container = None def start( @@ -269,7 +398,45 @@ def start( image: str = DEFAULT_IMAGE, database: Optional[str] = None, ) -> SingleStoreDB: - """Start a SingleStoreDB server using Docker.""" + """ + Manager for SingleStoreDB server running in Docker. + + Parameters + ----------- + name : str, optional + Name of the container. + root_password : str, optional + Root password for the SingleStoreDB server. + license : str, optional + License key for SingleStoreDB. + enable_kai : bool, optional + Enable Kai (MongoDB) server. + server_port : int, optional + Port for the SingleStoreDB server. + studio_port : int, optional + Port for the SingleStoreDB Studio. + data_api_port : int, optional + Port for the SingleStoreDB Data API. + kai_port : int, optional + Port for the Kai server. + hostname : str, optional + Hostname for the container. + data_dir : str, optional + Path to the data directory. + logs_dir : str, optional + Path to the logs directory. + server_dir : str, optional + Path to the server directory. + global_vars : dict, optional + Global variables to set in the SingleStoreDB server. + init_sql : str, optional + Path to an SQL file to run on startup. + image : str, optional + Docker image to use. + database : str, optional + Default database to connect to. + + """ return SingleStoreDB( name=name, root_password=root_password,