docs: def extend_primary_key(self, new_attributes):
          """
          Create a new heading in which the primary key also includes new_attributes.
          :param new_attributes: new attributes to be added to the primary key.
          """
          try:  # check for missing attributes
              raise DataJointError('Attribute `%s` is not found' % next(a for a in new_attributes if a not in self.names))
          except StopIteration:
              return Heading(dict(v.todict(), in_key=v.in_key or v.name in new_attributes)
                             for v in self.attributes.values())