Commit 8de60985 authored by Loïc Chapron's avatar Loïc Chapron

upgrade pages and compact code

parent 333eb348
[server]
maxUploadSize = 20
[browser]
gatherUsageStats = false
[[pages]]
path = "Welcome.py"
name = "Home"
icon = ":house:"
[[pages]]
name = "API"
icon = ":globe_with_meridians:"
is_section = true
[[pages]]
path = "pages/HAL_To_GarganText.py"
name = "HAL To GarganText"
[[pages]]
path = "pages/Isidore_To_GarganText.py"
name = "Isidore To GarganText"
[[pages]]
path = "pages/Zotero_To_GarganText.py"
name = "Zotero To GarganText"
[[pages]]
name = "Convert"
icon = ":twisted_rightwards_arrows:"
is_section = true
[[pages]]
path = "pages/Istex_To_GarganText.py"
name = "Istex To GarganText"
[[pages]]
path = "pages/Pubmed_To_GarganText.py"
name = "Pubmed To GarganText"
[[pages]]
path = "pages/Ris_To_GarganText.py"
name = "Ris To GarganText"
[[pages]]
path = "pages/GarganText_Json_To_TSV.py"
name = "GarganText Json To TSV"
in_section = false
[[pages]]
path = "pages/Merge_Term_GarganText.py"
name = "Merge Term GarganText"
......@@ -4,6 +4,7 @@
```shell
pip install streamlit
pip install st-pages
```
## Start Project
......
......@@ -4,59 +4,10 @@ Loïc Chapron
"""
import streamlit as st
import pandas as pd
import src.basic as tmp
st.set_page_config(
page_title="Hello"
)
# Load Banner image
st.image('img/gargantool_banner.jpg')
# Reduce size on border
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
# Load the language file
def load_bundle(lang):
df = pd.read_csv("lang/text_Welcome.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
# Load the language file
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
# Test if it's first connection on page or else if the last page was this one
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'Welcome'
elif st.session_state.general_session_page != 'Welcome':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'Welcome'
# Delete every key who aren't fron this file
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
# select the lang
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
tmp.base("Welcome")
st.write(st.session_state.general_text_dict['title'])
......
......@@ -2,11 +2,11 @@ locale,key,value
fr,title,"**HAL vers GarganText**"
en,title,"**HAL To GarganText**"
fr,text,"HAL est une base de document scientifique en ligne et libre d'accès contenant plus d'un million de document."
fr,text,"HAL est une base de document scientifique en ligne et libre d'accès contenant plus d'un million de documents."
en,text,"HAL is an online and free access scientific document database containing more than a million documents"
fr,keyword,"Mots clés"
en,keyword,"Key word"
en,keyword,"Keys words"
fr,lang,"Langue des textes (si possible)"
en,lang,"Text languages (if possible)"
......@@ -17,13 +17,13 @@ en,submit,"Submit"
fr,load_api,"Chargement de l'api..."
en,load_api,"Loading API..."
fr,overload_api,"L'API est surchargé, relancer la requête dans quelques secondes"
fr,overload_api,"L'API est surchargée, relancez la requête dans quelques secondes"
en,overload'api,"The API is overloaded, please retry the request in a few seconds"
fr,nb_doc,"Nombres de documents : "
en,nb_doc,"Numbers of documents : "
fr,perform1,"Pour des raisons de performence, on limit à "
fr,perform1,"Pour des raisons de performance, on limite à "
fr,perform2," le nombre de document maximum"
en,perform1,"For performance reasons, we limit to "
en,perform2," the maximum number of documents"
......@@ -31,5 +31,5 @@ en,perform2," the maximum number of documents"
fr,nb_taken,"Nombres de documents à prendre"
en,nb_taken,"Number of documents to take"
fr,createTSV,"Création du fichier TSV (Cela peut prendre quelque minutes)"
fr,createTSV,"Création du fichier TSV (Cela peut prendre quelques minutes)"
en,createTSV,"Creation of the TSV file (It may take a while)"
......@@ -3,7 +3,7 @@ fr,title,"**Isidore vers GarganText**"
en,title,"**Isidore To GarganText**"
fr,keyword,"Mots clés"
en,keyword,"Key word"
en,keyword,"Keys words"
fr,lang,"Langue des textes (si possible)"
en,lang,"Text languages (if possible)"
......@@ -14,21 +14,21 @@ en,submit,"Submit"
fr,load_api,"Chargement de l'api..."
en,load_api,"Loading API..."
fr,overload_api,"L'API est surchargé, relancer la requête dans quelques secondes"
fr,overload_api,"L'API est surchargée, relancez la requête dans quelques secondes"
en,overload'api,"The API is overloaded, please retry the request in a few seconds"
fr,nb_doc,"Nombres de documents : "
en,nb_doc,"Numbers of documents : "
fr,perform1,"Pour des raisons de performence, on limit à "
fr,perform2," le nombre de document maximum"
fr,perform1,"Pour des raisons de performance, on limite à "
fr,perform2,", le nombre de document maximum"
en,perform1,"For performance reasons, we limit to "
en,perform2," the maximum number of documents"
en,perform2,", the maximum number of documents"
fr,nb_taken,"Nombres de documents à prendre"
en,nb_taken,"Number of documents to take"
fr,createTSV,"Création du fichier TSV (Cela peut prendre quelque minutes)"
fr,createTSV,"Création du fichier TSV (Cela peut prendre quelques minutes)"
en,createTSV,"Creation of the TSV file (It may take a while)"
fr,doc_abstract1,"Il y a "
......
locale,key,value
fr,title,"Fusionne Deux Liste de Terme de GarganText"
en,title,"Input Two Term File From GarganText"
fr,title,"Fusionne Deux Fichiers de Terme de GarganText"
en,title,"Input Two Term Files From GarganText"
fr,file,"Choisir un fichier"
en,file,"Choose a file"
fr,new_file,"Télécharge ton fichier fusionner:"
fr,new_file,"Télécharge ton fichier fusionné:"
en,new_file,"Download your merge file:"
\ No newline at end of file
......@@ -15,7 +15,7 @@ fr,denied,"L'acèss au compte n'est pas publique, pour la mettre publique: https
en,denied,"Account access is not public, to make it public: https://www.zotero.org/settings/privacy"
fr,add_doc,"*Ajouter les documents que vous voulez mettre dans le TSV*"
en,add_doc,"*Add the document that tou want in the TSV*"
en,add_doc,"*Add the document that you want in the TSV*"
fr,select_all,"Select All"
en,select_all,"Select All"
......@@ -30,10 +30,10 @@ fr,n_page,"Page Suivante"
en,n_page,"Next Page"
fr,add_collect,"**Selectionner une collection** vous pouvez en choisir plusieurs"
en,add_collect,"**Chose a collection** you can choose multiple one"
en,add_collect,"**Choose a collection** you can choose multiple one"
fr,chose_collect,"Choisie une collection"
en,chose_collect,"Chose a collection"
en,chose_collect,"Choose a collection"
fr,fileTSV1,"Le TSV contient "
fr,fileTSV2," documents"
......
......@@ -5,48 +5,10 @@ Loïc Chapron
import streamlit as st
import pandas as pd
import src.basic as tmp
st.image('img/gargantool_banner.jpg')
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
def load_bundle(lang):
df = pd.read_csv("lang/text_GarganTextJsonToTSV.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'GarganTextJsonToTSV'
elif st.session_state.general_session_page != 'GarganTextJsonToTSV':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'GarganTextJsonToTSV'
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
tmp.base("GarganTextJsonToTSV")
def getText(corpusJson):
......
......@@ -6,52 +6,13 @@ import requests as req
import json
import streamlit as st
from datetime import datetime
import pandas as pd
import src.basic as tmp
tmp.base("HALToGarganText")
limit = 500
limitItems = 10000
st.image('img/gargantool_banner.jpg')
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
def load_bundle(lang):
df = pd.read_csv("lang/text_HALToGarganText.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'HALToGarganText'
elif st.session_state.general_session_page != 'HALToGarganText':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'HALToGarganText'
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
def loadApiHALNbFile(search, lang):
url = 'http://api.archives-ouvertes.fr/search/?q=' + search + '&rows=5&fl=title_s,' + lang + '_title_s,source_s,publicationDate_s,authFullName_s,' + lang + '_abstract_s,abstract_s&fq=language_s:' + lang
resp = req.get(url)
......
......@@ -6,50 +6,11 @@ Loïc Chapron
import streamlit as st
import requests as req
import json
import pandas as pd
import time
import src.basic as tmp
st.image('img/gargantool_banner.jpg')
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
def load_bundle(lang):
df = pd.read_csv("lang/text_IsidoreToGarganText.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'IsidoreToGarganText'
elif st.session_state.general_session_page != 'IsidoreToGarganText':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'IsidoreToGarganText'
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
tmp.base("IsidoreToGarganText")
numberReplies = 500 # Dont' exceed 1 000
limitItems = 5000 # Can't be superior of 10 times numberReplies
......
......@@ -8,47 +8,10 @@ import pandas as pd
import datetime
import zipfile
import streamlit as st
import src.basic as tmp
st.image('img/gargantool_banner.jpg')
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
def load_bundle(lang):
df = pd.read_csv("lang/text_IstexToGarganText.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'IstexToGarganText'
elif st.session_state.general_session_page != 'IstexToGarganText':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'IstexToGarganText'
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
tmp.base("IstexToGarganText")
def read_zip(zip_file):
......
......@@ -6,48 +6,10 @@ Loïc Chapron
import streamlit as st
from datetime import datetime
import pandas as pd
import src.basic as tmp
st.image('img/gargantool_banner.jpg')
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
def load_bundle(lang):
df = pd.read_csv("lang/text_MergeTermGarganText.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'MergeTermGarganText'
elif st.session_state.general_session_page != 'MergeTermGarganText':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'MergeTermGarganText'
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
tmp.base("MergeTermGarganText")
def tmp(file1, file2):
......
......@@ -4,50 +4,13 @@ Loïc Chapron
"""
import streamlit as st
import pandas as pd
import nbib
import re
import calendar
import src.basic as tmp
st.image('img/gargantool_banner.jpg')
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
def load_bundle(lang):
df = pd.read_csv("lang/text_PubMedToGarganText.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'PubMedToGarganText'
elif st.session_state.general_session_page != 'PubMedToGarganText':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'PubMedToGarganText'
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
tmp.base("PubMedToGarganText")
......
......@@ -4,49 +4,12 @@ Loïc Chapron
"""
import streamlit as st
import pandas as pd
import rispy
from datetime import date
import src.basic as tmp
st.image('img/gargantool_banner.jpg')
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
def load_bundle(lang):
df = pd.read_csv("lang/text_RisToGarganText.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'RisToGarganText'
elif st.session_state.general_session_page != 'RisToGarganText':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'RisToGarganText'
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
tmp.base("RisToGarganText")
......@@ -65,10 +28,10 @@ def read_file(file):
source = ""
if 'abstract' in keys :
abstract = doc['abstract']
abstract = doc['abstract'].replace('\t', '').replace('"', '')
else :
abstract = ""
title = doc['title']
title = doc['title'].replace('\t', '').replace('"', '')
month = '1'
day = '1'
......@@ -107,4 +70,5 @@ if file:
except Exception as e:
st.write(st.session_state.general_text_dict['error'])
print(e)
file.close()
\ No newline at end of file
file.close()
......@@ -7,52 +7,15 @@ import streamlit as st
import requests as req
import json
from datetime import date
import pandas as pd
import src.basic as tmp
tmp.base("ZoteroToGarganText")
sizepage = 10
limit = 50 # This value cannot exceed 100 !
st.set_page_config(page_title="Zotero to GarganText")
st.image('img/gargantool_banner.jpg')
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
def load_bundle(lang):
df = pd.read_csv("lang/text_ZoteroToGarganText.csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = 'ZoteroToGarganText'
elif st.session_state.general_session_page != 'ZoteroToGarganText':
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = 'ZoteroToGarganText'
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
def getAllItems(id):
txt, nb = loadApiItems(12093554, 0)
......
import streamlit as st
import pandas as pd
from st_pages import show_pages_from_config, add_indentation
def base(page):
show_pages_from_config()
add_indentation()
# Load Banner image
st.image('img/gargantool_banner.jpg')
# Reduce size on border
st.markdown("""
<style>
.block-container {
padding-top: 2rem;
padding-bottom: 0rem;
padding-left: 1rem;
padding-right: 1rem;
}
</style>
""", unsafe_allow_html=True)
# Load the language file
def load_bundle(lang):
df = pd.read_csv("lang/text_" + page + ".csv")
df = df.query(f"locale == '{lang}'")
tmp = {}
for i in range(len(df)):
tmp[df.key.to_list()[i]] = df.value.to_list()[i]
return tmp
# Load the language file
def update_lang():
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
# Test if it's first connection on page or else if the last page was this one
if 'general_session_page' not in st.session_state.keys():
st.session_state.general_lang_dict = {'Français' : 'fr', 'English': 'en'}
st.session_state.general_text_dict = load_bundle('fr')
st.session_state.general_language = 'Français'
st.session_state.general_session_page = page
elif st.session_state.general_session_page != page:
st.session_state.general_text_dict = load_bundle(st.session_state.general_lang_dict[st.session_state.general_language])
st.session_state.general_session_page = page
# Delete every key who aren't fron this file
for key in st.session_state.keys():
if 'general_' not in key:
del st.session_state[key]
# select the lang
st.selectbox('Langue', list(st.session_state.general_lang_dict.keys()), list(st.session_state.general_lang_dict.keys()).index(st.session_state.general_language),key='general_language', on_change=update_lang)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment