Skip to main content

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


Download files

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

Source Distribution

enhanced-enums-1.0.2.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

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

enhanced_enums-1.0.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file enhanced-enums-1.0.2.tar.gz.

File metadata

  • Download URL: enhanced-enums-1.0.2.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for enhanced-enums-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8ce258ae05a08676ebdb421646b5229a05a3b3006af335e2126044f77e7889b6
MD5 6d1832defd04da3df2e1b28464744800
BLAKE2b-256 7653889192b23721661a26f0e4bb6124dcd12f4bd448b8ad6a8f80b6ce151d15

See more details on using hashes here.

File details

Details for the file enhanced_enums-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: enhanced_enums-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for enhanced_enums-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 708947bf03a255c9eac937337d35044bec143308f9ce1aa7b86b8c518b0586ea
MD5 89c6804351a3dcc4fecb05726581fae8
BLAKE2b-256 bdfe5102ea66e714d817a0b6da88c6cf3ba1f023c10a28bbdd95e5c6943fb4a6

See more details on using hashes here.

Supported by

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