Leonardo Canova před 1 rokem
rodič
revize
8238cc543f

+ 8 - 6
flask_be/engine/test/test_contesti_singoli.py

@@ -127,19 +127,21 @@ def singlefindbib(contexts, path):
     contexts['Rig_completo'] = rif2
     contexts.pag = contexts.pag.astype(int)
     chrono = contexts.sort_values(by=['Anno iniziale', 'Rif_organico', 'pag'])   
-    if 'nota' and 'testo associato' in chrono:
+    print(chrono)
+    if 'nota' in chrono.columns and 'testo associato' in chrono.columns:
         cols = ['links','Titolo Abbreviato', 'Rif_organico', 'tipostanza', 'stanza', 'verso', 'pag', 'riga', 'IQ', 'lemma', 'cat_gr', 'disambiguatore', 'contesto', 'nota', 'testo associato']
-    elif 'nota' in chrono:
+    elif 'nota' in chrono.columns:
         cols = ['links','Titolo Abbreviato', 'Rif_organico', 'tipostanza', 'stanza', 'verso', 'pag', 'riga', 'IQ', 'lemma', 'cat_gr', 'disambiguatore', 'contesto', 'nota']
-    elif 'testo associato' in chrono:
-        cols = ['links','Titolo Abbreviato', 'Rif_organico', 'tipostanza', 'stanza', 'verso', 'pag', 'riga', 'IQ', 'lemma', 'cat_gr', 'disambiguatore', 'contesto', 'nota', 'testo associato']
+    elif 'testo associato' in chrono.columns:
+        cols = ['links','Titolo Abbreviato', 'Rif_organico', 'tipostanza', 'stanza', 'verso', 'pag', 'riga', 'IQ', 'lemma', 'cat_gr', 'disambiguatore', 'contesto', 'testo associato']
     else:
         cols = ['links','Titolo Abbreviato', 'Rif_organico', 'tipostanza', 'stanza', 'verso', 'pag', 'riga', 'IQ', 'lemma', 'cat_gr', 'disambiguatore', 'contesto']
+    print(cols)
     clean_df = chrono[cols].reset_index()
     return clean_df
 
 # %%
-parola = "divelle"
+parola = "filius"
 path = "/Users/leonardocanova/Library/CloudStorage/OneDrive-ConsiglioNazionaledelleRicerche/TIGRO/Ricerche/flask_be"
 # tipo di ricerca (0 per forme, 1 per lemmi, 2 per lemmi con opzione "mostra occorrenze non lemmatizzate")
 type= 0
@@ -147,7 +149,7 @@ listOcc = ["occ00001", "occ00002", "occ00003"]
 search=ricercaforme(interpreter(parola), path, 0, 0)
 textlist=findtexts(type, search, listOcc, path)
 contexts = findcontexts(textlist, 30, 0, listOcc, path)
-context = singlecontexts(contexts, 0, 0, 0, 4, listOcc, path)
+context = singlecontexts(contexts, 0, 30, 0, 0, listOcc, path)
 links = findlinks(context, path)
 bibliocontext = singlefindbib(links, path)
 dtale.show(bibliocontext)

+ 43 - 0
flask_be/engine/test/test_sottocorpora.py

@@ -0,0 +1,43 @@
+# %%
+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
+
+#%% funzione di definizione sottocorpora
+def create_subcorpus_table(db_path, table_name, columns, filters):
+    # Connect to the database
+    conn = sqlite3.connect(f"file:{db_path}/db/bibliografia/BiblioTLIO.db?mode=ro", uri=True)
+    
+    # Create a temporary table to hold the subcorpus
+    cur = conn.cursor()
+    cur.execute(f"CREATE TEMPORARY TABLE {table_name} ({', '.join(columns)})")
+    
+    # Build the SQL query to select the rows to include in the subcorpus
+    where_clause = " AND ".join([f"{col} = {' OR '.join(map(str, values))}" for col, values in filters.items()])
+    query = f"INSERT INTO {table_name} SELECT * FROM datibib WHERE {where_clause}"
+    print (query)
+    # Execute the query to insert the selected rows into the temporary table
+    cur.execute(query)
+    
+    # Commit the changes and close the connection
+    conn.commit()
+    conn.close()
+
+path = "/Users/leonardocanova/Library/CloudStorage/OneDrive-ConsiglioNazionaledelleRicerche/TIGRO/Ricerche/flask_be"
+filters = {"Sigla": ["dk"]}
+columns = ["Sigla", "Autore", "Titolo", "[Titolo Abbreviato]", "Edizione", "Curatore", "[Area generica]", "[Area specifica]", "IQ", "Genere", "Tipo", "Forma", "[Anno iniziale]", "[Anno finale]", "[Data descrittiva]", "Collocazione interna"]
+
+# Call the function to create the subcorpus table
+create_subcorpus_table(path, "my_subcorpus", columns, filters)
+
+# Use the subcorpus table in a query
+conn = sqlite3.connect(f"file:{path}/db/test1.db?mode=ro", uri=True)
+cur = conn.cursor()
+cur.execute("SELECT * FROM my_subcorpus")
+rows = cur.fetchall()
+for row in rows:
+    print(row)
+# %%