A package that provides enhanced enums for Python.
Project description
EnhancedEnum is a generic, enhanced enumeration class that extends the functionality of Python’s standard Enum class. It provides additional convenience methods for a more user-friendly approach to handling enumerations. This class utilizes Python’s generics to ensure type safety and clarity.
Features
User-Friendly String Representation: Override the __str__ method to return the name of the enum member.
Listing Members: Easily list all members of the enumeration.
Validation: Check if a given value is part of the enumeration.
Tuple Conversion: Convert enum members into a tuple.
Navigation: Navigate to the next or previous enum members in sequence.
Creation from String: Instantiate an enum member from its string name.
Creation from Value: Instantiate an enum member from its value.
Installation
You can copy the EnhancedEnum class code into your project, or import it if you’ve saved it as a separate Python file.
Usage
Below is an example of how you might define and use the EnhancedEnum:
from enum import Enum, auto
from enhanced_enum import EnhancedEnum
class Color(EnhancedEnum):
RED = auto()
GREEN = auto()
BLUE = auto()
# List all members
print(Color.list_all())
# Validate a member
print(Color.validate(Color.RED))
# Get next and previous members
print(Color.RED.next())
print(Color.RED.previous())
# Create a member from a string
print(Color.from_string('RED'))
# Create a member from a value
print(Color.from_value(1))
Methods
__str__: Return a more user-friendly string representation of the enum member.
list_all: Return a list of all enum members.
validate: Check if a given value is a valid member of the enum.
as_tuple: Return the enum members as a tuple.
next: Return the next enum member in sequence.
previous: Return the previous enum member in sequence.
from_string: Return the corresponding enum member for a given name.
from_value: Return the corresponding enum member for a given numeric value.
Contributing
Contributions, issues, and feature requests are welcome. Feel free to check issues page if you want to contribute.
License
Distributed under the MIT License. See LICENSE for more information.
Contact
Massimo Ghiani - m.ghiani@gmail.com
Project Link: https://github.com/m-ghiani/ENHANCED_ENUMS
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for enhanced_enums-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 708947bf03a255c9eac937337d35044bec143308f9ce1aa7b86b8c518b0586ea |
|
MD5 | 89c6804351a3dcc4fecb05726581fae8 |
|
BLAKE2b-256 | bdfe5102ea66e714d817a0b6da88c6cf3ba1f023c10a28bbdd95e5c6943fb4a6 |