o
    i                     @   s   d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZ deeeee
f  dee defdd	ZG d
d deZdS )    )IOListOptionalUnion)NamespaceManager)ResultSerializer)BNodeLiteralURIRefVariabletnamespace_managerreturnc                 C   sZ   | d u rdS |r)t | tr|| S t | tr|  S t | tr'| j|jdS d S |  S )N-)qname_callback)
isinstancer
   normalizeUrir   n3r	   _literal_n3)r   r    r   c/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/rdflib/plugins/sparql/results/txtresults.py_termString   s   



r   c                	   @   s2   e Zd ZdZ	d	dededee ddfddZdS )
TXTResultSerializerzC
    A write only QueryResult serializer for text/ascii tables
    Nstreamencodingr   r   c              	      s  dd  | j jdkrtd| j sdS | j jdgt fdd| j D }|D ]}ttD ]}t| t|| |< q3q+|d	 fd
dt	D d  |dtt
  d  t|D ]}|d	dd t|D d  qkdS )z6
        return a text table of query results
        c                 S   s<   |t | 8 }|d  }}|d r|d7 }d| |  d|  S )z>
            center the string s in w wide string
                   len)swh1h2r   r   r   c*   s
   z(TXTResultSerializer.serialize.<locals>.cSELECTz%Can only pretty print SELECT results!z(no results)
r   c                    s    g | ]  fd dD qS )c                    s   g | ]	}t |  qS r   )r   ).0k)r   rr   r   
<listcomp>B   s    z<TXTResultSerializer.serialize.<locals>.<listcomp>.<listcomp>r   )r&   )keysr   )r(   r   r)   =   s    z1TXTResultSerializer.serialize.<locals>.<listcomp>|c                    s   g | ]\}} || qS r   r   )r&   ir'   )r$   maxlenr   r   r)   I   s    
r   c                 S   s$   g | ]\}}|d |t |   qS )r   r   )r&   r,   r   r   r   r   r)   M   s   $ N)resulttype	Exceptionvarsr   rangemaxwritejoin	enumeratesumsortedzip)selfr   r   r   br(   r,   r   )r$   r*   r-   r   r   	serialize    s*   

(zTXTResultSerializer.serialize)N)	__name__
__module____qualname____doc__r   strr   r   r=   r   r   r   r   r      s    
r   N)typingr   r   r   r   rdflib.namespacer   rdflib.queryr   rdflib.termr   r	   r
   r   rB   r   r   r   r   r   r   <module>   s    
