code: def track_from_file(file_object, filetype, timeout=DEFAULT_ASYNC_TIMEOUT, force_upload=False):
      
      if not force_upload:
          try:
              # Check if this file has already been uploaded.
              # This is much faster than uploading.
              md5 = hashlib.md5(file_object.read()).hexdigest()
              return track_from_md5(md5)
          except util.EchoNestAPIError:
              # Fall through to do a fresh upload.
              pass
  
      file_object.seek(0)
      return _track_from_data(file_object.read(), filetype, timeout)
docs: Create a track object from a file-like object.
  
      NOTE: Does not create the detailed analysis for the Track. Call
      Track.get_analysis() for that.
  
      Args:
          file_object: a file-like Python object
          filetype: the file type. Supported types include mp3, ogg, wav, m4a, mp4, au
          force_upload: skip the MD5 shortcut path, force an upload+analysis
      Example:
          >>> f = open("Miaow-01-Tempered-song.mp3")
          >>> t = track.track_from_file(f, 'mp3')
          >>> t
          < Track >
          >>>