Services and Enums
xbbg.services
Section titled “xbbg.services”Bloomberg service definitions and request parameters.
Enum definitions (Service, Operation, ExtractorHint, Format, OutputMode) are
generated from defs/bloomberg.toml into _services_gen.py. This module
re-exports them and provides the hand-written :class:RequestParams dataclass.
Example::
from xbbg import Service, Operation, RequestParams
params = RequestParams( service=Service.REFDATA, operation=Operation.REFERENCE_DATA, securities=[“AAPL US Equity”], fields=[“PX_LAST”], )
RequestParams Objects
Section titled “RequestParams Objects”@dataclassclass RequestParams()Validated request parameters for the Bloomberg API.
This dataclass holds all possible parameters for Bloomberg requests. Not all parameters are used for all request types - the Python layer validates that required parameters are present for each operation.
The Rust layer handles default extractor resolution via
RequestParams::with_defaults(), so Python only passes an explicit
extractor when the caller overrides it.
Attributes:
service- Bloomberg service URI (e.g.,"//blp/refdata").operation- Request operation name (e.g.,"ReferenceDataRequest").request_operation- Actual Bloomberg operation name when usingOperation.RAW_REQUESTas the low-level escape hatch.securities- List of security identifiers (for multi-security requests).security- Single security identifier (for intraday requests).fields- List of field names to retrieve.overrides- List of (field, value) tuples for field overrides.elements- List of (name, value) tuples for generic request elements (BQL, bsrch).start_date- Start date for historical requests. Accepts ISO 8601 /YYYYMMDDstring,"today",datetime.date,datetime.datetime, orpd.Timestamp.end_date- End date for historical requests. Same accepted shapes asstart_date.start_datetime- Start datetime for intraday requests. Accepts ISO 8601 string (with or without tz),datetime.datetime(naive or tz-aware), orpd.Timestamp. Naive values userequest_tz.end_datetime- End datetime for intraday requests. Same accepted shapes asstart_datetime.request_tz- How naive intraday datetimes are interpreted before the API call (UTC,local,exchange,NY/LN/…, reference ticker, or IANA).output_tz- Relabel Arrowtimeto this zone (same instants; handled in Rust).event_type- Event type for intraday bars (TRADE, BID, ASK, etc.).event_types- Event types for intraday ticks (TRADE, BID, ASK, etc.).interval- Bar interval in minutes for intraday bars.options- Additional Bloomberg options as (key, value) tuples.field_types- Manual type overrides for fields (for issue168).output- Output format (arrow or json).extractor- Override the auto-detected extractor hint. WhenNonethe Rust layer picks the correct extractor for the operation.format- Output format (LONG, LONG_TYPED, LONG_WITH_METADATA).include_security_errors- When True for ReferenceData requests, include__SECURITY_ERROR__rows for securities that failed.validate_fields- Optional per-request override for field validation.Trueforces strict validation,Falsedisables it, andNone(default) follows engine configuration.
__post_init__
Section titled “__post_init__”def __post_init__() -> NoneConvert enums to strings and set defaults.
validate
Section titled “validate”def validate() -> NoneValidate parameters for the given operation.
Raises:
BlpValidationError- If required parameters are missing or invalid.
to_dict
Section titled “to_dict”def to_dict() -> dict[str, object]Convert to dictionary for passing to Rust.
Only non-None values are included. When extractor is None
the key is omitted so the Rust layer can apply its own default via
RequestParams::with_defaults().
Returns:
Dictionary suitable for Rust consumption.