def _parse_and_add_from_stream(self, stream, schema, exclude_trees=False, exclude_chars=False, **kwargs): # exclude_trees = kwargs.pop("exclude_trees", False) # exclude_chars = kwargs.pop("exclude_chars", False) taxon_namespace = taxonmodel.process_kwargs_dict_for_taxon_namespace(kwargs, None) if (self.attached_taxon_namespace is not None and taxon_namespace is not None and self.attached_taxon_namespace is not taxon_namespace): raise ValueError("DataSet has attached TaxonNamespace that is not the same as ``taxon_namespace``") if self.attached_taxon_namespace is not None and taxon_namespace is None: taxon_namespace = self.attached_taxon_namespace label = kwargs.pop("label", None) reader = dataio.get_reader(schema, **kwargs) n_tns = len(self.taxon_namespaces) n_tree_lists = len(self.tree_lists) n_char_matrices = len(self.char_matrices) reader.read_dataset( stream=stream, dataset=self, taxon_namespace=taxon_namespace, exclude_trees=exclude_trees, exclude_chars=exclude_chars, state_alphabet_factory=charstatemodel.StateAlphabet, ) n_tns2 = len(self.taxon_namespaces) n_tree_lists2 = len(self.tree_lists) n_char_matrices2 = len(self.char_matrices) return (n_tns2-n_tns, n_tree_lists2-n_tree_lists, n_char_matrices2-n_char_matrices)
def _parse_and_create_from_stream(cls, stream, schema, **kwargs): """ Constructs a new |DataSet| object and populates it with data from file-like object ``stream``. """ exclude_trees = kwargs.pop("exclude_trees", False) exclude_chars = kwargs.pop("exclude_chars", False) taxon_namespace = taxonmodel.process_kwargs_dict_for_taxon_namespace(kwargs, None) label = kwargs.pop("label", None) dataset = DataSet(label=label) if taxon_namespace is not None: dataset.attached_taxon_namespace = taxon_namespace reader = dataio.get_reader(schema, **kwargs) reader.read_dataset( stream=stream, dataset=dataset, taxon_namespace=taxon_namespace, exclude_trees=exclude_trees, exclude_chars=exclude_chars, state_alphabet_factory=charstatemodel.StateAlphabet, ) return dataset