Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.util.sqlite
import re
import sqlite3
try:
    import sqlparse
    def is_read_only_query(query):
        statements = sqlparse.parse(query)
        for statement in statements:
            if statement.get_type() != "SELECT":
                return False
        return True
except ImportError:
    # Without sqlparse we use a very weak regex check
[docs]    def is_read_only_query(query):
        if re.match("select ", query, re.IGNORECASE):
            if re.search('^([^"]|"[^"]*")*?;', query) or re.search("^([^']|'[^']*')*?;", query):
                return False
            else:
                return True
        return False
[docs]def connect(path):
    connection = sqlite3.connect(path)
    connection.row_factory = sqlite3.Row
    return connection