stringenum
Table Of Contents
About
A small, dependency-free library offering additional enum.StrEnum subclasses and a backport for older Python versions.
Installation
stringenum is available on PyPI, so you can simply use pip to install it.
pip install stringenum
Usage
-
stringenum.StrEnum- A backport ofenum.StrEnum. WhileStrEnumwas added in Python 3.11, version 3.12 brought changes to the__contains__method inEnumType, which also impactsStrEnum.stringenum.StrEnumincludes this__contains__update from Python 3.12.-
enum.StrEnumon Python <=3.11>>> class Color(enum.StrEnum): ... RED = "RED" ... GREEN = "GREEN" >>> Color.RED in Color True >>> "RED" in Color Traceback (most recent call last): ... TypeError: unsupported operand type(s) for 'in': 'str' and 'EnumType'
-
enum.StrEnumon Python >=3.12>>> class Color(enum.StrEnum): ... RED = "RED" ... GREEN = "GREEN" >>> Color.RED in Color True >>> "RED" in Color True >>> 12 in Color False
-
stringenum.StrEnumon Python >=3.9>>> class Color(stringenum.StrEnum): ... RED = "RED" ... GREEN = "GREEN" >>> Color.RED in Color True >>> "RED" in Color True >>> 12 in Color False
-
-
stringenum.DuplicateFreeStrEnum- A subclass ofStrEnumthat ensures all members have unique values and names, raising aValueErrorif duplicates are found.>>> class Fruits(DuplicateFreeStrEnum): ... APPLE = "apple" ... BANANA = "banana" ... ORANGE = "apple" ... Traceback (most recent call last): ... ValueError: Duplicate values are not allowed in Fruits: <Fruits.ORANGE: 'apple'>
-
stringenum.CaseInsensitiveStrEnum- A subclass ofDuplicateFreeStrEnumthat supports case-insensitive lookup.>>> class Pet(CaseInsensitiveStrEnum): ... CAT = "meow" ... DOG = "bark" >>> Pet("Meow") <Pet.CAT: 'meow'> >>> Pet("BARK") <Pet.DOG: 'bark'> >>> Pet["Cat"] <Pet.CAT: 'meow'> >>> Pet["dog"] <Pet.DOG: 'bark'>
-
stringenum.DoubleSidedStrEnum- A subclass ofDuplicateFreeStrEnumthat supports double-sided lookup, allowing both member values and member names to be used for lookups.>>> class Status(DoubleSidedStrEnum): ... PENDING = "waiting" ... REJECTED = "denied" >>> Status("PENDING") <Status.PENDING: 'waiting'> >>> Status("waiting") <Status.PENDING: 'waiting'> >>> Status["REJECTED"] <Status.REJECTED: 'denied'> >>> Status["denied"] <Status.REJECTED: 'denied'>
-
stringenum.DoubleSidedCaseInsensitiveStrEnum- A subclass ofDuplicateFreeStrEnumthat supports case-insenitive double-sided lookup, allowing both member values and member names to be used for lookups.>>> class Status(DoubleSidedCaseInsensitiveStrEnum): ... PENDING = "waiting" ... REJECTED = "denied" >>> Status("pending") <Status.PENDING: 'waiting'> >>> Status("Waiting") <Status.PENDING: 'waiting'> >>> Status["Rejected"] <Status.REJECTED: 'denied'> >>> Status["DenieD"] <Status.REJECTED: 'denied'>
License
Distributed under the MIT License. See LICENSE for more information.
Metadata
Release files for stringenum 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| stringenum-0.6.0.tar.gz | 26.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| stringenum-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.4 kB
Release files / stringenum-0.6.0.tar.gz
| Download URL | stringenum-0.6.0.tar.gz |
|---|---|
| Size | 26.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b47213f239487ec8051e9cc54d68b4955509808e33126c6cc4ab53e47f66d01
|
|
BLAKE2b-256 checksum How to use checksums |
e4bfe8069c06e43869d9371022a8805fe497ff80b50e5b45b91b3a795b669ca3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 24, 2024.
Transparency logRelease files / stringenum-0.6.0-py3-none-any.whl
| Download URL | stringenum-0.6.0-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e132edae8bb2bf5c37cae55f5d4ec51c7596e5064fe2d3e6bd567e0ca773063d
|
|
BLAKE2b-256 checksum How to use checksums |
70a6d21747d479369d30df2f5d1a86f9f426b7839c4e8a5fb32d5bff24c0f9a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 24, 2024.
Transparency log