def __add_members(family): add_members = True template = Person().to_json() fields = sorted(template.keys()) while add_members: print("----- Add Family Member -----") member_data = template.copy() for name in fields: if name in ('photo'): continue if name == 'relationships': member_data['relationships'] = Prompt.relationships() elif name == 'phone': member_data['phone'] = Prompt.phone() else: new_value = Prompt.input("%s: " % (name)) member_data[name] = new_value if new_value else "" member_data['birthday'] = Prompt.input("birthday (YYYY-MM-DD)? ") member_data['photo'] = re.sub('\W', '-', member_data['name'].lower()) + ".jpeg" new_member = Person(**member_data) family.add(new_member) add_members = Prompt.more(msg="Add More Members")
def cmdgenerator(): testinfo = parser() newperson = Person(information=testinfo) tmplist = newperson.generate_password() print(tmplist) for i in tmplist: print(i)
def on_edit_member(self, widget, path = None, view_column = None): selection = self.member_tree_view.get_selection() model, path = selection.get_selected() if path: person_to_edit = Person.get(model[path][0]) self.start_edit_dialoge(person_to_edit, path)
def vcf(ctx, vcf_file): """Import VCF Card""" config = ctx.obj['config'] directory = Directory(config.path('data:path', 'directory.json')) vcf = VCFParser(photo_dir=config.path('data:path', 'photos')) data = vcf.parse(vcf_file) print("----- %s - %s -----" % (data['last_name'], data['address'])) family = directory.get(data['last_name']) family = Prompt.choose_from_list(family, "Which Family") if family: person = family.get(data['name']) if person: print("%s already exists." % (data['name'])) else: new_person = Person(**data) family.add(new_person) directory.save() else: new_family = Family(name=data['last_name'], address=data['address'], city=data['city'], state=data['state'], zip=data['zip'], members=[data]) directory.add(new_family) directory.save()
def parser(): parser=argparse.ArgumentParser() parser.add_argument('-n', '--name', dest='name', action='store', help='real name of target', nargs='*', default=[]) parser.add_argument('-u', '--username', dest='username', action='store', help='usernames of target, English only', nargs='*', default=[]) parser.add_argument('-q', '--qq', dest='qq', action='store', help='QQ numbers of target', nargs='*', type=int, default=[]) parser.add_argument('-e', '--email', dest='email', action='store', help='email addresses of target', nargs='*', type=email, default=[]) parser.add_argument('-m', '--mobile', dest='mobile', action='store', help='mobile phone/phone numbers of target', nargs='*', type=int, default=[]) parser.add_argument('-b', '--birthday', dest='birthday', action='store', help='birthday of target, format: %%Y-%%m-%%d', type=date, default=None) parser.add_argument('-c', '--company', dest='company', nargs='*', action='store', help='company / website domain of target', type=str, default=[]) parser.add_argument('--with-dict', dest='with_dict', action='store_true', help='generate passwords with weak password dictionary') parser.add_argument('-o', '--output', dest='output_file', action='store', help='output result to a json file', type=argparse.FileType('w')) args = parser.parse_args() print(args) print(args.__dict__) if not any(args.__dict__.values()): parser.print_help() raise SystemExit person_list = [] person_list.append(Person(information=args.__dict__)) return (args, person_list)
def on_delete_member(self, widget): dialog = gtk.MessageDialog(self.main_window, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK_CANCEL, "Do you really want to delete this person?") result = dialog.run() dialog.destroy() if(result == gtk.RESPONSE_OK): selection = self.member_tree_view.get_selection() model, path = selection.get_selected() if path: person_id = model[path][0] self.member_list.remove(path) Person.delete(person_id)
def mind_action(unique_id, action): person = Person.load(unique_id) if action in person: res = person[action](request.form) return jsonify({'response': res}) else: return jsonify( {'response': 'Failed to execute action: "' + action + '"'})
def on_card_found(self, cardnumber): self.statusbar.pop(1) person = Person.get_by_cardnumber(cardnumber) person_list = list(person) if len(person_list): person_list[0].add_date() print "Member found :" + str(person_list[0].id) gobject.idle_add(self.start_edit_dialoge, person_list[0]) else: print "No Member with cardnumber : " + cardnumber
def main(): args = cmd_parser() person = Person() if args.file: raise NotImplementedError else: person.name = parse_input(args.name) person.username = parse_input(args.username) person.qq_number = parse_input(args.qq_number, 'int') person.email = parse_input(args.email, 'email') try: person.birthday = time.strptime(args.birthday, '%Y-%m-%d') except (ValueError, TypeError): person.birthday = None if args.with_dict: passwords = person.generate_password_with_dict() else: passwords = person.generate_password() for password in passwords: print(password)
#coding=utf-8 import os import lib.person from lib.person import Person exit = False john = Person("John","Man","0912228","*****@*****.**") john.name = "as" print john while not exit: print "歡迎使用通訊錄管理系統!" print "*********************" print "請選擇功能:" print "1.開啟檔案" print "2.離開" print "*********************" choice = raw_input("選擇代號:") if choice == "1": name = raw_input("請輸入檔案名稱:") if os.path.exists(name): print (name + "檔案存在!\n") file = open(name,"r") content = file.read() print(content) file.close() else: print "檔案不存在!\n"
def mind_view(unique_id): person = Person.load(unique_id) return render_template('view.html', person=person)
def mind_list(): global common return render_template('list.html', people=Person.list())
from typing import List from fastapi import FastAPI from lib.person import Person app = FastAPI() people: List[Person] = [ Person(name="Alice", age=50), Person(name="Bob", age=30), ] @app.get("/") async def hello_world(name: str = "World"): return {"success": True, "message": f"Hello {name}"} @app.get("/people/") async def fetch_all_people(): return {"success": True, "message": {"people": people}} @app.get("/people/{person_id}") async def find_person(person_id: str): filtered: List[Person] = [p for p in people if str(p.id_) == person_id] if filtered == []: return { "success": False, "message": f"Can't find the person for id = {person_id}" }
def main(): args = cmd_parser() if args.file: if not os.path.exists(args.file): print('File not Exist') sys.exit(0) with open(args.file) as f: data = f.read() person = Person(json.loads(data)) else: person = Person() person.name = parse_input(args.name) person.username = parse_input(args.username) person.qq_number = parse_input(args.qq_number, 'int') person.email = parse_input(args.email, 'email') person.mobile_phone = parse_input(args.mobile_phone, 'int') try: person.birthday = time.strptime(args.birthday, '%Y-%m-%d') except (ValueError, TypeError): person.birthday = None if args.with_dict: passwords = person.generate_password_with_dict() else: passwords = person.generate_password() for password in passwords: print(password)
from oracle import ORACLE from random import shuffle from lib.person import Person from lib.utils import GET_TRUNC_NORM, GLOBALS with open("resources/first_names.txt","r") as names: first_names = [x.strip() for x in names.readlines()] shuffle(first_names) with open("resources/last_names.txt","r") as names: last_names = [x.strip() for x in names.readlines()] shuffle(last_names) people = [] for i in range(10): people.append(Person(GET_TRUNC_NORM(40,1,GLOBALS["MAX_AGE"],25), (first_names.pop(), last_names.pop()))) for p in people: print(p)
def functiongenerator(dict_of_info): target = Person(information=dict_of_info) return target.generate_username(), target.generate_password()
def show_all_members(self): members = Person.select() self.show_members(members)
def __init__(self, glade_file): db_dir = "db" Person.init_db(db_dir) try: self.card = Card(self.reading_card_result, self.on_card_found) except: print "No reader found" dialog = gtk.MessageDialog(None, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, "No RFID reader found") result = dialog.run() dialog.destroy() self.card = None self.glade_file = glade_file self.blink = False self.builder = gtk.Builder() self.builder.add_from_file(glade_file) signals = { "quit" : self.quit, "on_buttonQuit_clicked" : self.quit, "on_window_destroy" : self.quit, "on_add_member" : self.on_add_member, "on_edit_member" : self.on_edit_member, "on_start_stop_rfid_reader" : self.on_start_stop_rfid_reader, "on_find" : self.on_search_button, "on_delete_member" : self.on_delete_member, "on_card_found" : self.on_card_found, "on_clear_search" : self.on_clear_search, "on_row_activated" : self.on_edit_member, "on_changed" : self.on_search_button, } self.builder.connect_signals(signals) self.member_tree_view = self.builder.get_object("memberview") self.member_tree_view.set_rules_hint(True) self.add_columns_to_tree_view(self.member_tree_view, Person) # The * is used to expand the tuple in to arguments for the function. self.member_list = gtk.ListStore(*Person.get_column_types()) self.member_tree_view.set_model(self.member_list) #Class variables self.statusbar = self.builder.get_object("statusbar") self.main_window = self.builder.get_object("main_window") self.show_all_members() #Last words, start state. ugly and for the love of god remove this self.card.start() button = self.builder.get_object("start_stop_button") image = gtk.image_new_from_icon_name("gtk-media-stop", gtk.ICON_SIZE_BUTTON) image.show() button.set_icon_widget(image) self.main_window.show() gtk.main()
def generate_id_string(data, rule): id_string = map(lambda x: x.split('@')[0], data) return set(Person.generator_map(id_string, rule))
def generate_name(data, rule): pinyin = PinYin(PINYIN) pinyin.load_word() name_pinyin_list = map(pinyin.hanzi2pinyin, data) return Person.generator_map(name_pinyin_list, rule)
def on_search_button(self, widget): firstname = self.builder.get_object("firstname_search_entry").get_text() lastname = self.builder.get_object("lastname_search_entry").get_text() members = Person.get_by_name(firstname,lastname) self.show_members(members)