code: def clone(self, **kw):
          
          names = 'project_name version py_version platform location precedence'
          for attr in names.split():
              kw.setdefault(attr, getattr(self, attr, None))
          kw.setdefault('metadata', self._provider)
          return self.__class__(**kw)
docs: Copy this distribution, substituting in any changed keyword args