Permissions with enum.Flag

medium
Unit 21 · Immutability0/3 to milestone

Model permissions as combinable flags with enum.IntFlag:

class Perm(IntFlag):
    READ = 1; WRITE = 2; DELETE = 4; ADMIN = 8

Implement:

  • parse_perms(text): "read,write" → Perm.READ | Perm.WRITE (case-insensitive, spaces allowed, empty string → Perm(0)); unknown names raise ValueError
  • can(user_perms, needed): True if the user has every permission in needed, or has ADMIN
  • describe(perms): sorted lower-case names joined by commas (e.g. "delete,read"), or "none"
#enums#bitwise2 visible + 1 hidden tests
solution.py · Python 3.13
Loading editor…
Run your code to see results. ⌘↵ to run · ⌘⇧↵ to submit
Permissions with enum.Flag · TechGradify