SerializationFormat Enum
Overview
The SerializationFormat
enum defines available serialization formats for data interchange and storage.
Package: keychain.constants
from keychain.constants import SerializationFormat
Usage Example
from keychain.constants import SerializationFormat, DEFAULT_SERIALIZATION_FORMAT
# Use default format (Protocol Buffers)
default_format = DEFAULT_SERIALIZATION_FORMAT
print(f"Default format: {default_format.name}")
# Serialize data in different formats
data = some_serializable_object
# Protocol Buffers (recommended)
protobuf_data = data.serialize(SerializationFormat.PROTOBUF)
# XML (deprecated, for legacy compatibility only)
if need_legacy_support:
xml_data = data.serialize(SerializationFormat.XML)
# Check format capabilities
def is_deprecated_format(fmt: SerializationFormat) -> bool:
return fmt == SerializationFormat.XML
def get_recommended_format() -> SerializationFormat:
return SerializationFormat.PROTOBUF
Migration Notes
From XML to Protocol Buffers
XML format is deprecated and should be migrated to Protocol Buffers:
# Legacy XML serialization (deprecated)
# xml_data = object.serialize(SerializationFormat.XML)
# Modern Protocol Buffers serialization (recommended)
protobuf_data = object.serialize(SerializationFormat.PROTOBUF)
# For reading legacy XML data
if is_xml_format(legacy_data):
object = MyClass.deserialize(legacy_data, SerializationFormat.XML)
# Re-serialize in modern format
modern_data = object.serialize(SerializationFormat.PROTOBUF)
See Also
-
DataType - Data type metadata for serialization
-
VerifiableData - Serializable verifiable objects
-
Credential - Serializable credential objects
-
Transaction - Serializable transaction objects