comparison planemo/lib/python3.7/site-packages/galaxy/util/sqlite.py @ 1:56ad4e20f292 draft

"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author guerler
date Fri, 31 Jul 2020 00:32:28 -0400
parents
children
comparison
equal deleted inserted replaced
0:d30785e31577 1:56ad4e20f292
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