Enum Serialization
This example demonstrates advanced serialization features for enums.
Example Code
Enum Serialization Example
1from enum import Enum
2
3from true.enums_toolkits import SerializedEnumMeta, metadata, MetadataConfig
4
5
6# Create a test enum with metadata
7@metadata(MetadataConfig(include_bit_length=True, custom_attributes={'category': 'http_status'}))
8class HttpStatus(Enum, metaclass=SerializedEnumMeta):
9 SUCCESS = 200
10 NOT_FOUND = 404
11 ERROR = 500
12
13
14# Test serialization
15print("\nOriginal enum:")
16for status in HttpStatus:
17 print(f"{status.name}: {status.value}")
18
19# Convert to dict and back
20dict_data = HttpStatus.to_dict()
21print("\nSerialized dict:", dict_data)
22
23# Create new enum from dict
24NewHttpStatus = HttpStatus.from_dict("NewHttpStatus", dict_data['members'])
25
26print("\nDeserialized enum:")
27for status in NewHttpStatus:
28 print(f"{status.name}: {status.value}")
29
30# Test metadata preservation
31if hasattr(NewHttpStatus, '_metadata_config'):
32 print("\nMetadata preserved:", NewHttpStatus._metadata_config.__dict__)
Key Features
Serialization Formats - JSON serialization - YAML serialization - Custom formats
Format Conversion - Format detection - Automatic conversion - Format validation
Advanced Features - Custom serializers - Schema validation - Version handling