docs: def from_corpus(cls, corpus):
          """
          Create a new modifiable corpus from any other CorpusView.
          This for example can be used to create a independent modifiable corpus from a subview.
  
          Args:
              corpus (CorpusView): The corpus to create a copy from.
  
          Returns:
              Corpus: A new corpus with the same data as the given one.
          """
  
          ds = Corpus()
  
          # Tracks
          tracks = copy.deepcopy(list(corpus.tracks.values()))
          track_mapping = ds.import_tracks(tracks)
  
          # Issuers
          issuers = copy.deepcopy(list(corpus.issuers.values()))
          issuer_mapping = ds.import_issuers(issuers)
  
          # Utterances, with replacing changed track- and issuer-ids
          utterances = copy.deepcopy(list(corpus.utterances.values()))
          for utterance in utterances:
              utterance.track = track_mapping[utterance.track.idx]
  
              if utterance.issuer is not None:
                  utterance.issuer = issuer_mapping[utterance.issuer.idx]
  
          ds.import_utterances(utterances)
  
          # Subviews
          subviews = copy.deepcopy(corpus.subviews)
          for subview_idx, subview in subviews.items():
              ds.import_subview(subview_idx, subview)
  
          # Feat-Containers
          for feat_container_idx, feature_container in corpus.feature_containers.items():
              ds.new_feature_container(feat_container_idx, feature_container.path)
  
          return ds