xbbg 1.0.0b7
Pre-release
Pre-release
Added
- Python type stubs for
xbbg._coreviapyo3-stub-gen: auto-generated.pyifiles provide full IDE autocompletion and type-checker support forEngineConfig,Engine,Subscription, and all Rust-backed functions. Includespy.typedPEP 561 marker. - macOS ARM64 wheel builds in CI and release workflows. Wheels are now built and tested for Linux x86_64, Windows x86_64, and macOS ARM64 across Python 3.10–3.14.
- CI auto-regeneration of type stubs: stubs are regenerated and auto-committed after all CI checks pass, ensuring
.pyifiles stay in sync with Rust annotations. Engineclass for non-global multi-engine routing. Create independent engine instances and scope them viawith engine:(sync) orasync with engine:(async). The globalconfigure()+blp.bdp()API is unchanged —Engineis fully opt-in.- TLS support for encrypted B-PIPE connections:
tls_client_credentials,tls_trust_material,tls_handshake_timeout_msonEngineConfigandconfigure(). - Identity lifecycle FFI:
Session.generate_token(),Session.send_authorization_request(),Session.subscribe_with_identity()for multi-user entitlement flows. - Runtime SDK version:
get_sdk_info()now includesruntime_versionfield reporting the linked Bloomberg C SDK version viablpapi_getVersionInfo()(e.g.,"3.26.2.1"). Also available asxbbg._core.sdk_version()→(major, minor, patch, build)tuple. - Async request cancellation: cancelling the Python task for any async Bloomberg request now propagates to the Bloomberg SDK via
Session::cancel(correlationId). The worker drops local request state immediately after a successful cancel and remains usable for subsequent requests. - Reconnect resilience (Phases 1–3) for the Rust engine (#245):
- Fail-fast on session death: request workers now immediately drain all in-flight requests with an error on
SessionTerminated/SessionConnectionDowninstead of letting callers hang indefinitely. Workers are markedDeadand restored toHealthyonSessionConnectionUp. - Service re-open before re-subscribe:
recover_active_subscriptions()now re-opens all previously opened services before re-issuing subscriptions after reconnect, fixing a critical gap where recovery could silently fail. - Health-aware dispatch: request pool round-robin skips
Deadworkers; returnsAllWorkersDownimmediately if the entire pool is dead. - Retry with exponential backoff:
RetryPolicyonEngineConfig(retry_max_retries,retry_initial_delay_ms,retry_backoff_factor,retry_max_delay_ms) enables automatic retry of transient request failures. - Recovery limits:
max_recovery_attemptsandrecovery_timeout_mscap subscription recovery to prevent infinite loops. - Lifecycle events:
ConnectionLost,Reconnected, andRecoveryFailedevents emitted to subscription status for observability. - New error variants:
BlpAsyncError::SessionLostandAllWorkersDownmapped to PythonBlpSessionError. - Python surface: all new config fields exposed in
EngineConfig,configure(), andEngine();engine.worker_health()returns per-worker health status.
- Fail-fast on session death: request workers now immediately drain all in-flight requests with an error on
- Multi-server failover via
serverskwarg (#250). Pass a list of(host, port)tuples for automatic Bloomberg SDK failover usingsetServerAddress(host, port, index). Existinghost/portkwargs unchanged for single-server use. - ZFP over leased lines via
zfp_remotekwarg (#255). Set to"8194"or"8196"with TLS credentials to connect via Bloomberg Zero Footprint without a local Terminal. UsesZfpUtil::getOptionsForLeasedLinesfrom the SDK. - Identity entitlement checking (#252):
Identity.is_authorized(service),Identity.has_entitlements(service, eids), andIdentity.seat_type()for B-PIPE multi-user entitlement verification. - Bloomberg SDK logging bridge (#253):
enable_sdk_logging(level)andEngineConfig.sdk_log_levelroute native BLPAPI internal logs intoxbbg-logtracing targetxbbg.sdk. Default is off; registration happens before session start when enabled.
Changed
- Engine Architecture & EngineConfig documentation: README now includes a full reference for all 20+
EngineConfigfields (worker pools, subscription tuning, buffers, validation, auth), an ASCII architecture diagram, and auth mode examples. - API surface updated to v1: README function tables, examples, and Connection Options section now reflect v1 names (
blkp,bport,earnings,convert_ccy,configure(),subscribe/stream, etc.) and remove stale v0.x references (lookupSecurity,exchange_tz,set_format,Formatenum). - Dev setup and contributing guides updated for v1 project structure (
py-xbbg/srcpaths, Astro docs,uv syncdependency-groups).
Fixed
- cargo-deny advisory ignores for unmaintained
unic-*crates (transitive deps ofrustpython-parserviapyo3-stub-gen, build-time only).
Full Changelog: v0.12.2...v1.0.0b7