comparison env/lib/python3.7/site-packages/galaxy/util/sqlite.py @ 2:6af9afd405e9 draft

"planemo upload commit 0a63dd5f4d38a1f6944587f52a8cd79874177fc1"
author shellac
date Thu, 14 May 2020 14:56:58 -0400
parents 26e78fe6e8c4
children
comparison
equal deleted inserted replaced
1:75ca89e9b81c 2:6af9afd405e9
1 import re
2 import sqlite3
3
4 try:
5 import sqlparse
6
7 def is_read_only_query(query):
8 statements = sqlparse.parse(query)
9 for statement in statements:
10 if statement.get_type() != "SELECT":
11 return False
12 return True
13
14 except ImportError:
15 # Without sqlparse we use a very weak regex check
16 def is_read_only_query(query):
17 if re.match("select ", query, re.IGNORECASE):
18 if re.search("^([^\"]|\"[^\"]*\")*?;", query) or re.search("^([^\']|\'[^\']*\')*?;", query):
19 return False
20 else:
21 return True
22 return False
23
24
25 def connect(path):
26 connection = sqlite3.connect(path)
27 connection.row_factory = sqlite3.Row
28 return connection