def value(self): res = {} for name in self.holders: try: res[name] = self.holders[name].value except ArithmeticError: res[name] = np.nan return SecuritiesValues(res)
def value(self): res = {} for name in self.symbolList: if self._filter[name]: try: res[name] = self.holders[name].value except ArithmeticError: res[name] = np.nan return SecuritiesValues(res)
def __getitem__(self, item): try: return self.holders[item].result() except (TypeError, KeyError) as _: if isinstance(item, tuple): symbolList = set(i.lower() for i in item) pyFinAssert(len(symbolList) == len(item), ValueError, "security name can't be duplicated") res = SecuritiesValues( {s: self.holders[s].result() for s in symbolList} ) return res elif isinstance(item, SecurityValueHolder): return FilteredSecurityValueHolder(self, item) else: raise TypeError("{0} is not a valid index".format(item))
def __getitem__(self, item): try: if self._filter[item]: return self.holders[item].result() else: return np.nan except KeyError: if isinstance(item, tuple): symbolList = set(i.lower() for i in item).intersection(set(filter_flags.index)) # to be corrected pyFinAssert(len(symbolList) == len(item), ValueError, "security name can't be duplicated") res = SecuritiesValues( {s: self.holders[s].result() for s in symbolList} ) return res elif isinstance(item, SecurityValueHolder): return FilteredSecurityValueHolder(self, item) else: raise TypeError("{0} is not a valid index".format(item))