From 8a9609d8ffd227dee322827d440e3f786ba71a80 Mon Sep 17 00:00:00 2001 From: lkrsnik Date: Sun, 2 Feb 2025 11:38:10 +0100 Subject: [PATCH] Fixed deps + Download button error + Order by --- app.py | 37 +++++++++++++++++++----- requirements.txt | 1 + static/js/result.js | 4 +-- templates/result.html | 2 +- translations/en/LC_MESSAGES/messages.mo | Bin 5746 -> 5788 bytes translations/en/LC_MESSAGES/messages.po | 2 +- translations/sl/LC_MESSAGES/messages.mo | Bin 7258 -> 7272 bytes translations/sl/LC_MESSAGES/messages.po | 2 +- 8 files changed, 36 insertions(+), 12 deletions(-) diff --git a/app.py b/app.py index b38e9a1..96941d9 100755 --- a/app.py +++ b/app.py @@ -7,8 +7,10 @@ import random import re import shutil import string +import sys import time from pathlib import Path +from conllu import parse import requests from flask import Flask, render_template, request, send_file, redirect, url_for @@ -131,7 +133,14 @@ def create_app(): for subtree_id in subtree_ids: annodoc += f'# visual-style {subtree_id} bgColor:lightgreen\n' with open(os.path.join('media', result_id, 'annodoc', sentence_id), 'r') as rf: - annodoc += rf.read() + '\n\n' + read_annodoc = rf.read() + sentences = parse(read_annodoc) + + # delete `deps` column + for token in sentences[0]: + token['deps'] = None + annodoc += sentences[0].serialize() + return {'annodoc': annodoc} @app.route('/stark/result//', methods=['GET']) @@ -200,9 +209,13 @@ def create_app(): file_path = os.path.join('media', filename, 'result.tsv') else: file_path = path - f_t = os.path.getmtime(file_path) - c_t = time.time() - file_age_seconds = c_t - f_t + if os.path.exists(file_path): + f_t = os.path.getmtime(file_path) + c_t = time.time() + file_age_seconds = c_t - f_t + else: + # delete empty folders + file_age_seconds = 10000000 if file_age_seconds > DAYS_BEFORE_DELETION * 86400: if os.path.isdir(path): shutil.rmtree(os.path.join('media', filename), ignore_errors=True) @@ -245,10 +258,20 @@ def create_app(): if order_by is not None and order_by in head: sort_id = head.index(order_by) if order_type == 'asc': - # check if a number can be converted to float or int - ordered_content = sorted(content[1:], key=lambda x: -1 * float(x[sort_id]) if x[sort_id].isnumeric() or re.match(r'^-?\d+(?:\.\d+)$', x[sort_id]) is not None and order_by != 'Ratio' else x[sort_id], reverse=True) + def sort_func(x): + if x[sort_id] == 'NaN': + return float('-inf') + return -1 * float(x[sort_id]) if x[sort_id].isnumeric() or re.match(r'^-?\d+(?:\.\d+)$', x[ + sort_id]) is not None else x[sort_id] + ordered_content = sorted(content[1:], key=sort_func, reverse=True) + else: - ordered_content = sorted(content[1:], key=lambda x: -1 * float(x[sort_id]) if x[sort_id].isnumeric() or re.match(r'^-?\d+(?:\.\d+)$', x[sort_id]) is not None and order_by != 'Ratio' else x[sort_id]) + def sort_func(x): + if x[sort_id] == 'NaN': + return float('inf') + return -1 * float(x[sort_id]) if x[sort_id].isnumeric() or re.match(r'^-?\d+(?:\.\d+)$', x[ + sort_id]) is not None else x[sort_id] + ordered_content = sorted(content[1:], key=sort_func) else: ordered_content = content[1:] diff --git a/requirements.txt b/requirements.txt index 04e1df4..2edd9ba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ Flask==3.0.0 requests==2.31.0 flask-babel==4.0.0 stark @ git+https://github.com/clarinsi/STARK@master +conllu==6.0.0 \ No newline at end of file diff --git a/static/js/result.js b/static/js/result.js index 36b0a02..7b6b1f3 100644 --- a/static/js/result.js +++ b/static/js/result.js @@ -47,12 +47,12 @@ $(document).ready(function() { if (grew_url == 'unknown') { $(".grew-link").html("/"); } else { - $(".grew-link").html("" + grew_link_text + ""); + $(".grew-link").html("" + grew_link_text + ""); } if (other_examples == 'unknown') { $(".other-examples").html("/"); } else { - $(".other-examples").html("" + other_examples_text + ""); + $(".other-examples").html("" + other_examples_text + ""); } }); $(".close-visualization").click(function() { diff --git a/templates/result.html b/templates/result.html index d0ccba1..3db4c28 100644 --- a/templates/result.html +++ b/templates/result.html @@ -26,7 +26,7 @@
- + diff --git a/translations/en/LC_MESSAGES/messages.mo b/translations/en/LC_MESSAGES/messages.mo index c776d4565b624273a859d9fa882765033ea42600..7aeb47a2faa9531926dfd7cb5b2495b1e55bc7e3 100644 GIT binary patch delta 1159 zcmYMzT}YEr9LMp0`lPj)I=32O#q5=0A%R%FAju#Q@}dkGCBX=x$x_P|Hib#ijgX^O zkX9HG3L!xVqq_9Mf^L<9RusKlbQuvvH+_HXK;zl@oVVwk|9N?SMDOj-eyHY1&j*o^_~!4URi7&BObH&OkjaWl^1I(&|LZwdXlf;{$-q}nWNU&+)^ z@v~H69-{;)2T>jO;ChU@ax?lUx1lCJf*Y_KdF&KPB_>d7NxE_h6+jv_-UQY#zfF=+ z#~CCdyN_DI0=D5YwqO~v9l&<%!$CZRukkE;%u3eIp#n&gD6nzVgp*i@w^04&G0gn- zgp9Um8O!l4YUM?2#80k0z<%zcyaN?T7wX8ya4X(H^)KK-{Dul(8?(zOYJsiJF3f7; zI2motfb){`igU_2gAMeX!`vFPSIFjAoR>AuY1G{qM(yA=)JkVjM>^-~Um&sBil6 zRg6)g39h1E%%LvXwCnf?HSjz}uz>CO#u;LkeUy)39LKR0S8)Psd0FG$K#g;kgeH5O zbq&u@mtzUFWvf_^Mby^*M%@h`pNb-{MxAv4)!vD^8$GDNF5^xtpzg*yY{WmPyRo;H zPZv)l$UG%e!~kbH#b{s;h-Q?`L+qej&%wULlX#f=?HfxgIJ2pAmglj7_6+7b{muCc pUbsA#8p>by?_ON+zElJ$jPyr(lOq=ssbnURP7Vz&=KP<1{{SVDZOQ-u delta 1112 zcmYMy!An$86vy$Sz8ag+Y*a=h1x3vYV=NbwW?>U$B9xkyg-DCWLIepU2BAho2tmq_ z!iAvFE){Hswk0kMDm4E9rG*$s2)2+wqP{=8(D3Gc-o5X>d(J)gPM-Qzl~~X9UKzhA z|04cX>1zG|)q7?KXr9L)Uc!95i3Qk$2XP1saRf8*4Ql)>2Ji!N*=KHtaRqbC61MI- zwlR+ve~`<9L_LHdRJ#QISb+*yjoBDMF1yUlhs~%p+;Ht%s06xD^YtKstsm2gZ^Jw& zqi3iUyvB1lkG1#{PvbG7c47yf#rOCSw~@Vs)Bu}m5#Xf7?P8{#VkxAmn{USzgGO! zb*#DpYp%V8IupC7aels*InI34$_kO3>^N%0XHW??AjPvQs55cRwOf%X?M@c;*M~7W zbh!H5zyZ|6Pp||>u^#7~TX>RoCDA&t4eM|Q2XPZM?*k^$Jde21WrL{x=cqF=k>Ek4 zn!%%(M3rH#sB~S diff --git a/translations/en/LC_MESSAGES/messages.po b/translations/en/LC_MESSAGES/messages.po index 30f3253..b5cd922 100644 --- a/translations/en/LC_MESSAGES/messages.po +++ b/translations/en/LC_MESSAGES/messages.po @@ -412,7 +412,7 @@ msgstr "Download complete results" #: templates/result.html:29 msgid "Close" -msgstr "" +msgstr "Close Visualization" #: templates/result.html:33 msgid "Visualization" diff --git a/translations/sl/LC_MESSAGES/messages.mo b/translations/sl/LC_MESSAGES/messages.mo index 4f5392ef90d3093fb8be5149033dfeda18ffa83d..c5eddc1f97644f651a964d050fdbbccf689d5de3 100644 GIT binary patch delta 707 zcmXZaJ1m1y6u|ML)mAmFdbD0egES(7L@EvGAR<8w2CGnyM3J!6P(vdmCXrZdjX^>> zNTq{XSu6$-iFiy5!XOM7{SSBg-E+Tt&$-{Z_b&1h$p);cauJD?h^QkN!bx=Crg0mq ziFeVC$LPd77ULPZ@e)0FZ{k<<691qdodh-v8be-5{UvN;!pDa$ti&PIL^0F?%UFu5 zScqFD-a!lTzVQI{AQ{wsd8D?S8?RCGKA{yqy(tkFgD)m@qlGFB=*3>_G%jKr@ga8N z4UVI|?0?-1>i#{{&K%(|=CKB?w6_uKF@b$ZNjcH}S1`ChP4I}?qBpbP1IZy47U>2b z1~6pee$;(qsGXQH&SIE&4mqo&F^E~zAG^XHOu6a1-t{0h<0!UZ0tYaSVSL68tl=Uj za2VGygAdrwy|tpNN@T4-q#GBA^E{j!Hq!<_^S7w=-fKmQv?<>V^ik<=F%$>tV{1Z9 d7|os9Hk_W|N<5i}Eyk0v>G=FoE?QFO{srn`N0I;l delta 692 zcmXZaK`4V^7{Kv|nHgrEu^EQ7kff%xTALgc2X2T`C>IAgIyikTySOa}MLUR-ozysR zagdaf69>&f9L7;oB=LWEYkj}>dH21~^M23!7UTEv!;r&vib&im(ttzQjT7j?HDd~! zi8rtk_tA|xti~hs;2GB8wTTO85x-&pzfkM>m{fz7*nbJznea2wg-w`5O*DyGU=iza z1uM`taT?2sw~X7U8_A-s%ON%8*m!}O_ZA)aY}q0;42n$X!V-31In|OFG0tNj@ecOm zCC=f8`G4B?zkU<7GrKs3Ic&jqjG#rES8)I-B?mTxMh2&-8@NGj&4YR230W&86T5gh zL>xp-5JO!zirR@O;|#`#XOTTh2E(|A`eEmoK>LS*o^^u$cj7Si;1Z5t24i@KQLN=4 z7jO{QF^dHZb8fx(jj1wn1VxsKb6lJ}253Wo`76|VkF6qA+LRXtda2%!pM3Jr%jV}Z QHDNS=;!L~q