File size: 4,740 Bytes
e6dc665
 
 
 
 
 
 
 
97b3ea8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e6dc665
 
 
 
712d61e
e6dc665
 
712d61e
 
 
 
 
 
97b3ea8
 
 
 
 
 
e6dc665
712d61e
97b3ea8
e6dc665
 
712d61e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a9658cc
98d17ba
712d61e
 
 
e6dc665
712d61e
 
 
97b3ea8
 
712d61e
 
 
 
 
e6dc665
 
 
 
712d61e
 
78a22d9
b1f181a
bd6a602
712d61e
a7848ca
712d61e
 
 
 
 
e6dc665
712d61e
 
e6dc665
 
 
 
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import csv
import streamlit as st
import numpy as np
import cv2
from PIL import Image
import optic1
from functions import image_show
import pandas as pd 
from data_func import make_new_data,update,save_and_push
import os
from huggingface_hub import Repository


def pull_read(DATASET_REPO_URL,HF_TOKEN,DATA_FILE):
    
    repo = Repository(
        local_dir="data", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN
        )
    
    with open(DATA_FILE) as csvfile:
        df = pd.read_csv(csvfile) 
        df = pd.DataFrame(df)
    
    return repo, df

@st.cache
def convert_df_to_csv(df):
  # IMPORTANT: Cache the conversion to prevent computation on every rerun
  return df.to_csv().encode('utf-8')  

def screen_scan_main():
    
    col1,col2 = st.columns(2)
    with col1:
        teacher_code = st.text_input("Ogretmen kodu:",key=12)
    with col2:
        exam_code = st.text_input("Sınav Kodu:",key=13,value=10)

    exam_code = int(exam_code)
    teacher_code = str(teacher_code)
    DATA_FILENAME = f"{teacher_code}.csv"
    DATA_FILENAME = str(DATA_FILENAME)
    
    image_file = st.file_uploader(
        "Tarama Yapmak Icin Optigi Yukleyin", type=['jpeg', 'png', 'jpg', 'webp'])
    
    
    if image_file != None:
        col3,col4 = st.columns(2)
        with col3:
            
            if st.button("Tara ve Sonucu Goruntule"):
                repo, repo_df = pull_read(DATASET_REPO_URL = "https://huggingface.co/datasets/mertbozkurt/school_data",
                                      DATA_FILE = os.path.join("data", DATA_FILENAME),
                                      HF_TOKEN = "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")
                repo.git_pull()
                image = Image.open(image_file)
                image = np.array(image.convert('RGB'))
                #(ans_txt,pathImage, save_images= True)
                grading, wrong_ans, student_idFix, resim_list =optic1.optic1(ans_txt1="cevapanahtari/cevapanahtari_ders1.txt",
                                                                             ans_txt2="cevapanahtari/cevapanahtari_ders2.txt",
                                                                             ans_txt3="cevapanahtari/cevapanahtari_ders3.txt",
                                                                             pathImage=image,save_images=False) 
            
                #image_show(resim_list)
                if len(wrong_ans[0]) == 0:
                    wrong_ans[0] = "0"
                wrong_ans_str = ','.join(str(wrong_ans[0]))
                st.write("Notu:",int(grading[0]))
                st.write("Yanlis Yaptigi sorular:",wrong_ans_str)
                st.write("Ogrenci Numarasi:",student_idFix)
        
        with col4:
            if st.button("Tara ve Sonucu Kaydet"):
                repo, repo_df = pull_read(DATASET_REPO_URL = "https://huggingface.co/datasets/mertbozkurt/school_data",
                                      DATA_FILE = os.path.join("data", DATA_FILENAME),
                                      HF_TOKEN = "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")
                repo.git_pull()
                image = Image.open(image_file)
                image = np.array(image.convert('RGB'))
                #(ans_txt,pathImage, save_images= True)
                grading, wrong_ans, student_idFix, resim_list =optic1.optic1(ans_txt1="cevapanahtari/cevapanahtari_ders1.txt",
                                                                             ans_txt2="cevapanahtari/cevapanahtari_ders2.txt",
                                                                             ans_txt3="cevapanahtari/cevapanahtari_ders3.txt",
                                                                             pathImage=image,save_images=False) 
            
                #image_show(resim_list)
                if len(wrong_ans[0]) == 0:
                    wrong_ans[0] = "0"
#
                wrong_ans_str = ','.join(str(wrong_ans[0]))
                new_data = make_new_data(sinav_kodu=exam_code, ogrenci_no=int(student_idFix),
                                     notu=int(grading[0]),yanlislar=str(wrong_ans_str))
            
                #st.dataframe(new_data)
                updated = update(new_data=new_data,ex_df=repo_df)
                #st.dataframe(updated,use_container_width=True)
                save_and_push(dataFrame=updated,repo=repo,fileName=f"data/{DATA_FILENAME}")
            
                st.download_button(label="Tum verileri indirmek icin tiklayin",data=convert_df_to_csv(updated),
                               file_name=f'{teacher_code}.csv',mime='text/csv',)        
            
#python -m streamlit run app.py
if __name__ == '__main__':
    screen_scan_main()