code: def analyze(self, handle, filename):
          
          # multipart post files.
          files = {"file": (filename, handle)}
  
          # ensure the handle is at offset 0.
          handle.seek(0)
  
          # add submission options
          data = {
              #FIXME: These may need to change, see docs page 36
              'options': '{"application":"0","timeout":"500","priority":"0","profiles":["%s"],"analysistype":"0","force":"true","prefetch":"1"}' % self.profile,
          }
  
          response = self._request("/submissions", method='POST', params=data, files=files)
  
          try:
              if response.status_code == 200:
                  # good response
                  try:
                      return response.json()['ID']
                  except TypeError:
                      return response.json()[0]['ID']
              else:
                  raise sandboxapi.SandboxError("api error in analyze ({u}): {r}".format(u=response.url, r=response.content))
          except (ValueError, KeyError) as e:
              raise sandboxapi.SandboxError("error in analyze: {e}".format(e=e))
docs: Submit a file for analysis.
  
          :type  handle:   File handle
          :param handle:   Handle to file to upload for analysis.
          :type  filename: str
          :param filename: File name.
  
          :rtype:  str
          :return: File ID as a string