46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
from __future__ import annotations
|
|
|
|
from Metadata import constmethod
|
|
from BaseClass import BaseClass
|
|
from typing import Final
|
|
|
|
class Persistence(BaseClass):
|
|
"""
|
|
Base.Persistence class.
|
|
|
|
Class to dump and restore the content of an object.
|
|
|
|
Author: Juergen Riegel (FreeCAD@juergen-riegel.net)
|
|
Licence: LGPL
|
|
"""
|
|
|
|
Content: Final[str] = ""
|
|
"""Content of the object in XML representation."""
|
|
|
|
MemSize: Final[int] = 0
|
|
"""Memory size of the object in bytes."""
|
|
|
|
@constmethod
|
|
def dumpContent(self, Compression: int = 3) -> bytearray:
|
|
"""
|
|
Dumps the content of the object, both the XML representation and the additional
|
|
data files required, into a byte representation.
|
|
|
|
Compression : int
|
|
Set the data compression level in the range [0,9]. Set to 0 for no compression.
|
|
"""
|
|
...
|
|
|
|
def restoreContent(self, obj: object, /) -> None:
|
|
# TODO: Starting with Python 3.12, collections.abc.Buffer can be used for type hinting
|
|
"""
|
|
Restore the content of the object from a byte representation as stored by `dumpContent`.
|
|
It could be restored from any Python object implementing the buffer protocol.
|
|
|
|
obj : buffer
|
|
Object with buffer protocol support.
|
|
"""
|
|
...
|