Example #1
0
 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
Example #2
0
 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