docs: def updateItem(self,
                     itemParameters,
                     clearEmptyFields=False,
                     data=None,
                     metadata=None,
                     text=None,
                     serviceUrl=None,
                     multipart=False):
          """
          updates an item's properties using the ItemParameter class.
  
          Inputs:
             itemParameters - property class to update
             clearEmptyFields - boolean, cleans up empty values
             data - updates the file property of the service like a .sd file
             metadata - this is an xml file that contains metadata information
             text - The text content for the item to be updated.
             serviceUrl - this is a service url endpoint.
             multipart - this is a boolean value that means the file will be
                broken up into smaller pieces and uploaded.
          """
          thumbnail = None
          largeThumbnail = None
          files = {}
          params = {
              "f": "json",
  
          }
          if clearEmptyFields:
              params["clearEmptyFields"] = clearEmptyFields
          if serviceUrl is not None:
              params['url'] = serviceUrl
          if text is not None:
              params['text'] = text
          if isinstance(itemParameters, ItemParameter) == False:
              raise AttributeError("itemParameters must be of type parameter.ItemParameter")
          keys_to_delete = ['id', 'owner', 'size', 'numComments',
                            'numRatings', 'avgRating', 'numViews' ,
                            'overwrite']
          dictItem = itemParameters.value
          for key in keys_to_delete:
              if key in dictItem:
                  del dictItem[key]
  
          for key in dictItem:
              if key == "thumbnail":
                  files['thumbnail'] = dictItem['thumbnail']
              elif key == "largeThumbnail":
                  files['largeThumbnail'] = dictItem['largeThumbnail']
              elif key == "metadata":
                  metadata = dictItem['metadata']
                  if os.path.basename(metadata) != 'metadata.xml':
                      tempxmlfile = os.path.join(tempfile.gettempdir(), "metadata.xml")
                      if os.path.isfile(tempxmlfile) == True:
                          os.remove(tempxmlfile)
                      import shutil
                      shutil.copy(metadata, tempxmlfile)
  
                      metadata = tempxmlfile
                  files['metadata'] = dictItem['metadata']
              else:
                  params[key] = dictItem[key]
          if data is not None:
              files['file'] = data
          if metadata and os.path.isfile(metadata):
              files['metadata'] = metadata
          url = "%s/update" % self.root
          if multipart:
              itemID = self.id
              params['multipart'] = True
              params['fileName'] = os.path.basename(data)
              res = self._post(url=url,
                               param_dict=params,
                               securityHandler=self._securityHandler,
                               proxy_url=self._proxy_url,
                               proxy_port=self._proxy_port)
              itemPartJSON = self.addByPart(filePath=data)
              res = self.commit(wait=True, additionalParams=\
                                {'type' : self.type })
  
          else:
              res = self._post(url=url,
                   param_dict=params,
                   files=files,
                   securityHandler=self._securityHandler,
                   proxy_url=self._proxy_url,
                   proxy_port=self._proxy_port,
                   force_form_post=True)
          self.__init()
          return self