def __deepcopy__(self, memo): o = TaxonSetLinked.__deepcopy__(self, memo) o.state_alphabets = self.state_alphabets memo[id(self.state_alphabets)] = o.state_alphabets o.default_state_alphabet = self.default_state_alphabet memo[id(self.default_state_alphabet)] = o.default_state_alphabet o._default_symbol_state_map = self._default_symbol_state_map memo[id(self._default_symbol_state_map)] = o._default_symbol_state_map o.character_types = copy.deepcopy(self.character_types, memo) for taxon, cdv in self.taxon_seq_map.items(): otaxon = memo[id(taxon)] ocdv = CharacterDataVector(oid=cdv.oid, label=cdv.label, taxon=otaxon) for cell in cdv: if cell.character_type is not None: character_type = memo[id(cell.character_type)] else: character_type = None ocdv.append(CharacterDataCell(value=cell.value, character_type=character_type)) o.taxon_seq_map[otaxon] = ocdv memo[id(self.taxon_seq_map[taxon])] = o.taxon_seq_map[otaxon] for k, v in self.__dict__.iteritems(): if k not in [ "taxon_set", "_oid", "state_alphabets", "default_state_alphabet", "_default_symbol_state_map", "taxon_seq_map", "character_types", ]: o.__dict__[k] = copy.deepcopy(v, memo) return o
def __deepcopy__(self, memo): o = TaxonSetLinked.__deepcopy__(self, memo) for k, v in self.__dict__.iteritems(): if k not in ["taxon_set", "_oid", "taxon_seq_map"]: o.__dict__[k] = copy.deepcopy(v, memo) for taxon, cdv in self.taxon_seq_map.items(): otaxon = memo[id(taxon)] ocdv = CharacterDataVector(oid=cdv.oid, label=cdv.label, taxon=otaxon) for cell in cdv: if cell.character_type is not None: character_type = memo[id(cell.character_type)] else: character_type = None ocdv.append(CharacterDataCell(value=cell.value, character_type=character_type)) o.taxon_seq_map[otaxon] = ocdv memo[id(self.taxon_seq_map[taxon])] = o.taxon_seq_map[otaxon] return o