Skip to main content
Em breve no PyPI O SDK Python chama a API pública sem você montar o pedido à mão: um método para cada rota, os logs ao vivo, o envio de arquivos grandes ao Blob e os erros com o code da API. Não tem dependências: só a biblioteca padrão do Python 3.9 ou mais novo.
O pacote ainda não está no PyPI, e nenhum pacote de lá é da Cube por enquanto: não instale um com nome parecido nem passe a sua chave a ele. O nome e o comando de instalar aparecem aqui quando ele sair. Esta página mostra como ele funciona; até lá, use a API direto, com os exemplos em Python de cada página da referência.

Começar

Crie uma chave em Chaves de API e guarde na variável CUBE_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.
Cada método tem o nome da operação no OpenAPI em snake_case: primeiro os IDs do caminho, depois os campos como argumentos nomeados em snake_case (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"}.
Para mandar uma pasta sem montar o .zip, respeitando o .gitignore, use a CLI (cube deploy).

Logs ao vivo

Primeiro chegam as últimas 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

O upload_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.
Se uma parte não chega (o SDK tenta cada uma 3 vezes), o erro é um 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 um CubeApiError, 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, no print nem 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-Agent leva só o nome e a versão do SDK.