import streamlit_authenticator as stauth from sys import argv import yaml def load_credentials(): with open('credentials.yaml','r') as f: return yaml.safe_load(f) def credentials(username, name, pwd): pwd = stauth.Hasher([pwd]).generate()[0] if username in list(load_credentials()['credentials']['usernames'].keys()): print('Användarnamnet finns redan.') return 'Användarnamnet finns redan.', False credentials = { 'text': f''' {username}: email: '', name: {name} password: '***' ''', 'data': {username: {'email': '', 'name': name, 'password': pwd} } } for k, v in credentials.items(): print(k, v) return credentials, True def update(c, print_out=True, update=False): if print_out: print(c['text']) if not update: if input('Update credentials file? (y/n)') in ['y', 'yes']: update = True if update: try: cur_yaml = load_credentials() cur_yaml['credentials']['usernames'].update(c['data']) if cur_yaml: with open('credentials.yaml','w') as f: yaml.safe_dump(cur_yaml, f) except FileNotFoundError: print('Found no yaml file') return c['text'], False # if __name__ == '__main__': # if len(argv) == 2: # if argv[1] == 'help': # print('username, name, pwd') # exit() # pwd = argv[1] # print(stauth.Hasher([pwd]).generate()[0]) # elif len(argv) == 4: # username = argv[1] # name = argv[2] # pwd = argv[3] # c = credentials(username, name, pwd) # update(c) # else: # pwd = input('Password: ').strip() # username = input('Username: ') # if username != '': # name = input('Name: ') # c = credentials(username, name, pwd) # update(c) # else: # print(stauth.Hasher([pwd]).generate()[0])