Source code for rdflib.serializer

"""
Serializer plugin interface.

This module is useful for those wanting to write a serializer that can
plugin to rdflib. If you are wanting to invoke a serializer you likely
want to do so through the Graph class serialize method.

TODO: info for how to write a serializer that can plugin to rdflib.
See also rdflib.plugin

"""

from typing import IO, TYPE_CHECKING, Optional

from rdflib.term import URIRef

if TYPE_CHECKING:
    from rdflib.graph import Graph

__all__ = ["Serializer"]


[docs]class Serializer:
[docs] def __init__(self, store: "Graph"): self.store: "Graph" = store self.encoding: str = "utf-8" self.base: Optional[str] = None
[docs] def serialize( self, stream: IO[bytes], base: Optional[str] = None, encoding: Optional[str] = None, **args, ) -> None: """Abstract method"""
[docs] def relativize(self, uri: str): base = self.base if base is not None and uri.startswith(base): uri = URIRef(uri.replace(base, "", 1)) return uri