Document
Document
import tkinter as tk
import logging
import os
# Configure logging
logging.basicConfig(filename='ewaste_management.log', level=logging.INFO,
format='%(asctime)s:%(levelname)s:%(message)s')
class EWaste:
self.device_type = device_type
self.hazard_level = hazard_level
self.recycling_options = []
self.recycling_options.append(option)
def to_dict(self):
return {
"device_type": self.device_type,
"hazard_level": self.hazard_level,
"recycling_options": self.recycling_options
}
def display_info(self):
return info
class Society:
def __init__(self):
self.e_waste_list = []
self.e_waste_list.append(e_waste)
def analyze_impact(self):
else:
def average_hazard_level(self):
if not self.e_waste_list:
return 0
if not os.path.exists(filename):
devices = json.load(file)
ewaste.recycling_options = device['recycling_options']
self.add_e_waste(ewaste)
class User:
self.username = username
self.password = password
class UserManager:
def __init__(self):
self.users = {}
self.load_users()
def load_users(self):
try:
user_data = json.load(file)
except FileNotFoundError:
def save_users(self):
if username in self.users:
return False
self.save_users()
return True
def authenticate_user(self, username, password):
user = self.users.get(username)
class EWasteManagerApp:
self.master = master
self.society = Society()
self.user_manager = UserManager()
self.current_user = None
self.setup_ui()
def setup_ui(self):
self.login_frame = ttk.Frame(self.master)
self.login_frame.pack(pady=20)
self.label.grid(row=0, columnspan=2)
self.username_entry = tk.Entry(self.login_frame)
self.username_entry.grid(row=1, column=1)
tk.Label(self.login_frame, text="Password:").grid(row=2, column=0)
self.password_entry.grid(row=2, column=1)
def login(self):
username = self.username_entry.get()
password = self.password_entry.get()
if self.user_manager.authenticate_user(username, password):
self.current_user = username
self.login_frame.pack_forget()
self.setup_management_ui()
else:
def register(self):
username = self.username_entry.get()
password = self.password_entry.get()
if self.user_manager.register_user(username, password):
else:
def setup_management_ui(self):
self.management_frame = ttk.Frame(self.master)
self.management_frame.pack(pady=20)
self.label.pack(pady=10)
self.text_area.pack(padx=10, pady=10)
self.add_button.pack(pady=5)
self.analyze_button.pack(pady=5)
self.save_button.pack(pady=5)
self.load_button.pack(pady=5)
self.average_button.pack(pady=5)
def add_e_waste(self):
if not device_type:
return
return
if option == 'done':
break
e_waste.add_recycling_option(option)
self.society.add_e_waste(e_waste)
def analyze_impact(self):
result = self.society.analyze_impact()
def display_e_waste(self):
self.text_area.config(state='normal')
self.text_area.delete(1.0, tk.END)
info = self.society.display_e_waste()
self.text_area.insert(tk.END, info)
self.text_area.config(state='disabled')
def save_data(self):
if filename:
self.society.save_to_file(filename)
messagebox.showinfo("Success", f"E-waste data saved to {filename}.")
def load_data(self):
if filename:
message