Utilitzant el SDK de Python
Aquesta guia mostra com aconseguir el mateix resultat que l’HTTP quickstart utilitzant l’SDK de Python d’Asset Core amb operacions tipades.
Requisits previs
- Python 3.11+
- Daemons d’Asset Core s’executen localment (vegeu Primer compromís i lectura)
pipouvper a la instal·lació de paquets
Pas 1 - Instal·lar el SDK
Des de l’arrel del repositori d’Asset Core:
cd sdk-python
pip install -e .
O amb uv:
uv venv --seed .venv-sdk
source .venv-sdk/bin/activate
cd sdk-python
uv pip install -e .
Pas 2 - Crear el client
from assetcore_sdk import AssetCoreClient
client = AssetCoreClient(
write_url="http://127.0.0.1:8080",
read_url="http://127.0.0.1:8081"
)
El client gestiona la connexió de grups i la lògica de reintents per a vostè.
Pas 3 - Operacions de construcció
Utilitzeu els constructors d’operacions tipades:
from assetcore_sdk.operations import (
create_container,
add_fungible
)
operations = [
create_container(
container_id=1001,
kind="Standard"
),
add_fungible(
container_id=1001,
class_id=100,
key=1,
quantity=500
)
]
Cada funció retorna un diccionari que coincideix amb el format d’operació JSON.
Pas 4 - Enviar el commit
result = await client.commit(
operations=operations,
idempotency_key="sdk-first-commit"
)
print(f"Committed at sequence {result.global_seq}")
O utilitzeu la versió sincrònica:
result = client.commit_sync(
operations=operations,
idempotency_key="sdk-first-commit"
)
Pas 5 - Llegir l’estat
container = await client.get_container_balances(1001)
for balance in container.balances:
print(f"Class {balance.class_id}: {balance.quantity}")
La resposta inclou camps escrits i metadades de frescor.
Resolució de problemes
”ModuleNotFoundError: assetcore_sdk”
El SDK no està instal·lat en el vostre entorn actual. Assegureu-vos d’haver activat el correcte entorn virtual i d’haver executat pip install -e . des del directori sdk-python.
Errors de connexió
Els daemons no s’estan executant o estan en ports diferents. El SDK genera assetcore_sdk.errors.ConnectionError amb detalls sobre quin daemon ha fallat.
Errors de validació
Els arguments d’operació no vàlids generen assetcore_sdk.errors.ValidationError amb el camp específic que ha fallat. Comproveu la referència de l’operació per als camps requerits.
Properes passes
- Referència de l’SDK de Python - Documentació completa de l’API
- Operacions per Domini - Llista completa d’operacions
- Receptes - Patrons comuns de múltiples operacions