def __decompose(self): cs = self.data.split(self.separator1) deco = [] for c in cs: comp = c.split(self.separator2) N = len(comp) delta = 1 ccy = None und = None undcode = None if N == 3: delta = self._safe_delta(comp[0]) if delta == None: self.errors.append(c) continue ccy, undcode = self.get_ccy_und(comp[1:]) elif N == 2: delta = self._safe_delta(comp[0]) if delta == None: delta = 1 else: comp = comp[1:] ccy, undcode = self.get_ccy_und(comp) elif N == 1: undcode = comp[0] else: raise ValueError('could not understand decomposition %s' % self.data) try: und = self.underlying(undcode) except: deco.append(badAtom(delta, ccy, ccy, undcode)) else: undccy = countryccy(und.country) if ccy == None: ccy = undccy if ccy == None: deco.append(badAtom(delta, ccy, ccy, undcode)) else: deco.append(linearAtom(delta, ccy, undccy, und)) return deco
def __decompose(self): cs = self.data.split(self.separator1) deco = [] for c in cs: comp = c.split(self.separator2) N = len(comp) delta = 1 ccy = None und = None undcode = None if N == 3: delta = self._safe_delta(comp[0]) if delta == None: self.errors.append(c) continue ccy, undcode = self.get_ccy_und(comp[1:]) elif N == 2: delta = self._safe_delta(comp[0]) if delta == None: delta = 1 else: comp = comp[1:] ccy, undcode = self.get_ccy_und(comp) elif N == 1: undcode = comp[0] else: raise ValueError('could not understand decomposition %s' % self.data) try: und = self.underlying(undcode) except: deco.append(badAtom(delta,ccy,ccy,undcode)) else: undccy = countryccy(und.country) if ccy == None: ccy = undccy if ccy == None: deco.append(badAtom(delta,ccy,ccy,undcode)) else: deco.append(linearAtom(delta,ccy,undccy,und)) return deco
def defaultccy(self): return geo.countryccy(self.country)