marshmallow-enum
Enum field for use with Marshmallow.
Installation
pip install --user marshmallow_enum
If you're on a version before 3.4, you'll also need to install enum34.
Using The Field
To make use of the field, you must have an existing Enum:
from enum import Enum
class StopLight(Enum):
green = 1
yellow = 2
red = 3
Then, declare it as a field in a schema:
from marshmallow import Schema
from marshmallow_enum import EnumField
class TrafficStop(Schema):
light_color = EnumField(StopLight)
By default, the field will load and dump based on the name given to an enum value.
schema = TrafficStop()
schema.dump({'light_color': EnumField.red}).data
# {'light_color': 'red'}
schema.load({'light_color': 'red'}).data
# {'light_color': StopLight.red}
Customizing loading and dumping behavior
To customize how an enum is serialized or deserialized, there are three options:
- Setting
by_value=True. This will cause both dumping and loading to use the value of the enum. - Setting
load_by=EnumField.VALUE. This will cause loading to use the value of the enum. - Setting
dump_by=EnumField.VALUE. This will cause dumping to use the value of the enum.
If either load_by or dump_by are unset, they will follow from by_value.
Additionally, there is EnumField.NAME to be explicit about the load and dump behavior, this
is the same as leaving both by_value and either load_by and/or dump_by unset.
Custom Error Message
A custom error message can be provided via the error keyword argument. It can accept three
format values:
{input}: The value provided to the schema field{names}: The names of the individual enum members{values}: The values of the individual enum members
Previously, the following inputs were also available but are deprecated and will be removed in 1.6:
{name}{value}{choices}
Version 1.5
Allow unicode enum values (sergeyzsg) Add support for Marshmallow 3 (svidela)
Version 1.4
- Deprecate the
{choices},{name}and{value}format keys for custom error messages - Allow configure loading and dumping independently
Release files for marshmallow-enum 1.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| marshmallow-enum-1.5.1.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| marshmallow_enum-1.5.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 8.2 kB
Release files / marshmallow-enum-1.5.1.tar.gz
| Download URL | marshmallow-enum-1.5.1.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
38e697e11f45a8e64b4a1e664000897c659b60aa57bfa18d44e226a9920b6e58
|
|
BLAKE2b-256 checksum How to use checksums |
8e8cceecdce57dfd37913143087fffd15f38562a94f0d22823e3c66eac0dca31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.0
|
Release files / marshmallow_enum-1.5.1-py2.py3-none-any.whl
| Download URL | marshmallow_enum-1.5.1-py2.py3-none-any.whl |
|---|---|
| Size | 4.2 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
57161ab3dbfde4f57adeb12090f39592e992b9c86d206d02f6bd03ebec60f072
|
|
BLAKE2b-256 checksum How to use checksums |
c659ef3a3dc499be447098d4a89399beb869f813fee1b5a57d5d79dee2c1bf51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.0
|