-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Description
Hi,
i am trying to get calendar data but get an error.
This is my code :
from blp import blp
import pandas as pd
# Lancer la requête Bloomberg BQL
start = '-5d'
end = '0d'
countries = ['US', 'FR', 'EZ', 'DE']
# convertir en chaîne compatible BQL
country_str = "[" + ",".join([f'"{c}"' for c in countries]) + "]"
query = f"""
GET(Calendar) FOR ({country_str})
WITH(Dates=Range({start}, {end}), relevancy=VERY_HIGH, VIEW=Extended)
"""
bquery = blp.BlpQuery().start()
df = bquery.bql(query)
df
this is the error message I get:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[4], line 17
12 query = f"""
13 GET(Calendar) FOR ({country_str})
14 WITH(Dates=Range({start}, {end}), relevancy=VERY_HIGH, VIEW=Extended)
15 """
16 bquery = blp.BlpQuery().start()
---> 17 df = bquery.bql(query)
19 df
File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:876, in BlpQuery.bql(self, expression, overrides, options)
866 query = create_bql_query(expression, overrides, options)
868 bql_parser = BlpParser(
869 processor_steps=[
870 BlpParser._clean_bql_response,
(...) 873 ]
874 )
--> 876 df = self.query(query, bql_parser, self.collect_to_bql)
878 df = df[["id", "field", "secondary_name", "secondary_value", "value"]]
880 df = df.rename(columns={"id": "security"})
File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:648, in BlpQuery.query(self, request_data, parse, collector, timeout)
646 res = itertools.chain.from_iterable(res) # type: ignore
647 if collector:
--> 648 res = collector(res)
649 return res
File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:888, in BlpQuery.collect_to_bql(self, responses)
886 data = []
887 fields = {"secondary_name", "secondary_value", "field", "id", "value"}
--> 888 for field in responses:
889 field_df = pandas.DataFrame(field)
891 id_vars = ["field", "id", "value"]
File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:645, in <genexpr>(.0)
643 request = self.create_request(request_data)
644 self.send_request(request, data_queue)
--> 645 res = (parse(data, request_data) for data in self.get_response(data_queue, timeout))
646 res = itertools.chain.from_iterable(res) # type: ignore
647 if collector:
File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:1413, in BlpParser.__call__(self, response, request_data)
1300 """A default parser to parse dictionary representation of response.
1301
1302 Parses data response to a generator of dictionaries or raises a TypeError if the response type is unknown.
(...) 1410
1411 """
1412 for processor in self._processor_steps:
-> 1413 response = processor(response, request_data)
1415 rtype = list(response["message"]["element"].keys())[0]
1416 if rtype == "ReferenceDataResponse":
File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:1211, in BlpParser._validate_response_error(response, request)
1209 rtype = list(response["message"]["element"].keys())[0]
1210 if "responseError" in response["message"]["element"][rtype]:
-> 1211 raise TypeError(f"Response contains responseError\nresponse: {response}\nrequest: {request}")
1212 return response
TypeError: Response contains responseError
response: {'eventType': 5, 'eventTypeName': 'blpapi.Event.RESPONSE', 'messageNumber': 0, 'message': {'fragmentType': 0, 'correlationIds': [44], 'messageType': 'result', 'timeReceived': Timestamp('2025-11-06 09:11:12.987586+0000', tz='UTC'), 'element': {'BQLResponse': {'results': None, 'universeTransparency': None, 'ordering': None, 'responseTiming': None, 'dotString': None, 'versionInfo': None, 'clientContext': {'appName': '', 'clientRequestId': None, 'timestamp': None, 'extraMarkers': []}, 'screenCounts': None, 'responseError': 'Error occurred during request processing.'}}}}
request: {'sendQuery': {'expression': '\nGET(Calendar) FOR (["US","FR","EZ","DE"]) \nWITH(Dates=Range(-5d, 0d), relevancy=VERY_HIGH, VIEW=Extended)\n'}}
Even when i treid a simple code as this I get an error message:
from blp import blp
import pandas as pd
bquery = blp.BlpQuery().start()
df = bquery.bql("get(px_last) for(['IBM US Equity', 'AAPL US Equity'])")
df
Thx for your help
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels