Closed benlester closed 8 years ago
LocalTerminal.get_reference_data() fails to download the INSIDER_HOLDING field.
For example:
from tia.bbg import LocalTerminal insider_holdings = LocalTerminal.get_reference_data('AAPL US Equity', 'INSIDER_HOLDING')
results in:
--------------------------------------------------------------------------- IndexOutOfRangeException Traceback (most recent call last) <ipython-input-15-97d8edcd6c8a> in <module>() ----> 1 insider_holdings = LocalTerminal.get_reference_data('AAPL US Equity', 'INSIDER_HOLDING', ignore_field_error=True ) C:\Users\Bloomberg\Anaconda\lib\site-packages\tia\bbg\v3api.pyc in get_reference_data(self, sids, flds, ignore_security_ error, ignore_field_error, **overrides) 671 req = ReferenceDataRequest(sids, flds, ignore_security_error=ignore_security_error, 672 ignore_field_error=ignore_field_error, **overrides) --> 673 return self.execute(req) 674 675 def get_intraday_tick(self, sids, events=['TRADE'], start=None, end=None, include_condition_codes=None, C:\Users\Bloomberg\Anaconda\lib\site-packages\tia\bbg\v3api.pyc in execute(self, request) 649 evt = session.nextEvent(500) 650 if evt.eventType() == blpapi.Event.RESPONSE: --> 651 request.on_event(evt, is_final=True) 652 break 653 elif evt.eventType() == blpapi.Event.PARTIAL_RESPONSE: C:\Users\Bloomberg\Anaconda\lib\site-packages\tia\bbg\v3api.pyc in on_event(self, evt, is_final) 454 self.security_errors.append(error) 455 else: --> 456 self.on_security_node(node) 457 458 C:\Users\Bloomberg\Anaconda\lib\site-packages\tia\bbg\v3api.pyc in on_security_node(self, node) 441 sid = XmlHelper.get_child_value(node, 'security') 442 farr = node.getElement('fieldData') --> 443 fdata = XmlHelper.get_child_values(farr, self.fields) 444 assert len(fdata) == len(self.fields), 'field length must match data length' 445 self.response.on_security_data(sid, dict(zip(self.fields, fdata))) C:\Users\Bloomberg\Anaconda\lib\site-packages\tia\bbg\v3api.pyc in get_child_values(parent, names) 116 for name in names: 117 if parent.hasElement(name): --> 118 vals.append(XmlHelper.as_value(parent.getElement(name))) 119 else: 120 vals.append(np.nan) C:\Users\Bloomberg\Anaconda\lib\site-packages\tia\bbg\v3api.pyc in as_value(ele) 95 raise NotImplementedError('CHOICE data type needs implemented') 96 elif dtype == 15: # SEQUENCE ---> 97 return XmlHelper.get_sequence_value(ele) 98 else: 99 raise NotImplementedError('Unexpected data type %s. Check documentation' % dtype) C:\Users\Bloomberg\Anaconda\lib\site-packages\tia\bbg\v3api.pyc in get_sequence_value(node) 61 for cidx in range(row.numElements()): 62 col = row.getElement(cidx) ---> 63 data[str(col.name())].append(XmlHelper.as_value(col)) 64 return pd.DataFrame(data, columns=cols) 65 C:\Users\Bloomberg\Anaconda\lib\site-packages\tia\bbg\v3api.pyc in as_value(ele) 81 return str(val) 82 elif dtype == 10: # Date ---> 83 v = ele.getValue() 84 return datetime(year=v.year, month=v.month, day=v.day) if v else np.nan 85 elif dtype == 11: # Time C:\Users\Bloomberg\AppData\Roaming\Python\Python27\site-packages\blpapi\element.pyc in getValue(self, index) 486 valueGetter = _ELEMENT_VALUE_GETTER.get(datatype, 487 Element.getValueAsString) --> 488 return valueGetter(self, index) 489 490 def values(self): C:\Users\Bloomberg\AppData\Roaming\Python\Python27\site-packages\blpapi\element.pyc in getValueAsDatetime(self, index) 417 self.__assertIsValid() 418 res = internals.blpapi_Element_getValueAsDatetime(self.__handle, index) --> 419 _ExceptionUtil.raiseOnError(res[0]) 420 return _DatetimeUtil.convertToNative(res[1]) 421 C:\Users\Bloomberg\AppData\Roaming\Python\Python27\site-packages\blpapi\exception.pyc in raiseOnError(errorCode, descrip tion) 98 def raiseOnError(errorCode, description=None): 99 if errorCode: --> 100 _ExceptionUtil.raiseException(errorCode, description) 101 102 __copyright__ = """ C:\Users\Bloomberg\AppData\Roaming\Python\Python27\site-packages\blpapi\exception.pyc in raiseException(errorCode, descr iption) 93 description = "Unknown" 94 errorClass = _ExceptionUtil.__getErrorClass(errorCode) ---> 95 raise errorClass(description, errorCode) 96 97 @staticmethod IndexOutOfRangeException: Attempt to access an empty scalar element 'Filing Date' (0x0005000b)
Any ideas?
This issue was fixed a while back but I never performed a release. I have released 0.3 to pypi now or replace tia/bbg/v3api.py with the latest version.
LocalTerminal.get_reference_data() fails to download the INSIDER_HOLDING field.
For example:
results in:
Any ideas?