| | import tkinter as tk
|
| | import tkinter.filedialog as filedialog
|
| | from tkinter import ttk
|
| | import os
|
| | import subprocess
|
| | import json
|
| |
|
| | keyword_entries = []
|
| |
|
| | def browse_folder():
|
| | folder_path = filedialog.askdirectory(
|
| | initialdir="/",
|
| | title="Select a Folder"
|
| | )
|
| | file_path_var.set(folder_path)
|
| |
|
| |
|
| | for filename in os.listdir(folder_path):
|
| | if os.path.splitext(filename)[1].lower() in ('.pdf', '.docx'):
|
| | print(filename)
|
| |
|
| | def generate_textboxes():
|
| | global keyword_entries
|
| |
|
| | category_data = []
|
| |
|
| |
|
| | for category_frame in category_frames:
|
| | category_name = category_var[category_frame].get()
|
| | num_keywords = int(keyword_vars[category_frame].get())
|
| | category_data.append((category_name, num_keywords))
|
| |
|
| |
|
| | clear_existing_textboxes()
|
| |
|
| |
|
| | keyword_entries.clear()
|
| | for i, (category_name, num_keywords) in enumerate(category_data):
|
| | label = tk.Label(root, text=f"{category_name}:")
|
| | label.pack()
|
| | for _ in range(num_keywords):
|
| | entry = tk.Entry(root)
|
| | entry.pack()
|
| | keyword_entries.append(entry)
|
| |
|
| |
|
| | save_button = tk.Button(root, text="Categorize", command=save_to_backup)
|
| | save_button.pack()
|
| |
|
| |
|
| | def save_to_backup():
|
| | global keyword_entries
|
| |
|
| | category_data = {}
|
| |
|
| |
|
| | keyword_start_index = 0
|
| | for i, category_frame in enumerate(category_frames):
|
| | category_name = category_var[category_frame].get()
|
| | num_keywords = int(keyword_vars[category_frame].get())
|
| |
|
| | keywords = keyword_entries[keyword_start_index:keyword_start_index + num_keywords]
|
| | category_data[category_name] = [entry.get() for entry in keywords]
|
| |
|
| | keyword_start_index += num_keywords
|
| |
|
| |
|
| | subprocess.run(["python3", "augmentA.py", json.dumps(category_data)])
|
| |
|
| |
|
| | def clear_existing_textboxes():
|
| | for widget in root.winfo_children():
|
| | if isinstance(widget, tk.Label) or isinstance(widget, tk.Entry):
|
| | widget.destroy()
|
| |
|
| |
|
| | def update_category_dropdowns():
|
| |
|
| | for frame in category_frames:
|
| | frame.destroy()
|
| | category_frames.clear()
|
| |
|
| |
|
| | num_categories = num_categories_var.get()
|
| | for i in range(num_categories):
|
| | frame = tk.Frame(root)
|
| | frame.pack()
|
| | category_frames.append(frame)
|
| |
|
| | tk.Label(frame, text="Category Name:").pack()
|
| | category_var[frame] = tk.StringVar(frame)
|
| | tk.Entry(frame, textvariable=category_var[frame]).pack()
|
| |
|
| | tk.Label(frame, text="Number of Keywords:").pack()
|
| | keyword_vars[frame] = tk.IntVar(frame)
|
| | keyword_options = [1, 2, 3, 4, 5]
|
| | ttk.Combobox(frame, textvariable=keyword_vars[frame],
|
| | values=keyword_options).pack()
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | root = tk.Tk()
|
| | root.title("BuzzMatchTester")
|
| |
|
| |
|
| | file_frame = tk.Frame(root)
|
| | file_frame.pack()
|
| |
|
| | file_path_label = tk.Label(file_frame, text="File Path:")
|
| | file_path_label.pack(side='left')
|
| |
|
| | file_path_var = tk.StringVar(root)
|
| | file_path_entry = tk.Entry(file_frame, textvariable=file_path_var)
|
| | file_path_entry.pack(side='left')
|
| |
|
| | browse_button = tk.Button(file_frame, text="Browse Folder", command=browse_folder)
|
| | browse_button.pack(side='left')
|
| |
|
| |
|
| | num_categories_label = tk.Label(root, text="Number of Categories:")
|
| | num_categories_label.pack()
|
| |
|
| | num_categories_options = [0,1, 2, 3, 4, 5]
|
| | num_categories_var = tk.IntVar(root)
|
| | num_categories_var.set(num_categories_options[0])
|
| | num_categories_dropdown = ttk.Combobox(root, textvariable=num_categories_var,
|
| | values=num_categories_options)
|
| | num_categories_dropdown.pack()
|
| |
|
| | category_frames = []
|
| | category_var = {}
|
| | keyword_vars = {}
|
| |
|
| | update_category_dropdowns()
|
| |
|
| |
|
| |
|
| | generate_button = tk.Button(root, text="Generate Textboxes", command=generate_textboxes)
|
| | generate_button.pack()
|
| |
|
| | num_categories_dropdown.bind("<<ComboboxSelected>>", lambda _: update_category_dropdowns())
|
| |
|
| | root.mainloop()
|
| |
|