docs: def upload(self, data, **kwargs):
          """Upload a file to the attachment property.
  
          When providing a :class:`matplotlib.figure.Figure` object as data, the figure is uploaded as PNG.
          For this, `matplotlib`_ should be installed.
  
          :param filename: File path
          :type filename: basestring
          :raises APIError: When unable to upload the file to KE-chain
          :raises OSError: When the path to the file is incorrect or file could not be found
  
          .. _matplotlib: https://matplotlib.org/
          """
          try:
              import matplotlib.figure
  
              if isinstance(data, matplotlib.figure.Figure):
                  self._upload_plot(data, **kwargs)
                  return
          except ImportError:
              pass
  
          if isinstance(data, str):
              with open(data, 'rb') as fp:
                  self._upload(fp)
          else:
              self._upload_json(data, **kwargs)