|
@@ -20,7 +20,7 @@ class queryHandlerBasicSqlite(QueryHandlerAbstract):
|
|
|
|
|
|
self.dbEncoded = True if dataConfig.get("db_encoded") is True else False
|
|
|
self.textsEncoded = True if dataConfig.get("texts_encoded") is True else False
|
|
|
- self.keyring = None
|
|
|
+ self.keyRing = None
|
|
|
if self.dbEncoded or self.textsEncoded:
|
|
|
keyPath = self.dbPath + 'keys/'
|
|
|
self.keyRing = dc.keyRing(keyPath, self.dbEncoded, self.textsEncoded)
|
|
@@ -70,9 +70,9 @@ class queryHandlerBasicSqlite(QueryHandlerAbstract):
|
|
|
file1.seek(4*minChar)
|
|
|
cont = file1.read(maxChar-minChar)
|
|
|
|
|
|
- if self.textsEncoded and self.keyRing.get(sigla) is not None:
|
|
|
- key = self.keyRing.get(sigla)
|
|
|
- cont = dc.decodeTextByKey(cont, key)
|
|
|
+ if self.textsEncoded and self.keyRing.textKeys.get(sigla) is not None:
|
|
|
+ key = self.keyRing.textKeys.get(sigla)
|
|
|
+ cont = dc.decodeTextByKey(cont, key, minChar)
|
|
|
|
|
|
return cont
|
|
|
|
|
@@ -82,18 +82,20 @@ class queryHandlerBasicSqlite(QueryHandlerAbstract):
|
|
|
try:
|
|
|
data = queryData['data']
|
|
|
dataNorm = queryData['dataNorm']
|
|
|
+ data = [dc.db_encode(self.keyRing.vettSpec, datum) for datum in data]
|
|
|
+ dataNorm = [dc.db_encode(self.keyRing.vettSpec, datum) for datum in dataNorm]
|
|
|
+ queryData['data'] = data
|
|
|
+ queryData['dataNorm'] = dataNorm
|
|
|
except KeyError as err:
|
|
|
raise KeyError('Missing required data for query type ' + type + ': ' + str(err))
|
|
|
- data = [dc.db_encode(self.keyRing.vettSpec, datum) for datum in data]
|
|
|
- dataNorm = [dc.db_encode(self.keyRing.vettSpec, datum) for datum in dataNorm]
|
|
|
- queryData['data'] = data
|
|
|
- queryData['dataNorm'] = dataNorm
|
|
|
+
|
|
|
+ return queryData
|
|
|
|
|
|
def db_results_decode(self, result):
|
|
|
for row in result:
|
|
|
- for key, value in row:
|
|
|
+ for key, value in row.items():
|
|
|
if isColumnToDecode(key):
|
|
|
- value = dc.db_decode(self.keyRing.vettSpec, value)
|
|
|
+ row[key] = dc.db_decode(self.keyRing.vettSpec, value)
|
|
|
return result
|
|
|
|
|
|
def db_results_decode_pandas(self, df):
|
|
@@ -121,11 +123,11 @@ def prepareQueryString(queryData):
|
|
|
dataNorm = queryData['dataNorm']
|
|
|
except KeyError as err:
|
|
|
raise KeyError('Missing required data for query type ' + type + ': ' + str(err))
|
|
|
- joinedQueryData = " OR spec LIKE ".join(data)
|
|
|
+ joinedQueryData = "'" + "' OR spec LIKE '".join(data) + "'"
|
|
|
if len(dataNorm)==0:
|
|
|
return f"SELECT spec AS forma, nocc AS occ, cod FROM form WHERE spec LIKE {joinedQueryData} ORDER BY idfor"
|
|
|
else:
|
|
|
- joinedQueryDataNorm = " OR norm LIKE ".join(dataNorm)
|
|
|
+ joinedQueryDataNorm = "'" + "' OR norm LIKE '".join(dataNorm) + "'"
|
|
|
return f"SELECT DISTINCT spec AS forma, nocc AS occ, cod FROM form WHERE (spec LIKE {joinedQueryData}) OR (norm LIKE {joinedQueryDataNorm}) ORDER BY idfor"
|
|
|
|
|
|
|
|
@@ -135,11 +137,11 @@ def prepareQueryString(queryData):
|
|
|
dataNorm = queryData['dataNorm']
|
|
|
except KeyError as err:
|
|
|
raise KeyError('Missing required data for query type ' + type + ': ' + str(err))
|
|
|
- joinedQueryData = " OR spec LIKE ".join(data)
|
|
|
+ joinedQueryData = "'" + "' OR spec LIKE '".join(data) + "'"
|
|
|
if len(dataNorm)==0:
|
|
|
return f"SELECT spec AS lemma, cat AS cat_gr, omo AS disambiguatore, nocc AS occ, cod FROM lem WHERE spec LIKE {joinedQueryData} ORDER BY idlem"
|
|
|
else:
|
|
|
- joinedQueryDataNorm = " OR norm LIKE ".join(dataNorm)
|
|
|
+ joinedQueryDataNorm = "'" + "' OR norm LIKE '".join(dataNorm) + "'"
|
|
|
return f"SELECT DISTINCT spec AS lemma, cat AS cat_gr, omo AS disambiguatore, nocc AS occ, cod FROM lem WHERE (spec LIKE {joinedQueryData}) OR (norm LIKE {joinedQueryDataNorm}) ORDER BY idlem"
|
|
|
|
|
|
|
|
@@ -149,12 +151,12 @@ def prepareQueryString(queryData):
|
|
|
dataNorm = queryData['dataNorm']
|
|
|
except KeyError as err:
|
|
|
raise KeyError('Missing required data for query type ' + type + ': ' + str(err))
|
|
|
- joinedQueryData = " OR form.spec LIKE ".join(data)
|
|
|
+ joinedQueryData = "'" + "' OR form.spec LIKE '".join(data) + "'"
|
|
|
if len(dataNorm)==0:
|
|
|
return f"SELECT lem.spec AS lemma, lem.cat AS cat_gr, form.spec AS forma, lem.omo AS disambiguatore, pfl.nocc AS occ, lem.cod FROM pfl INNER JOIN form ON form.cod = pfl.forma INNER JOIN lem ON lem.cod != 0 AND lem.cod = pfl.lemma WHERE lem.spec LIKE {joinedQueryData} ORDER BY lem.idlem"
|
|
|
else:
|
|
|
- joinedQueryData = " OR lem.spec LIKE ".join(data)
|
|
|
- joinedQueryDataNorm = " OR lem.norm LIKE ".join(dataNorm)
|
|
|
+ joinedQueryData = "'" + "' OR lem.spec LIKE '".join(data) + "'"
|
|
|
+ joinedQueryDataNorm = "'" + "' OR lem.norm LIKE '".join(dataNorm) + "'"
|
|
|
return f"SELECT DISTINCT lem.spec AS lemma, lem.cat AS cat_gr, form.spec AS forma, lem.omo AS disambiguatore, pfl.nocc AS occ, lem.cod FROM pfl INNER JOIN form ON form.cod = pfl.forma INNER JOIN lem ON lem.cod = pfl.lemma WHERE (lem.spec LIKE {joinedQueryData}) OR (lem.norm LIKE {joinedQueryDataNorm}) ORDER BY lem.idlem"
|
|
|
|
|
|
|
|
@@ -164,11 +166,11 @@ def prepareQueryString(queryData):
|
|
|
dataNorm = queryData['dataNorm']
|
|
|
except KeyError as err:
|
|
|
raise KeyError('Missing required data for query type ' + type + ': ' + str(err))
|
|
|
- joinedQueryData = " OR form.spec LIKE ".join(data)
|
|
|
+ joinedQueryData = "'" + "' OR form.spec LIKE '".join(data) + "'"
|
|
|
if len(dataNorm)==0:
|
|
|
return f"SELECT form.spec AS forma, lem.spec AS lemma, lem.cat AS cat_gr, lem.omo AS disambiguatore, pfl.nocc AS occ, form.cod FROM pfl INNER JOIN form ON form.cod = pfl.forma INNER JOIN lem ON lem.cod = pfl.lemma WHERE form.spec LIKE {joinedQueryData} ORDER BY form.idfor"
|
|
|
else:
|
|
|
- joinedQueryDataNorm = " OR form.norm LIKE ".join(dataNorm)
|
|
|
+ joinedQueryDataNorm = "'" + "' OR form.norm LIKE '".join(dataNorm) + "'"
|
|
|
return f"SELECT DISTINCT form.spec AS forma, lem.spec AS lemma, lem.cat AS cat_gr, lem.omo AS disambiguatore, pfl.nocc AS occ, form.cod FROM pfl INNER JOIN form ON form.cod = pfl.forma INNER JOIN lem ON lem.cod = pfl.lemma WHERE (form.spec LIKE {joinedQueryData}) OR (form.norm LIKE {joinedQueryDataNorm}) ORDER BY form.idfor"
|
|
|
|
|
|
|