Skip to content
/ pyEnum Public

User friendly implementation of documented Enum type in Python language.

License

Notifications You must be signed in to change notification settings

molejar/pyEnum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyEnum

Build Status Coverage Status PyPI Status Python Version

User friendly implementation of documented Enum type for Python language.

Installation

    $ pip install easy_enum

To install the latest version from master branch execute in shell following commands:

    $ pip install -U https://github.com/molejar/pyEnum/archive/master.zip

In case of development, install pyEnum from sources:

    $ git clone https://github.com/molejar/pyEnum.git
    $ cd pyEnum
    $ pip install -U -e .

You may run into a permissions issues running these commands. Here are a few options how to fix it:

  1. Run with sudo to install pyEnum and dependencies globally
  2. Specify the --user option to install locally into your home directory (export "~/.local/bin" into PATH variable if haven't).
  3. Run the command in a virtualenv local to a specific project working set.

Usage

Following example is showing how easy you can use this Enum in your code:

    from easy_enum import Enum

    class TestEnum(Enum):

        # attribute with no description, the name will be 'FIRST_ITEM' and empty string as description
        FIRST_ITEM  = 1

        # attribute with description
        SECOND_ITEM = (2, 'Description for second item')

        # attribute with description and custom string name
        THIRD_ITEM  = (3, 'third', 'Description for third item')

        # attribute with custom string name (the description must be specified as empty string)
        FOURTH_ITEM = (4, 'fourth', '')


    # Read attributes value and name
    print(TestEnum.SECOND_ITEM)    # 2
    print(TestEnum['FIRST_ITEM'])  # 1
    print(TestEnum[1])             # 'FIRST_ITEM'
    print(TestEnum[3])             # 'third'
    print(TestEnum['third'])       # 3

    # Use get method with default value if want skip exception
    print(TestEnum.get(8))         # None
    print(TestEnum.get('eight'))   # None
    print(TestEnum.get(8, 'eight')) # 'eight'

    # Check if exist attribute with specific value
    print(1 in TestEnum)           # True
    print(8 in TestEnum)           # False

    # Check if exist attribute with specific name
    print('first' in TestEnum)     # False
    print('third' in TestEnum)     # True

    # Get attribute description (as parameter use attribute name or value)
    print(TestEnum.desc(1))        # ''
    print(TestEnum.desc(2))        # 'Description for second item'
    print(TestEnum.desc('third'))  # 'Description for third item'
    
    # Get count of all attributes
    print(len(TestEnum))           # 4

    # Get list with all attributes name
    names = [item[0] for item in TestEnum]
    print(names)                   # ['FIRST_ITEM', 'SECOND_ITEM', 'third', 'fourth']

    # Get list with all attributes value
    values = [item[1] for item in TestEnum]
    print(values)                  # [1, 2, 3, 4]

    # Read all items
    for name, value, desc in TestEnum:
        print('{} = {} ({})'.format(name, value, desc))

About

User friendly implementation of documented Enum type in Python language.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages