def create_permission_enum(key, member_names): """Create a permission enum.""" name = derive_name(key) permission_enum = Enum(name, list(member_names)) permission_enum.__key__ = key permission_enum.__repr__ = lambda self: '<{}>'.format(self) return permission_enum
def create_permission_enum(key: str, member_names: List[str]) -> Enum: """Create a permission enum.""" name = derive_name(key) permission_enum = Enum(name, list(member_names)) permission_enum.__key__ = key permission_enum.__repr__ = lambda self: f'<{self}>' return permission_enum
def make_str_enum(name: str, values: List[str], doc: str = "") -> Type[str]: """Makes a string enumeration with particuluar values.""" T = Enum(name, {v: v for v in values}, qualname=name, type=str) def __repr__(self: T) -> str: cn = type(self).__qualname__ return f"{cn}({self.value!r})" T.__repr__ = __repr__ T.__doc__ = doc return T