docs: def get_file_object(username, password, utc_start=None, utc_stop=None):
      """Make the connection. Return a file-like object."""
  
      if not utc_start:
          utc_start = datetime.now()
  
      if not utc_stop:
          utc_stop = utc_start + timedelta(days=1)
  
      logging.info("Downloading schedules for username [%s] in range [%s] to "
                   "[%s]." % (username, utc_start, utc_stop))
  
      replacements = {'start_time': utc_start.strftime('%Y-%m-%dT%H:%M:%SZ'), 
                      'stop_time':  utc_stop.strftime('%Y-%m-%dT%H:%M:%SZ')}
      
      soap_message_xml = (soap_message_xml_template % replacements)
  
      authinfo = urllib2.HTTPDigestAuthHandler()
      authinfo.add_password(realm, url, username, password)
  
      try:
          request = urllib2.Request(url, soap_message_xml, request_headers)
          response = urllib2.build_opener(authinfo).open(request)
  
          if response.headers['Content-Encoding'] == 'gzip':
              response = GzipStream(response)
      except:
          logging.exception("Could not acquire connection to Schedules Direct.")
          raise
  
      return response