shade-sdk
O runtime e o framework dos robôs da ShadeOne. O robô gerado pela plataforma importa este
pacote, na versão fixada pelo requirements.lock da imagem do sandbox, e o robô escrito à mão
importa o mesmo pacote (ADR 019, D1). O import é shade_sdk.
from shade_sdk import Item, Robo
class CadastroDePedido(Robo):
chave = ("cliente", "pedido") # a chave de negócio do item
def entrar(self, pagina) -> None: # opcional: ao abrir a sessão e se ela cair
...
def processar(self, item: Item, pagina) -> None:
pagina.goto(self.config["base_url"] + "/pedidos/novo")
pagina.get_by_label("Cliente").fill(item["cliente"])
with item.efetivar("salvar pedido"): # o ensaio para aqui; o real registra antes
pagina.get_by_role("button", name="Salvar").click()
main.py na raiz do projeto: CadastroDePedido.main(). Sem flag, roda em modo real, como o
robô gerado; --rehearsal é o ensaio. A entrada é --input <arquivo.json>, ou
data/input.json (onde a plataforma a deixa), ou [itens] exemplo do shade.toml.
Robo(uma lista de itens) eTarefa(uma execução única,executar(item, pagina)).Item:item["campo"],item.chave,with item.efetivar(nome),item.saida(**campos),item.reter(motivo),item.log(texto).self.segredo(nome): só a credencial declarada em[credenciais] nomes;self.config: a tabela[config].- Erros:
ErroDeNegocio(não repete),SessaoPerdida(entra de novo e refaz),ErroDeContrato, e os sinaisParadaDoEnsaioeItemRetido(BaseException: umexcept Exceptionnão os engole). shade_sdk.testing:ExecutorLocal(o lado do executor do protocolo, com o robô em subprocesso) epagina_local(um site local que conta os efeitos).
O runtime:
shade_sdk.runtime.laco: o laço por item (ledger, retomada, recuperação,efetivar, resumo).shade_sdk.runtime.ledger: identidade do item por chave de negócio, oincertogravado antes de efetivar e o canal do registro com o executor.shade_sdk.runtime.recovery: classificação da falha, sessão perdida e modal inesperado.shade_sdk.runtime.report: relatório HTML da execução e o histórico.shade_sdk.runtime.config:Settingse a carga do.env.shade_sdk.runtime.output: a planilha de saída, com ou sem mascaramento de PII.shade_sdk.runtime.protocolo: o número e o formato do contrato robô ↔ executor, inclusive a entrada (main.py, argv e ambiente).
Testes do pacote: cd sdk && uv run pytest (Chromium do Playwright instalado).
Licença: Apache-2.0.
Metadata
Release files for shade-sdk 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shade_sdk-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / shade_sdk-0.4.0-py3-none-any.whl
| Download URL | shade_sdk-0.4.0-py3-none-any.whl |
|---|---|
| Size | 48.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d7b7634d672cbf380684e78accf32affaa3f3a097c1e7cbb63de7c44c5167049
|
|
BLAKE2b-256 checksum How to use checksums |
35a192687a3bd9fe94d7d93935925fe67f96cc3e595b6e06ddf5f5990794d074
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|