code: def update_dataset(self, dataset_key, **kwargs):
          
          request = self.__build_dataset_obj(
              lambda: _swagger.DatasetPatchRequest(),
              lambda name, url, expand_archive, description, labels:
              _swagger.FileCreateOrUpdateRequest(
                  name=name,
                  source=_swagger.FileSourceCreateOrUpdateRequest(
                      url=url,
                      expand_archive=expand_archive)
                  if url is not None else None,
                  description=description,
                  labels=labels),
              kwargs)
          owner_id, dataset_id = parse_dataset_key(dataset_key)
          try:
              self._datasets_api.patch_dataset(owner_id, dataset_id, request)
          except _swagger.rest.ApiException as e:
              raise RestApiError(cause=e)
docs: Update an existing dataset
  
          :param description: Dataset description
          :type description: str, optional
          :param summary: Dataset summary markdown
          :type summary: str, optional
          :param tags: Dataset tags
          :type tags: list, optional
          :param license: Dataset license
          :type license: {'Public Domain', 'PDDL', 'CC-0', 'CC-BY', 'ODC-BY',
              'CC-BY-SA', 'ODC-ODbL', 'CC BY-NC', 'CC BY-NC-SA', 'Other'}
          :param visibility: Dataset visibility
          :type visibility: {'OPEN', 'PRIVATE'}, optional
          :param files: File names and source URLs to add or update
          :type files: dict, optional
          :param dataset_key: Dataset identifier, in the form of owner/id
          :type dataset_key: str
          :raises RestApiException: If a server error occurs
  
          Examples
          --------
          >>> import datadotworld as dw
          >>> api_client = dw.api_client()
          >>> api_client.update_dataset(
          ...    'username/test-dataset',
          ...    tags=['demo', 'datadotworld'])  # doctest: +SKIP