Pode escrever o seu script de forma a funcionar em ambos os ambientes sem alterações. O truque é verificar se o objeto context está disponível:

from seatable_api import Base

try:
    from seatable_api import context
    base = Base(context.api_token, context.server_url)
except:
    base = Base('your-api-token', 'https://cloud.seatable.io')

base.auth()

Uma lista completa de todas as bibliotecas pré-instaladas encontra-se no artigo Bibliotecas Python suportadas . Aí também aprenderá como adicionar bibliotecas personalizadas num servidor auto-hospedado.

O método base.list_rows() devolve por defeito um máximo de 1.000 linhas. Para processar mais linhas, utilize uma destas abordagens:

Opção 1: Ciclo com offset

all_rows = []
offset = 0
while True:
    rows = base.list_rows(TABLE_NAME, start=offset, limit=1000)
    if not rows:
        break
    all_rows.extend(rows)
    offset += 1000

Opção 2: Consulta SQL

rows = base.query("SELECT * FROM `Table1` LIMIT 10000")

As consultas SQL suportam até 10.000 linhas por pedido.

Utilize json.dumps() com indentação para mostrar dicionários e listas de forma formatada:

import json
metadata = base.get_metadata()
print(json.dumps(metadata, indent=2))

Para a referência completa das funções, visite o SeaTable Developer Manual .