Kod Python
Python wykonuje się za pośrednictwem Pyodide — CPythona skompilowanego do WebAssembly — w osobnym wątku. Na komputerze użytkownika nie jest wymagany żaden Python.
| Symbol | Rola |
|---|---|
input | Wartość odebrana na porcie wejściowym |
vars | Słownik zmiennych uruchomienia |
print(...) | Zapisuje w dzienniku wykonania |
| Ostatnie wyrażenie | Jego wartość trafia na port result |
Przykład
Section titled “Przykład”commandes = input["commandes"]
payees = [c for c in commandes if c["statut"] == "payee"]total = sum(c["montant"] for c in payees)
print(f"{len(payees)} commandes payées, total {total} €")
{"nombre": len(payees), "total": total}Biblioteka standardowa
Section titled “Biblioteka standardowa”Biblioteka standardowa CPythona jest dostępna: json, re, datetime,
hashlib, base64, itertools, collections…
import hashlib, hmac
signature = hmac.new( vars["secret"].encode(), input["corps"].encode(), hashlib.sha256,).hexdigest()
{"signature": signature}Pakiety zewnętrzne
Section titled “Pakiety zewnętrzne”Deklaruje się je w polu packages bloku. Są pobierane z PyPI przy pierwszym
uruchomieniu, zapisywane w pamięci podręcznej, a potem ładowane offline.
Zatrzymanie i limit czasu
Section titled “Zatrzymanie i limit czasu”Przekroczenie timeout albo zatrzymanie wykonania przerywa je wyjątkiem
KeyboardInterrupt, a następnie w razie potrzeby kończy wątek.