zcash-grant-system/backend/grant/utils/enums.py

93 lines
1.8 KiB
Python

# Our own Enum class with custom functionality, not Python's
class CustomEnum():
# Adds an .includes function that tests if a value is in enum
def includes(self, enum: str):
return hasattr(self, enum)
# provide a list of enum values (strs)
def list(self):
return [attr for attr in dir(self)
if not callable(getattr(self, attr)) and
not attr.startswith('__')]
class ProposalStatusEnum(CustomEnum):
DRAFT = 'DRAFT'
PENDING = 'PENDING'
STAKING = 'STAKING'
APPROVED = 'APPROVED'
REJECTED = 'REJECTED'
LIVE = 'LIVE'
DELETED = 'DELETED'
ProposalStatus = ProposalStatusEnum()
class ProposalSortEnum(CustomEnum):
NEWEST = 'NEWEST'
OLDEST = 'OLDEST'
ProposalSort = ProposalSortEnum()
class ProposalStageEnum(CustomEnum):
PREVIEW = 'PREVIEW'
WIP = 'WIP'
COMPLETED = 'COMPLETED'
FAILED = 'FAILED'
CANCELED = 'CANCELED'
ProposalStage = ProposalStageEnum()
class CategoryEnum(CustomEnum):
DEV_TOOL = 'DEV_TOOL'
CORE_DEV = 'CORE_DEV'
COMMUNITY = 'COMMUNITY'
DOCUMENTATION = 'DOCUMENTATION'
ACCESSIBILITY = 'ACCESSIBILITY'
Category = CategoryEnum()
class ContributionStatusEnum(CustomEnum):
PENDING = 'PENDING'
CONFIRMED = 'CONFIRMED'
DELETED = 'DELETED'
ContributionStatus = ContributionStatusEnum()
class RFPStatusEnum(CustomEnum):
DRAFT = 'DRAFT'
LIVE = 'LIVE'
CLOSED = 'CLOSED'
RFPStatus = RFPStatusEnum()
class MilestoneStageEnum(CustomEnum):
IDLE = 'IDLE'
REQUESTED = 'REQUESTED'
REJECTED = 'REJECTED'
ACCEPTED = 'ACCEPTED'
PAID = 'PAID'
MilestoneStage = MilestoneStageEnum()
class ProposalArbiterStatusEnum(CustomEnum):
MISSING = 'MISSING'
NOMINATED = 'NOMINATED'
ACCEPTED = 'ACCEPTED'
ProposalArbiterStatus = ProposalArbiterStatusEnum()