code: def create_sqlite_connection_provider(db_uri):
    
    uri = urlparse.urlparse(db_uri)
    if uri.scheme != 'sqlite':
      raise ValueError('Scheme is not sqlite: ' + db_uri)
    if uri.netloc:
      raise ValueError('Can not connect to SQLite over network: ' + db_uri)
    if uri.path == ':memory:':
      raise ValueError('Memory mode SQLite not supported: ' + db_uri)
    path = os.path.expanduser(uri.path)
    params = _get_connect_params(uri.query)
    # TODO(@jart): Add thread-local pooling.
    return lambda: sqlite3.connect(path, **params)
docs: Returns function that returns SQLite Connection objects.
  
    Args:
      db_uri: A string URI expressing the DB file, e.g. "sqlite:~/tb.db".
  
    Returns:
      A function that returns a new PEP-249 DB Connection, which must be closed,
      each time it is called.
  
    Raises:
      ValueError: If db_uri is not a valid sqlite file URI.