File: _enum.py

package info (click to toggle)
python-shapely 2.1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,528 kB
  • sloc: python: 18,648; ansic: 6,615; makefile: 88; sh: 62
file content (23 lines) | stat: -rw-r--r-- 704 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from enum import IntEnum


class ParamEnum(IntEnum):
    """Wraps IntEnum to provide validation of a requested item.

    Intended for enums used for function parameters.

    Use enum.get_value(item) for this behavior instead of builtin enum[item].
    """

    @classmethod
    def get_value(cls, item):
        """Validate item and raise a ValueError with valid options if not present."""
        try:
            return cls[item].value
        except KeyError:
            valid_options = {e.name for e in cls}
            raise ValueError(
                "'{}' is not a valid option, must be one of '{}'".format(
                    item, "', '".join(valid_options)
                )
            )