import streamlit_authenticator as stauth from sys import argv import yaml def credentials(username, email, name, pwd): pwd = stauth.Hasher([pwd]).generate()[0] credentials = { 'text': f''' {username}: email: {email} name: {name} password: {pwd} ''', 'data': {username: {'email': email, 'name': name, 'pwd': pwd} } } return credentials def update(c): print(c['text']) if input('Update credentials file? (y/n)') in ['y', 'yes']: try: with open('credentials.yaml','r') as f: cur_yaml = yaml.safe_load(f) # Note the safe_load cur_yaml['credentials']['usernames'].update(c['data']) if cur_yaml: with open('credentials.yaml','w') as f: yaml.safe_dump(cur_yaml, f) # Also note the safe_dump except FileNotFoundError: print('Found no yaml file') if len(argv) == 2: if argv[1] == 'help': print('username, email, name, pwd') exit() pwd = argv[1] print(stauth.Hasher([pwd]).generate()[0]) elif len(argv) == 5: username = argv[1] email = argv[2] name = argv[3] pwd = argv[4] c = credentials(username, email, name, pwd) update(c) else: pwd = input('Password: ').strip() username = input('Username: ') if username != '': email = input('Email: ') name = input('Name: ') c = credentials(username, email, name, pwd) update(c) else: print(stauth.Hasher([pwd]).generate()[0])