Skip to main content

Banco Central Chile SDK

CI Codecov Documentation PyPI Python License

A Python client library for the Banco Central de Chile SieteRestWS API.

This repository provides sync and async wrappers over the API, returning data as pandas.DataFrame or polars.DataFrame and managing retries, timeout configuration, and error handling.

Features

  • Synchronous and asynchronous SDK layers
  • Built-in HTTP retries using httpx-retries
  • Configurable httpx.Timeout
  • Configurable sync/async concurrency limit
  • get_series(...) and search_series(...)
  • Output as pandas.DataFrame or polars.DataFrame
  • Standard logging integration using logging.getLogger(__name__)
  • Typed configuration and credentials

Requirements

  • Python 3.12+
  • httpx[brotli,zstd]
  • pydantic
  • httpx-retries

Pandas and Polars are optional in v2. Install only the backend your application uses.

Installation

This project uses a src/ layout and exposes the bcch_sdk package.

Use Poetry if available:

poetry install

For an installed package, choose an extra:

python -m pip install "bcch-sdk[polars]"
python -m pip install "bcch-sdk[pandas]"
python -m pip install "bcch-sdk[dataframe]"  # both backends

Or install the runtime dependencies manually:

python -m pip install httpx[brotli,zstd] pydantic httpx-retries

If you want to run code from the repository directly, make sure the src/ folder is on PYTHONPATH:

export PYTHONPATH=$(pwd)/src

Quickstart

Import the SDK classes and configure the client using BCChConfig.

Sync example

from httpx import Timeout
from bcch_sdk import BCChSyncSDK
from bcch_sdk.types import BCChConfig

config = BCChConfig(
    credentials={"username": "your_user", "password": "your_pass"},
    timeout=Timeout(10.0),
    max_concurrency=8,
)

sdk = BCChSyncSDK(configuration=config)

series_data = sdk.get_series(
    time_series="SF6041",
    first_date="2023-01-01",
    last_date="2023-12-31",
    polars_response=False,
)

print(series_data)

Async example

import asyncio
from httpx import Timeout
from bcch_sdk import BCChAsyncSDK
from bcch_sdk.types import BCChConfig

async def main() -> None:
    config = BCChConfig(
        credentials={"username": "your_user", "password": "your_pass"},
        timeout=Timeout(10.0),
    )

    sdk = BCChAsyncSDK(configuration=config)

    series_data = await sdk.get_series(
        time_series=["SF6041", "SF6060"],
        first_date="2023-01-01",
        last_date="2023-12-31",
        polars_response=True,
    )

    print(series_data)

asyncio.run(main())

Search series example

from bcch_sdk.types import Frequency

result = sdk.search_series(Frequency.MONTHLY, polars_response=False)
print(result)

Configuration

The main configuration object is BCChConfig from bcch_sdk.types.config.

max_concurrency controls both the maximum thread workers used by the sync SDK and in-flight tasks used by the async SDK. It defaults to 8 and must be greater than zero.

The Banco Central API requires credentials in its query string. The SDK does not log query parameters, but HTTPX logs complete request URLs at INFO; keep the httpx logger at WARNING or higher in production.

Requesting a DataFrame backend that is not installed raises MissingDataFrameDependencyException with the corresponding installation command. The low-level sync/async clients and Pydantic models work with the base installation and do not require either DataFrame library.

  • credentials: a typed dict with username and password
  • timeout: an httpx.Timeout object

The SDK clients use httpx under the hood and will apply retries and timeout settings automatically.

Logging

This library uses logging.getLogger(__name__) in each module. Consumers should configure handlers and levels in their own applications.

Example:

import logging

logging.basicConfig(level=logging.INFO)

Contributing

See CONTRIBUTING.md for contribution guidelines.

Security

See SECURITY.md for security reporting and vulnerability handling.

Code of Conduct

See CODE_OF_CONDUCT.md for community expectations.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bcch_sdk-2.0.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bcch_sdk-2.0.0-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file bcch_sdk-2.0.0.tar.gz.

File metadata

  • Download URL: bcch_sdk-2.0.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for bcch_sdk-2.0.0.tar.gz
Algorithm Hash digest
SHA256 9dab822fc35615bd187b793586f97924e56f6046aa0e78bf74b87cab4b7012cb
MD5 c9822f43d3da1829a3c98adf6bbbb5b4
BLAKE2b-256 373373e4dbef13485ab25e049ae6565d7ebbfcc441a6727ad73ba3cef6dfa21a

See more details on using hashes here.

Provenance

The following attestation bundles were made for bcch_sdk-2.0.0.tar.gz:

Publisher: publish.yml on ezer-mackenzie/bcch-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bcch_sdk-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: bcch_sdk-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for bcch_sdk-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4413aa1c5d0d377d37e7a04690e7119592a750091376940438f8c3246e8642a3
MD5 a646b11f0cb481ec16becabcf599492a
BLAKE2b-256 00bc37efb08f001cf3a3dbb4f00f5efdfeb8e3d1778d2a6e1d87beee68840825

See more details on using hashes here.

Provenance

The following attestation bundles were made for bcch_sdk-2.0.0-py3-none-any.whl:

Publisher: publish.yml on ezer-mackenzie/bcch-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 files

1.0.1

2 files

1.0.0

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page