code: def upload_files(self, dataset_key, files, files_metadata={}, **kwargs):
          
          owner_id, dataset_id = parse_dataset_key(dataset_key)
          try:
              self._uploads_api.upload_files(owner_id, dataset_id, files,
                                             **kwargs)
              if files_metadata:
                  self.update_dataset(dataset_key, files=files_metadata)
          except _swagger.rest.ApiException as e:
              raise RestApiError(cause=e)
docs: Upload dataset files
  
          :param dataset_key: Dataset identifier, in the form of owner/id
          :type dataset_key: str
          :param files: The list of names/paths for files stored in the
          local filesystem
          :type files: list of str
          :param expand_archives: Boolean value to indicate files should be
          expanded upon upload
          :type expand_archive: bool optional
          :param files_metadata: Dict containing the name of files and metadata
              Uses file name as a dict containing File description, labels and
              source URLs to add or update
          :type files_metadata: dict optional
          :raises RestApiException: If a server error occurs
  
          Examples
          --------
          >>> import datadotworld as dw
          >>> api_client = dw.api_client()
          >>> api_client.upload_files(
          ...     'username/test-dataset',
          ...     ['/my/local/example.csv'])  # doctest: +SKIP