Cluster · разработчикам

Scope

Раздел базы с префиксом и выбранным экземпляром. Префикс добавляется к ключу без разделителя.

Все методы SDK · Типы и ошибки

Получение объекта

scope = app.db.scope("notes/")

__init__

Создаёт Scope. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

def __init__(app: App, prefix: str = '', module: str | None = None, slot: str | None = None) -> None: ...

Аргументы

Результат

None. Создаёт Scope. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

# Обычный способ получения объекта:
scope = app.db.scope("notes/")

key

Проверяет непустой строковый ключ и возвращает его вместе с префиксом раздела.

def key(key: str) -> str: ...

Аргументы

Результат

str. Проверяет непустой строковый ключ и возвращает его вместе с префиксом раздела.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = scope.key("count")

scope

Создаёт вложенный раздел с дополнительным префиксом и возможной заменой module или slot.

def scope(prefix: str = '', **target: JSON) -> Scope: ...

Аргументы

Результат

Scope. Создаёт вложенный раздел с дополнительным префиксом и возможной заменой module или slot.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = scope.scope(module=None, slot=None)

record

Создаёт версионированную запись в этом разделе.

def record(key: str, default: JSON = None) -> Record: ...

Аргументы

Результат

Record. Создаёт версионированную запись в этом разделе.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = scope.record("count")

batch

Создаёт пакет изменений в этом разделе.

def batch() -> Batch: ...

Аргументы

Нет.

Результат

Batch. Создаёт пакет изменений в этом разделе.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = scope.batch()

get

Читает значение с префиксом; для отсутствующего ключа возвращает default.

async def get(key: str, default: JSON = None) -> JSON: ...

Аргументы

Результат

JSON. Читает значение с префиксом; для отсутствующего ключа возвращает default.

Права

Нужны db.read. Для другого раздела своего юзербота дополнительно db.full.

Ошибки

Пример

result = await scope.get("count")

set

Записывает значение с префиксом и необязательным сроком хранения.

async def set(key: str, value: JSON, ttl: int | None = None) -> bool: ...

Аргументы

Результат

bool. Записывает значение с префиксом и необязательным сроком хранения.

Права

Нужны db.write. Для другого раздела своего юзербота дополнительно db.full.

Ошибки

Пример

result = await scope.set("count", {"count": 1})

delete

Удаляет ключ с префиксом и возвращает прежнее наличие.

async def delete(key: str) -> bool: ...

Аргументы

Результат

bool. Удаляет ключ с префиксом и возвращает прежнее наличие.

Права

Нужны db.write. Для другого раздела своего юзербота дополнительно db.full.

Ошибки

Пример

result = await scope.delete("count")

items

Перебирает подходящие ключи и значения, удаляя префикс из выдаваемых имён. Чтения не образуют общий снимок.

async def items(limit: int = 100) -> AsyncIterator[tuple[str, JSON]]: ...

Аргументы

Результат

AsyncIterator[tuple[str, JSON]]. Перебирает подходящие ключи и значения, удаляя префикс из выдаваемых имён. Чтения не образуют общий снимок.

Права

Нужны db.read. Для другого раздела своего юзербота дополнительно db.full.

Ошибки

Пример

async for value in scope.items():
    break