from dataclasses import dataclass # Users already loaded already = set([ 'foo@email.com', ]) @dataclass class Person: name: str email: str password: str @property def username(self): return self.email.split('@')[0] @property def full_password(self): if len(self.password) < 8: return self.password + '1234' return self.password def command(self): return f'goalert add-user --user {self.username} --email {self.email} --pass {self.full_password}' def _parse_line(line): line = line.strip() results = [i.strip() for i in line.split('\t')] name, role, email, password = results return Person(_capitalize_name(name), email.lower(), password.lower()) def _capitalize_name(name): parts = [i.strip() for i in name.split(' ') if i.strip()] return ' '.join([part.capitalize() for part in parts]) # goalert add-user --db-url $GOALERT_DB_URL --admin --user admin --email admin@example.com # goalert add-user --user my-user --email my-user@email.com.br --pass user123 with open('./data.txt', 'r') as f: first = True diff = set() for line in f: if first: first = False continue person = _parse_line(line) if person.email in already: continue if person.password != person.full_password: diff.add((person.email, person.full_password)) print(person.command())