I am really sorry, I uploaded a wrong python file. Here is the correct file
2010/1/27 Mallikarjun <mallik.v.ar...@gmail.com> > Dear friends, > I am newbie to Python + pygtk + Glade and recently wrote a simple password > strength checker app. > Since this is my first app/program, can someone review my code (just over > 150 lines) and help me improve my programming capabilities > > Thank you > Mallikarjun > >
''' Created on 25-Jan-2010 @author: mallikarjun ''' #!/usr/bin/python import gtk import sys class PassChecker: def on_check_button_toggled(self, button): if self.pass_entry.get_visibility(): self.pass_entry.set_visibility(False) else: self.pass_entry.set_visibility(True) def on_guidelines_button_clicked(self, button): message = "Here are some guidelines to be followed while choosing password.\n\ 1) Don't keep your personal informartion as password like your mobile number, son/daughter name, per name and so on.\n\ 2) Don't keep passwords of length lesser than 8\n\ 3) Don't repeat word or letters in passwords like aaabbb\n\ 4) Use passwords mixed with upper-case, lower-case, digits, special-characters" dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, message) dialog.run() dialog.destroy() def on_pass_entry_changed(self, text_entry): password = self.pass_entry.get_text() strength = self.password_strength_checker(password) if strength >= 0.0 and strength <= 0.20: strength_in_str = "Very Week" elif strength > 0.20 and strength <= 0.40: strength_in_str = "Week" elif strength > 0.40 and strength <= 0.60: strength_in_str = "Medium" elif strength > 0.60 and strength <= 0.80: strength_in_str = "Strong" else: strength_in_str = "Very Strong" self.progressbar.set_fraction(strength) self.progressbar.set_text(strength_in_str) def on_about_menu_item_activate(self, menuitem): about_dialog = gtk.AboutDialog() authors = ["Mallikarjun <mallikar...@thegeekbox.com>"] about_dialog.set_destroy_with_parent(True) about_dialog.set_authors(authors) about_dialog.set_name("PyPassChecker") about_dialog.set_version("0.1") about_dialog.set_website("http://thegeekbox.com") about_dialog.set_transient_for(self.window) def close(dialog, response, self): dialog.destroy() about_dialog.connect("response", close, self) about_dialog.show() def on_window1_destroy(self, widget, data=None): gtk.main_quit() def on_quit_menu_item_activate(self, menuitem): gtk.main_quit() def error_message(self, message): dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, message) dialog.run() dialog.destroy() def password_strength_checker(self, password): if not password: return 0.0 # Check for having same Characters has_same_characters = True first_letter = password[0] for i in range(1, password.__len__()): if not first_letter == password[i]: has_same_characters = False if not has_same_characters: break if has_same_characters: return 0.0 lower_alphabets_count = 0 upper_alphabets_count = 0 digits_count = 0 special_chars_count = 0 for i in range(0, password.__len__()): char = password[i] if char.isalpha(): if char.isupper(): upper_alphabets_count += 1 else: lower_alphabets_count += 1 elif char.isdigit(): digits_count += 1 else: special_chars_count += 1 chars_count = [upper_alphabets_count, lower_alphabets_count, digits_count, special_chars_count] if password.__len__() < 8: if not chars_count.__contains__(0): strength = 0.5 elif chars_count.count(0) == 1: strength = 0.25 elif chars_count.count(0) > 1: strength = 0.0 else: if not chars_count.__contains__(0): strength = 0.75 elif chars_count.count(0) == 1: strength = 0.50 elif chars_count.count(0) > 1: strength = 0.25 if upper_alphabets_count > 1 and lower_alphabets_count > 1 and digits_count > 1 and special_chars_count > 1: strength = 1.0 return strength def __init__(self): try: builder = gtk.Builder() builder.add_from_file("PyPassChecker.xml") except: self.error_message("Failed to load UI xml file") sys.exit() self.window = builder.get_object("window1") self.window.set_title("PyPassChecker") self.pass_entry = builder.get_object("pass_entry") self.progressbar = builder.get_object("progressbar1") self.guidelines = builder.get_object("guidelines_button") self.show_pass_button = builder.get_object("pass_entry") builder.connect_signals(self) def main(self): self.window.show() gtk.main() if __name__ == "__main__": passChecker = PassChecker() passChecker.main()
-- http://mail.python.org/mailman/listinfo/python-list