Skip to main content

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

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

If you're not sure about the file name format, learn more about wheel file names.

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.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page