docs: def upload_dataset(self, dataset, dataset_name, schema_path=None):
          """ Upload to the repository an entire dataset from a local path
  
          :param dataset: the local path of the dataset
          :param dataset_name: the name you want to assign to the dataset remotely
          :return: None
          """
  
          url = self.address + "/datasets/" + dataset_name + "/uploadSample"
          header = self.__check_authentication()
  
          fields = dict()
          remove = False
          if isinstance(dataset, GDataframe):
              tmp_path = TempFileManager.get_new_dataset_tmp_folder()
              dataset.to_dataset_files(local_path=tmp_path)
              dataset = tmp_path
              remove = True
  
          # a path is provided
          if not isinstance(dataset, str):
              raise TypeError("Dataset can be a path or a GDataframe. {} was passed".format(type(dataset)))
  
          file_paths, schema_path_found = Loader.get_file_paths(dataset)
          if schema_path is None:
              schema_path = schema_path_found
          fields['schema'] = (os.path.basename(schema_path), open(schema_path, "rb"), 'application/octet-stream')
          for i, file in enumerate(file_paths):
              fields["file"+str(i + 1)] = (os.path.basename(file), open(file, "rb"), 'application/octet-stream')
  
          encoder = MultipartEncoder(fields)
          callback = create_callback(encoder, len(fields))
  
          m_encoder = MultipartEncoderMonitor(encoder, callback)
          header['Content-Type'] = m_encoder.content_type
  
          self.logger.debug("Uploading dataset at {} with name {}".format(dataset, dataset_name))
  
          response = requests.post(url, data=m_encoder,
                                   headers=header)
  
          # closing files
          for fn in fields.keys():
              _, f, _ = fields[fn]
              f.close()
  
          if response.status_code != 200:
              raise ValueError("Code {}: {}".format(response.status_code, response.content))
  
          if remove:
              TempFileManager.delete_tmp_dataset(dataset)