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

  1. Serialization Formats - JSON serialization - YAML serialization - Custom formats

  2. Format Conversion - Format detection - Automatic conversion - Format validation

  3. Advanced Features - Custom serializers - Schema validation - Version handling