Skip to content

mishaga/described-enum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

described-enum

Python Enums with description property

Install

With pip:

pip install described-enum

With uv:

uv add described-enum

With poetry:

poetry add described-enum

Classes

  • DescribedEnum – child class of enum.Enum
  • DescribedIntEnum – child class of enum.IntEnum
  • DescribedStrEnum – child class of enum.StrEnum

Usage examples

from described_enum import DescribedIntEnum, DescribedStrEnum


class TaskStatus(DescribedIntEnum):
    PENDING = 1, 'Task was created / enqueued'
    RUNNING = 2, 'Working on the task'
    DONE = 3, 'Success'
    FAILED = 4, 'Task failed'


print(TaskStatus.RUNNING.name)  # will print str 'RUNNING'
print(TaskStatus.RUNNING.value)  # will print int 2
print(TaskStatus.RUNNING.description)  # will print str 'Working on the task'


class Format(DescribedStrEnum):
    XML = 'xml', 'Extensible Markup Language'
    JSON = 'json', 'JavaScript Object Notation'
    TOML = 'toml', "Tom's Obvious, Minimal Language"
    YAML = 'yml', "YAML Ain't Markup Language"


print(Format.YAML.name)  # will print str 'YAML'
print(Format.YAML.value)  # will print str 'yml'
print(Format.YAML.description)  # will print str "YAML Ain't Markup Language"

About

Python Enums with description

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages