o
    mi                     @  s   d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ dgZG d	d deZd
d ZdS )    )annotationsN)IOAnyOptional)DATASET_DEFAULT_GRAPH_IDConjunctiveGraphGraph)_quoteLiteral)
Serializer)LiteralNQuadsSerializerc                      s2   e Zd ZdZd fddZ		ddddZ  ZS )r   zNQuads RDF graph serializer.storer   c                   s&   |j stdtt| | |  d S )Nz?NQuads serialization only makes sense for context-aware stores!)Zcontext_aware	Exceptionsuperr   __init__)selfr   	__class__ [/home/kim/smarthome/.venv/lib/python3.10/site-packages/rdflib/plugins/serializers/nquads.pyr      s   zNQuadsSerializer.__init__Nstream	IO[bytes]baseOptional[str]encodingkwargsr   returnNonec                 K  s   |d ur	t d |d ur| | j krt d|  | j}| j D ]}|D ]}|t||j	|d q*q&|d	d d S )Nz'NQuadsSerializer does not support base.zCNQuadsSerializer does not use custom encoding. Given encoding was: replace
zlatin-1)
warningswarnlowerr   r   Zcontextswrite_nq_row
identifierencode)r   r   r   r   r   contexttripler   r   r   	serialize   s    
zNQuadsSerializer.serialize)r   r   )NN)
r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname____doc__r   r)   __classcell__r   r   r   r   r      s    c                 C  sv   |r
|t kr
| nd}t| d tr'd| d  | d  t| d |f S d| d  | d  | d  |f S )N    z%s %s %s %s .
r      )r   Zn3
isinstancer   r	   )r(   r'   Z
graph_namer   r   r   r$   1   s   





r$   )
__future__r   r    typingr   r   r   Zrdflib.graphr   r   r   Zrdflib.plugins.serializers.ntr	   Zrdflib.serializerr
   Zrdflib.termr   __all__r   r$   r   r   r   r   <module>   s    #