# Copyright (C) 2022 Cetmix OÜ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from random import choices CHARS = "23456789acefhjkmnprtvwxyz" def generate_random_id(sections=1, population=4, separator="-"): """Generates random id eg 'ahj2-jer83' Args: sections (int, optional): number of sections. Defaults to 1. population (int, optional): number of symbols per section. Defaults to 4. separator (str, optional): section separator. Defaults to "-". Returns: Str: generated id """ if sections < 1 or population < 0: return None def get_section(): return "".join(choices(CHARS, k=population)) # Single section if sections == 1: return get_section() # Multiple sections result = [] for _ in range(sections): result.append(get_section()) return separator.join(result)