File size: 1,876 Bytes
939b332
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import time

import streamlit as st

from queries.process_gsm import process_gsm_data
from queries.process_lte import process_lte_data
from queries.process_wcdma import process_wcdma_data
from utils.utils_vars import UtilsVars

st.title("Database processing")

uploaded_file = st.file_uploader("Upload updated dump file", type="xlsb")


def process_database(process_func, database_type):
    if uploaded_file is not None:
        start_time = time.time()
        process_func(uploaded_file)
        execution_time = time.time() - start_time
        st.write(
            f"{database_type} database is generated. Execution time: {execution_time:.2f} seconds"
        )
        download_button(database_type)


def download_button(database_type):
    if database_type == "2G":
        data = UtilsVars.final_gsm_database
        file_name = f"2G database_{time.time()}.xlsx"
    elif database_type == "3G":
        data = UtilsVars.final_wcdma_database
        file_name = f"3G database_{time.time()}.xlsx"
    elif database_type == "LTE":
        data = UtilsVars.final_lte_database
        file_name = f"LTE database_{time.time()}.xlsx"
    st.download_button(
        label=f"Download {database_type} Database File",
        data=data,
        file_name=file_name,
        mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    )


col1, col2, col3 = st.columns(3)
if uploaded_file is not None:
    with col1:
        st.button(
            "Generate 2G Database",
            on_click=lambda: process_database(process_gsm_data, "2G"),
        )
    with col2:
        st.button(
            "Generate 3G Database",
            on_click=lambda: process_database(process_wcdma_data, "3G"),
        )
    with col3:
        st.button(
            "Generate LTE Database",
            on_click=lambda: process_database(process_lte_data, "LTE"),
        )