Enum vs Flag for bitmasks in Python

Ever wondered what’s behind those funny looking Unix access permission values like 600 ✋, 777 ⚠, or 666 😈? Well, they are octal representations, where each of the three rightmost digits represents a different part of the permissions for owner, group, and others. Each of these digits is created from the sum of its component bits. As a result, specific bits add to the sum as it is represented by a numeral: