comparison env/lib/python3.7/site-packages/galaxy/util/sqlite.py @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:26e78fe6e8c4
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