"""app.user========Functionality for user's of the app."""fromapp.extensionsimportlogin_managerfromapp.modelsimportUser,Usernames,db
[docs]defcreate_user(username:str,email:str,password:str,**kwargs:object)->User:"""Instantiate a new user, add user to the database, and return. :param username: New user's username. :param email: New user's email address. :param password: New user's password. :param kwargs: Non-mandatory keyword arguments to pas to model. :return: New ``User`` object. """# noinspection PyArgumentListuser=User(username=username,email=email,**kwargs)user.set_password(password)db.session.add(user)db.session.commit()user=User.resolve_all_names(username=username)# noinspection PyArgumentListusernames=Usernames(username=user.username,user_id=user.id)db.session.add(usernames)db.session.commit()returnuser
[docs]@login_manager.user_loaderdefuser_login(id:int)->User:"""Wrap the user object. :param id: User id to get. :return: Returned user object. """returnUser.query.get(id)