Source code for prov.serializers.provn

__author__ = "Trung Dong Huynh"
__email__ = "trungdong@donggiang.com"

import io
from typing import Any

from prov.model import ProvDocument
from prov.serializers import Serializer


[docs] class ProvNSerializer(Serializer): """PROV-N serializer for ProvDocument"""
[docs] def serialize(self, stream: io.IOBase, **args: Any) -> None: """ Serializes a :class:`prov.model.ProvDocument` instance to a `PROV-N <http://www.w3.org/TR/prov-n/>`_. :param stream: Where to save the output. """ if self.document is None: raise Exception("No document to serialize") provn_content = self.document.get_provn() stream.write( provn_content if isinstance(stream, io.TextIOBase) else provn_content.encode("utf-8") )
[docs] def deserialize(self, stream: io.IOBase, **args: Any) -> ProvDocument: raise NotImplementedError