Quickstart¶
Esta guía muestra el camino recomendado para empezar con bcch-sdk.
Instalación¶
python -m pip install "bcch-sdk[polars]"
Use bcch-sdk[pandas] if you only need Pandas, or bcch-sdk[dataframe] to
install both backends. The base bcch-sdk package provides clients and models
without DataFrame dependencies.
Para desarrollo local desde el repositorio:
poetry install
Credenciales¶
El Banco Central de Chile requiere credenciales para consultar SieteRestWS. El SDK recibe un diccionario con username y password.
from bcch_sdk import BCChConfig
config = BCChConfig(
credentials={
"username": "tu_usuario",
"password": "tu_password",
}
)
Consulta sincrónica¶
Usa BCChSyncSDK para scripts, notebooks o procesos batch simples.
from bcch_sdk import BCChConfig, BCChSyncSDK
sdk = BCChSyncSDK(
configuration=BCChConfig(
credentials={"username": "tu_usuario", "password": "tu_password"}
)
)
frames = sdk.get_series(
time_series="SF43718",
first_date="2024-01-01",
last_date="2024-01-31",
)
print(frames[0])
get_series siempre retorna una secuencia de DataFrames. Si consultas una serie, usa frames[0].
Consulta asíncrona¶
Usa BCChAsyncSDK cuando tu aplicación ya trabaja con asyncio.
import asyncio
from bcch_sdk import BCChAsyncSDK, BCChConfig
async def main() -> None:
sdk = BCChAsyncSDK(
configuration=BCChConfig(
credentials={"username": "tu_usuario", "password": "tu_password"}
)
)
frames = await sdk.get_series(
time_series=["SF43718", "F073.TCO.PRE.Z.D"],
first_date="2024-01-01",
last_date="2024-01-31",
)
for frame in frames:
print(frame)
asyncio.run(main())
Buscar series¶
from bcch_sdk import BCChConfig, BCChSyncSDK, Frequency
sdk = BCChSyncSDK(
configuration=BCChConfig(
credentials={"username": "tu_usuario", "password": "tu_password"}
)
)
catalog = sdk.search_series(Frequency.DAILY)
print(catalog)
Manejo básico de errores¶
from bcch_sdk import (
BCChConfig,
BCChSyncSDK,
InvalidCredentialsException,
InvalidDateException,
InvalidSeriesException,
TransportException,
)
sdk = BCChSyncSDK(
configuration=BCChConfig(
credentials={"username": "tu_usuario", "password": "tu_password"}
)
)
try:
frames = sdk.get_series("SF43718", first_date="2024-01-01")
except InvalidCredentialsException:
print("Credenciales inválidas.")
except InvalidSeriesException:
print("La serie solicitada no existe o no está disponible.")
except InvalidDateException:
print("El rango de fechas no es válido para la serie.")
except TransportException:
print("No se pudo contactar al servicio del Banco Central.")