o
    
i                     @  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!)context_aware	Exceptionsuperr   __init__)selfr   	__class__ U/home/ubuntu/.local/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   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   n3
isinstancer   r	   )r*   r)   
graph_namer   r   r   r&   1   s   





r&   )
__future__r   r!   typingr   r   r   rdflib.graphr   r   r   rdflib.plugins.serializers.ntr	   rdflib.serializerr
   rdflib.termr   __all__r   r&   r   r   r   r   <module>   s    #