code da API. Não tem dependências: só a biblioteca padrão do Python 3.9 ou mais novo.
Começar
Crie uma chave em Chaves de API e guarde na variávelCUBE_API_KEY. Leitura basta para ver projetos, logs e métricas; para enviar, iniciar, parar, reiniciar e mexer nas variáveis, use uma de leitura e escrita. A chave Só Blob alcança só os métodos do Blob.
memory_mb vai como memoryMb). A resposta é o JSON da API, com os campos como ela manda (memoryMb, createdAt).
Enviar código
O.zip vai pelo caminho, em bytes ou como um arquivo aberto em "rb", com o mesmo limite do plano (5 MB no Free e 10 MB nos pagos). Os outros campos são os de Criar um projeto; variables é um dicionário {"NOME": "valor"}.
.zip, respeitando o .gitignore, use a CLI (cube deploy).
Logs ao vivo
lines linhas, depois as novas, e cada mudança de estado como status. follow=False manda só as últimas e termina; source="build" mostra a instalação. O texto é do seu projeto: mostre como texto, nunca como HTML.
Blob
Oupload_blob faz os três passos do envio: pede o envio, manda os bytes direto ao armazenamento (em partes de 16 MB acima disso, lendo o arquivo aos pedaços) e confirma. Sem content_type, o tipo vem da extensão do nome.
CubeUploadError com o object_id: chame upload_blob(path, data, object_id=...) com o mesmo arquivo para mandar só o que falta. As partes que chegaram ficam guardadas por 24 horas.
Erros
Toda resposta de erro vira umCubeApiError, com o code fixo em inglês da página Códigos de erro e a mensagem em português para mostrar a uma pessoa.
Sem conexão ou com o tempo esgotado, o erro é um
CubeConnectionError. Todos herdam de CubeError.
Segurança
- A chave nunca aparece no
repr, noprintnem em erro nenhum. - O SDK não segue redirecionamento: a chave só vai ao endereço da API.
- Os bytes do Blob vão direto ao armazenamento pela URL assinada, sem a chave.
- O
User-Agentleva só o nome e a versão do SDK.

