Browse Source

Base sottocorpus function working on test

Leonardo Canova 1 year ago
parent
commit
4afda5f7eb
1 changed files with 16 additions and 6 deletions
  1. 16 6
      test_suite/test/test_sottocorpora.py

+ 16 - 6
test_suite/test/test_sottocorpora.py

@@ -7,17 +7,24 @@ from simple_query_test_pandas import ricercaforme, ricercalemmi, ricercaformelem
 from test_occorrenzario_pandas import findtexts, findcontexts, findbib, contestimultipli, get_tables_occ
 
 #funzione di definizione sottocorpus
-def definiscisottocorpus (path, table, conditions=None):
+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 {} WHERE 1".format(table)
+    query = "SELECT sigla FROM datibib WHERE 1"
     if conditions:
         for key, value in conditions.items():
-            if isinstance(value, list):
-                query += " AND {} = '{}'".format(key, "' OR '".join([str(v) for v in value]))
+            if key == "[Anno iniziale]":
+                query += f" AND {key} >= {value}"
+                print(query)
+            elif key == "[Anno finale]":
+                query += f" AND {key} <= {value}"
                 print(query)
             else:
-                query += " AND {}='{}'".format(key, value)
+                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()
@@ -26,7 +33,10 @@ def definiscisottocorpus (path, table, conditions=None):
 
 # %%
 path = "/Users/leonardocanova/Library/CloudStorage/OneDrive-ConsiglioNazionaledelleRicerche/TIGRO/Ricerche/db/first_db"
-siglas = definiscisottocorpus(path,"datibib", {"IQ": "TS", "[Titolo Abbreviato]": ["Albertano volg., 1275 (fior.)", "Simintendi, a. 1333 (prat.)"]})
+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)
 
 # %%