Modern Vyper (0.3.10+) provides `flag` for named bit-flag states, which behaves much like Solidity's `enum` for simple state machines, but the underlying representation is a bitmask so members can also be combined.
flag Status:
PENDING
ACTIVE
CLOSED
status: public(Status)
@external
def activate():
self.status = Status.ACTIVEBecause it's a bitmask, `flag` values can be combined with bitwise operators when you need to represent multiple simultaneous states, which a plain enum cannot do.