# %% import sqlite3 import pandas as pd import dtale import unicodedata #from simple_query_test_pandas import ricercaforme, ricercalemmi, ricercaformelemmi, ricercalemmiforme, interpreter #from test_occorrenzario_pandas import findtexts, findcontexts, findbib, contestimultipli, get_tables_occ #funzione di definizione sottocorpus def definiscisottocorpus(path, table, conditions=None): conn = sqlite3.connect(f"file:{path}/bibliografia/BiblioTLIO.db?mode=ro", uri=True) c = conn.cursor() query = "SELECT sigla FROM datibib WHERE 1" if conditions: for key, value in conditions.items(): if key == "[Anno iniziale]": query += f" AND {key} >= {value}" print(query) elif key == "[Anno finale]": query += f" AND {key} <= {value}" print(query) else: if isinstance(value, list): query += " AND {} IN ({})".format(key, ",".join(["'{}'".format(v) for v in value])) else: query += " AND {}='{}'".format(key, value) print(query) c.execute(query) results = c.fetchall() conn.close() sottocorpus = [result[0] for result in results] return sottocorpus # %% path = "/Users/leonardocanova/Library/CloudStorage/OneDrive-ConsiglioNazionaledelleRicerche/TIGRO/Ricerche/db/first_db" conditions = {"IQ": "TS", "[Titolo Abbreviato]": ["Simintendi, a. 1333 (prat.)", "Albertano volg., 1275 (fior.)"]} chronoconditions = {"[Anno iniziale]": 1275, "[Anno finale]": 1276} conditions2 = {"[Autore]": ["Dante Alighieri", "Boccaccio, Giovanni"]} siglas = definiscisottocorpus(path,"datibib", conditions2) print(siglas) # %%