code: def interp(self, *args):
          
          sql = ""
          bind = ()
  
          def _append_sql(sql, part):
              "Handle whitespace when appending properly."
              if len(sql) == 0:
                  return part
              elif sql[-1] == ' ':
                  return sql + part
              else:
                  return sql + ' ' + part
  
          for arg in args:
              if type(arg) is str:
                  # Strings are treated as raw SQL.
                  sql = _append_sql(sql, arg)
              elif isinstance(arg, Esc):
                  # If this is an instance of Esc, ask the object
                  # how to represent the data given the context.
                  arg_sql, arg_bind = arg.to_string(sql)
                  sql = _append_sql(sql, arg_sql)
                  bind += arg_bind
              else:
                  # Any argument given that is not a string or Esc
                  # is an error.
                  arg_sql, arg_bind = self.esc(arg).to_string(sql)
                  sql = _append_sql(sql, arg_sql)
                  bind += arg_bind
  
          return (sql, bind)
docs: This method takes a list of SQL snippets and returns a SQL statement and
          a list of bind variables to be passed to the DB API's execute method.