docs: def with_variants(self, variants: Union['Variant', List['Variant']]) -> 'CentralDogma':
          """Create a new entity with the given variants.
  
          :param variants: An optional variant or list of variants
  
          Example Usage:
  
          >>> app = Protein(name='APP', namespace='HGNC')
          >>> ab42 = app.with_variants([Fragment(start=672, stop=713)])
          >>> assert 'p(HGNC:APP, frag(672_713))' == ab42.as_bel()
          """
          return self.__class__(
              namespace=self.namespace,
              name=self.name,
              identifier=self.identifier,
              variants=variants,
          )