Skip to main content

User friendly implementation of Enum in Python

Project description

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))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easy_enum-0.3.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

easy_enum-0.3.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file easy_enum-0.3.0.tar.gz.

File metadata

  • Download URL: easy_enum-0.3.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.8

File hashes

Hashes for easy_enum-0.3.0.tar.gz
Algorithm Hash digest
SHA256 aa9baffd64ba0421ae9abcee045347e7d783b105ccce38caf55fd80c21f95b6a
MD5 9a4195320c991f08148a77bcdf0ee2f6
BLAKE2b-256 a6ee5a432f5c91037ba0a289d4e79751c7c88d23a315aa1017656d15364865ec

See more details on using hashes here.

File details

Details for the file easy_enum-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: easy_enum-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.8

File hashes

Hashes for easy_enum-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 29dcabaa6ab151f0026f68b9a2cb58ae3e4dc6f14edb4a0ee70d12a07c512603
MD5 6ff419ba738c64506a6a4bf9dae56157
BLAKE2b-256 ae028cacde00c54689169f048295179e5356876a392975297e33f0b4c7021e0a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page