
    i                    ~    d Z ddlmZ ddlmZmZmZmZmZm	Z	 ddl
mZ erddlmZ dgZ ede      Z G d	 d      Zy
)aB  
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

    )annotations)IOTYPE_CHECKINGAnyOptionalTypeVarUnion)URIRef)Graph
Serializer_StrT)boundc                  <    e Zd ZddZ	 	 d	 	 	 	 	 	 	 	 	 ddZddZy)	r   c                .    || _         d| _        d | _        y )Nzutf-8)storeencodingbase)selfr   s     @C:\Projects\mas-dev\.venv\Lib\site-packages\rdflib/serializer.py__init__zSerializer.__init__   s    !
$#'	    Nc                     y)zAbstract methodN )r   streamr   r   argss        r   	serializezSerializer.serialize"   s    r   c                |    | j                   }|-|j                  |      rt        |j                  |dd            }|S )N    )r   
startswithr
   replace)r   urir   s      r   
relativizezSerializer.relativize+   s8    yyt 4T2q12C
r   )r   r   )NN)
r   z	IO[bytes]r   Optional[str]r   r$   r   r   returnNone)r"   r   r%   zUnion[_StrT, URIRef])__name__
__module____qualname__r   r   r#   r   r   r   r   r      sI    ( #"&	   	
  
r   N)__doc__
__future__r   typingr   r   r   r   r   r	   rdflib.termr
   rdflib.graphr   __all__strr   r   r   r   r   <module>r1      s=   
 # C C " .s# r   