§
    kÃ¿a˜5  ã                   ó¸   — d Z ddlmZ ddl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mZ dd	gZd
„ Z G d„ de¦  «        ZdZdZdZdZdZ G d„ d	e¦  «        ZdS )zr
Turtle RDF graph serializer for RDFLib.
See <http://www.w3.org/TeamSubmission/turtle/> for syntax specification.
é    )Údefaultdict)Ú
cmp_to_key)ÚBNodeÚLiteralÚURIRef)ÚError)Ú
Serializer)ÚRDFÚRDFSÚRecursiveSerializerÚTurtleSerializerc                 óž   — 	 | |k    rdS | |k     rdS dS # t           $ r. t          | ¦  «        } t          |¦  «        }| |k    | |k     z
  cY S w xY w)a  
    for nice clean output we sort the objects of triples,
    some of them are literals,
    these are sorted according to the sort order of the underlying python objects
    in py3 not all things are comparable.
    This falls back on comparing string representations when not.
    é   éÿÿÿÿr   )Ú	TypeErrorÚstr)ÚaÚbs     úC/usr/lib/python3/dist-packages/rdflib/plugins/serializers/turtle.pyÚ_object_comparatorr      sr   € ð
!ØˆqŠ5ˆ5Ø�1ØˆqŠ5ˆ5Ø�2Øˆqøåð !ð !ð !Ý�‰FŒFˆÝ�‰FŒFˆØ�A’˜!˜aš%Ñ Ð Ð Ð ð!øøøs   ‚ Š ”5AÁAc                   ó    ‡ — e Zd Zej        gZej        ej        gZ	dZ
dZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zˆ xZS )r   é
   z  © c                 óŽ   •— t          t          | ¦  «                             |¦  «         d | _        |                      ¦   «          d S ©N)Úsuperr   Ú__init__ÚstreamÚreset©ÚselfÚstoreÚ	__class__s     €r   r   zRecursiveSerializer.__init__/   s:   ø€ åÕ! 4Ñ(Ô(×1Ò1°%Ñ8Ô8Ð8ØˆŒØ�
Š
‰Œˆˆˆó    c           	      ó”   — || j         v r4| j         |         |k    r#t          d|›d|›d| j         |         ›�¦  «        ‚|| j         |<   d S )Nz$Trying to override namespace prefix z => z, but it's already bound to )Ú
namespacesÚ	Exception)r!   ÚprefixÚuris      r   ÚaddNamespacez RecursiveSerializer.addNamespace5   sf   € Ø�T”_Ð$Ð$¨¬¸Ô)@ÀCÒ)GÐ)GÝ�)à�6�6˜3˜3˜3 ¤°Ô 7Ð 7ð9ñô ð ð #&ˆŒ˜ÑÐÐr$   c                 ó¸   — |                       |¦  «        sB|| j        vs9|| j        v r| j        dk    s%t	          |t
          ¦  «        r| j        | j        k    rdS dS )z4Check to see if the subject should be serialized yetr   FT)ÚisDoneÚ	_subjectsÚ
_topLevelsÚdepthÚ
isinstancer   ÚmaxDepth©r!   Úsubjects     r   ÚcheckSubjectz RecursiveSerializer.checkSubject=   sh   € ð �[Š[˜Ñ!Ô!ð	à˜tœ~Ð-Ð-Ø˜DœOÐ+Ð+°$´*¸q².°.Ý˜7¥FÑ+Ô+ð 3AØ15´¸t¼}Ò1LÐ1Là�5Øˆtr$   c                 ó   — || j         v S )z$Return true if subject is serialized©Ú_serializedr2   s     r   r,   zRecursiveSerializer.isDoneH   s   € à˜$Ô*Ð*Ð*r$   c                 ó’  ‡ ‡— i Šg }‰ j         D ]q}t          ‰ j                             t          j        |¦  «        ¦  «        }|                     ¦   «          |                     |¦  «         |D ]}d‰ j        |<   d‰|<   ŒŒrˆˆ fd„‰ j	        D ¦   «         }|                     ¦   «          |                     d„ |D ¦   «         ¦  «         |S )NTc                 ó^   •— g | ])}|‰v¯t          |t          ¦  «        ‰j        |         |f‘Œ*S r   )r0   r   Ú_references)Ú.0r3   Úseenr!   s     €€r   ú
<listcomp>z5RecursiveSerializer.orderSubjects.<locals>.<listcomp>Y   sG   ø€ ð 
ð 
ð 
àØ˜dÐ"Ð"õ ˜¥Ñ'Ô'¨Ô)9¸'Ô)BÀGÐLà"Ð"Ð"r$   c                 ó   — g | ]\  }}}|‘Œ	S r   r   )r;   ÚisbnodeÚrefsr3   s       r   r=   z5RecursiveSerializer.orderSubjects.<locals>.<listcomp>`   s   € ÐLÐLÐLÑ%= g¨t°W˜ÐLÐLÐLr$   )
Ú
topClassesÚlistr"   Úsubjectsr
   ÚtypeÚsortÚextendr.   r-   )r!   rC   ÚclassURIÚmembersÚmemberÚ
recursabler<   s   `     @r   ÚorderSubjectsz!RecursiveSerializer.orderSubjectsL   sñ   øø€ ØˆØˆàœð 	$ð 	$ˆHÝ˜4œ:×.Ò.­s¬x¸ÑBÔBÑCÔCˆGØ�LŠL‰NŒNˆNà�OŠO˜GÑ$Ô$Ð$Ø!ð $ð $�Ø*.�” Ñ'Ø#��V‘�ð$ð
ð 
ð 
ð 
ð 
àœ>ð
ñ 
ô 
ˆ
ð 	�ŠÑÔÐØ�ŠÐLÐLÀÐLÑLÔLÑMÔMÐMàˆr$   c                 ój   — | j                              d¦  «        D ]}|                      |¦  «         Œd S )N©NNN)r"   ÚtriplesÚpreprocessTriple)r!   Útriples     r   Ú
preprocesszRecursiveSerializer.preprocessd   sC   € Ø”j×(Ò(Ð);Ñ<Ô<ð 	*ð 	*ˆFØ×!Ò! &Ñ)Ô)Ð)Ð)ð	*ð 	*r$   c                 óP   — |\  }}}| j         |xx         dz  cc<   d| j        |<   d S )Nr   T)r:   r-   )r!   ÚspoÚsÚpÚos        r   rO   z$RecursiveSerializer.preprocessTripleh   s>   € Ø‰ˆˆ1ˆaØÔ˜ÐÐÔ˜qÑ ÐÐÑØ ˆŒ�qÑÐÐr$   c                 ó²  — d| _         i | _        i | _        t          t          ¦  «        | _        i | _        i | _        i | _        | j	        rŠt          | j	        d¦  «        r@| j                             ¦   «         D ]$\  }}|| j	        v r|                      ||¦  «         Œ%d S | j                             ¦   «         D ]\  }}|                      ||¦  «         Œd S d S )Nr   Ú__iter__)r/   Úlistsr&   r   Úintr:   r7   r-   r.   Úroundtrip_prefixesÚhasattrr"   r*   )r!   r(   Únss      r   r   zRecursiveSerializer.resetm   sý   € ØˆŒ
ØˆŒ
ØˆŒÝ&¥sÑ+Ô+ˆÔØˆÔØˆŒØˆŒàÔ"ð 	2Ý�tÔ.°
Ñ;Ô;ð 2Ø"&¤*×"7Ò"7Ñ"9Ô"9ð 6ð 6‘J�F˜BØ Ô!8Ð8Ð8Ø×)Ò)¨&°"Ñ5Ô5Ð5øð6ð 6ð #'¤*×"7Ò"7Ñ"9Ô"9ð 2ð 2‘J�F˜BØ×%Ò% f¨bÑ1Ô1Ð1Ð1ð	2ð 	2ð2ð 2r$   c                 ó²   — i }| j                              |ddf¦  «        D ]6\  }}}|                     |g ¦  «        }|                     |¦  «         |||<   Œ7|S )zb
        Build a hash key by predicate to a list of objects for the given
        subject
        N)r"   rN   ÚgetÚappend)r!   r3   Ú
propertiesrT   rU   rV   ÚoLists          r   ÚbuildPredicateHashz&RecursiveSerializer.buildPredicateHash   sh   € ð
 ˆ
Ø”z×)Ò)¨7°D¸$Ð*?Ñ@Ô@ð 	"ð 	"‰GˆAˆq�!Ø—N’N 1 bÑ)Ô)ˆEØ�LŠL˜‰OŒOˆOØ!ˆJ�q‰MˆMØÐr$   c                 óš  — |                      ¦   «         D ]-\  }}|                     t          t          ¦  «        ¬¦  «         Œ.g }i }| j        D ]$}||v r||vr|                     |¦  «         d||<   Œ%t          |                     ¦   «         ¦  «        }|                     ¦   «          |D ] }||vr|                     |¦  «         d||<   Œ!|S )zzTake a hash from predicate uris to lists of values.
        Sort the lists of values.  Return a sorted list of properties.)ÚkeyT)ÚitemsrE   r   r   ÚpredicateOrderr`   rB   Úkeys)r!   ra   ÚpropÚobjectsÚpropListr<   Úpropss          r   ÚsortPropertiesz"RecursiveSerializer.sortProperties‹   sñ   € ð (×-Ò-Ñ/Ô/ð 	=ð 	=‰MˆD�'Ø�LŠL�ZÕ(:Ñ;Ô;ˆLÑ<Ô<Ð<Ð<ð ˆØˆØÔ'ð 	"ð 	"ˆDØ˜
Ð"Ð"¨°TÐ)9Ð)9Ø—’ Ñ%Ô%Ð%Ø!��T‘
øÝ�Z—_’_Ñ&Ô&Ñ'Ô'ˆØ�
Š
‰ŒˆØð 	"ð 	"ˆDØ˜4ÐÐØ—’ Ñ%Ô%Ð%Ø!��T‘
øØˆr$   c                 ó   — d| j         |<   dS )zMark a subject as done.TNr6   r2   s     r   ÚsubjectDonezRecursiveSerializer.subjectDone¡   s   € à$(ˆÔ˜Ñ!Ð!Ð!r$   r   c                 ó&   — | j         |z   | j        z  S )z-Returns indent string multiplied by the depth)r/   ÚindentString)r!   Úmodifiers     r   ÚindentzRecursiveSerializer.indent¥   s   € à”
˜XÑ%¨Ô):Ñ:Ð:r$   c                 ól   — | j                              |                     | j        d¦  «        ¦  «         dS )zWrite text in given encoding.ÚreplaceN)r   ÚwriteÚencodeÚencoding)r!   Útexts     r   rv   zRecursiveSerializer.write©   s.   € àŒ×Ò˜$Ÿ+š+ d¤m°YÑ?Ô?Ñ@Ô@Ð@Ð@Ð@r$   )r   )Ú__name__Ú
__module__Ú__qualname__r   ÚClassrA   r
   rD   Úlabelrg   r1   rq   r[   r   r*   r4   r,   rK   rQ   rO   r   rc   rm   ro   rs   rv   Ú__classcell__©r#   s   @r   r   r   '   s  ø€ € € € € à”*�€JØ”h ¤
Ð+€NØ€HØ€LØÐðð ð ð ð ð&ð &ð &ð	ð 	ð 	ð+ð +ð +ðð ð ð0*ð *ð *ð!ð !ð !ð
2ð 2ð 2ð$
ð 
ð 
ðð ð ð,)ð )ð )ð;ð ;ð ;ð ;ðAð Að Að Að Að Að Ar$   r   é   Fc                   ó²   ‡ — e Zd ZdZdZˆ fd„Zˆ fd„Zˆ fd„Zdd„Zˆ fd„Z	dd
„Z
d„ Zd„ Zd„ Zd„ Zd„ Zdd„Zdd„Zd„ Zdd„Zd„ Zd„ Zdd„Zdd„Zd„ Zˆ xZS )r   Úturtlez    c                 óÚ   •— i | _         t          t          | ¦  «                             |¦  «         t          j        di| _        |                      ¦   «          d | _        t          | _
        d S )Nr   )Ú_ns_rewriter   r   r   r
   rD   Úkeywordsr   r   Ú_SPACIOUS_OUTPUTÚ	_spaciousr    s     €r   r   zTurtleSerializer.__init__»   sV   ø€ ØˆÔÝÕ Ñ%Ô%×.Ò.¨uÑ5Ô5Ð5Ýœ 3˜ˆŒØ�
Š
‰ŒˆØˆŒÝ)ˆŒˆˆr$   c                 óP  •— |dk    r|d         dk    s| j                              ||¦  «        |k    rJ|| j        vr&d|z   }|| j         v rd|z   }|| j         v °|| j        |<   | j                             ||¦  «        }t          t          | ¦  «                             ||¦  «         |S )NÚ r   Ú_rU   )r&   r_   r…   r   r   r*   )r!   r(   Ú	namespacerU   r#   s       €r   r*   zTurtleSerializer.addNamespaceÃ   sË   ø€ ð �RŠKˆK˜F 1œI¨Ò,Ð,°´×1DÒ1DØ�Iñ2
ô 2
àò2ð 2ð ˜TÔ-Ð-Ð-Ø˜&‘L�Ø˜4œ?Ð*Ð*Ø˜a™�Að ˜4œ?Ð*Ð*à+,�Ô  Ñ(àÔ%×)Ò)¨&°&Ñ9Ô9ˆFåÕ Ñ%Ô%×2Ò2°6¸9ÑEÔEÐEØˆr$   c                 ó€   •— t          t          | ¦  «                             ¦   «          i | _        d| _        i | _        d S )NF)r   r   r   Ú_shortNamesÚ_startedr…   )r!   r#   s    €r   r   zTurtleSerializer.resetÜ   s=   ø€ ÝÕ Ñ%Ô%×+Ò+Ñ-Ô-Ð-ØˆÔØˆŒØˆÔÐÐr$   Nc                 ó4  — |                       ¦   «          || _        |�|| _        n| j        j        �| j        j        | _        |�|| _        |                      ¦   «          |                      ¦   «         }|                      ¦   «          d}|D ]H}|                      |¦  «        rŒ|rd}|  	                    |¦  «        r|s|  
                    d¦  «         ŒI|                      ¦   «          | 
                    d                     d¦  «        ¦  «         d | _        d S )NTFú
zlatin-1)r   r   Úbaser"   rˆ   rQ   rK   ÚstartDocumentr,   Ú	statementrv   ÚendDocumentrw   )	r!   r   r’   rx   ÚspaciousÚargsÚsubjects_listÚ	firstTimer3   s	            r   Ú	serializezTurtleSerializer.serializeâ   s  € Ø�
Š
‰ŒˆØˆŒàÐØˆDŒIˆIØŒZŒ_Ð(Øœ
œˆDŒIàÐØ%ˆDŒNà�ŠÑÔÐØ×*Ò*Ñ,Ô,ˆà×ÒÑÔÐàˆ	Ø$ð 	!ð 	!ˆGØ�{Š{˜7Ñ#Ô#ð ØØð "Ø!�	Ø�~Š~˜gÑ&Ô&ð !¨yð !Ø—
’
˜4Ñ Ô Ð øà×ÒÑÔÐØ�Š�T—[’[ Ñ+Ô+Ñ,Ô,Ð,àˆŒ	ˆ	ˆ	r$   c                 ó¸  •— t          t          | ¦  «                             |¦  «         t          |¦  «        D ]l\  }}|| j        v rŒ|                      ||t          k    ¬¦  «         t          |t          ¦  «        r(|j	        r!|                      |j	        t          ¬¦  «         Œm|d         }t          |t          ¦  «        r| j        |xx         dz  cc<   d S d S )N)Ú
gen_prefixr   )r   r   rO   Ú	enumerater†   ÚgetQNameÚVERBr0   r   ÚdatatypeÚ_GEN_QNAME_FOR_DTr   r:   )r!   rP   ÚiÚnoderU   r#   s        €r   rO   z!TurtleSerializer.preprocessTriple  sê   ø€ ÝÕ Ñ%Ô%×6Ò6°vÑ>Ô>Ð>Ý  Ñ(Ô(ð 	Kð 	K‰GˆAˆtØ�t”}Ð$Ð$Øà�MŠM˜$¨AµªIˆMÑ7Ô7Ð7Ý˜$¥Ñ(Ô(ð K¨T¬]ð KØ—’˜dœmÕ8I�ÑJÔJÐJøØ�1ŒIˆÝ�a�ÑÔð 	%ØÔ˜QÐÐÔ 1Ñ$ÐÐÑÐÐð	%ð 	%r$   Tc                 óF  — t          |t          ¦  «        sd S d }	 | j                             ||¬¦  «        }n1#  | j        j                             |¦  «        }|�||df}nY d S Y nxY w|\  }}}|                     d¦  «        rd S |                      ||¦  «        }|›d|›�S )N)ÚgeneraterŠ   ú.ú:)r0   r   r"   Úcompute_qnamer(   Úendswithr*   )r!   r)   rœ   ÚpartsÚpfxr(   rŒ   Úlocals           r   rž   zTurtleSerializer.getQName  sÓ   € Ý˜#�vÑ&Ô&ð 	Ø�4àˆð	Ø”J×,Ò,¨S¸:Ð,ÑFÔFˆEˆEøð		ð ”*Ô"×)Ò)¨#Ñ.Ô.ˆCàˆØ˜c 2˜��ð �t�tð �øøøð
 $)Ñ ˆ�	˜5ð �>Š>˜#ÑÔð 	Ø�4à×"Ò" 6¨9Ñ5Ô5ˆà ˜&˜& % %Ð(Ð(s	   ›8 ¸)A&c           	      óˆ  — d| _         t          | j                             ¦   «         ¦  «        }| j        r2|                      |                      ¦   «         d| j        z  z   ¦  «         |D ]6\  }}|                      |                      ¦   «         d|›d|›d�z   ¦  «         Œ7|r| j        r|                      d¦  «         d S d S d S )NTz@base <%s> .
z@prefix z: <z> .
r‘   )r�   Úsortedr&   rf   r’   rv   rs   rˆ   )r!   Úns_listr(   r)   s       r   r“   zTurtleSerializer.startDocument+  sÙ   € ØˆŒÝ˜œ×.Ò.Ñ0Ô0Ñ1Ô1ˆàŒ9ð 	EØ�JŠJ�t—{’{‘}”}Ð'7¸$¼)Ñ'CÑCÑDÔDÐDØ"ð 	Oð 	O‰KˆF�CØ�JŠJ�t—{’{‘}”}�}ÀÀÀÈÈÈÐ'MÑMÑNÔNÐNÐNØð 	�t”~ð 	Ø�JŠJ�tÑÔÐÐÐð	ð 	ð 	ð 	r$   c                 óB   — | j         r|                      d¦  «         d S d S )Nr‘   )rˆ   rv   )r!   s    r   r•   zTurtleSerializer.endDocument6  s.   € ØŒ>ð 	Ø�JŠJ�tÑÔÐÐÐð	ð 	r$   c                 ó€   — |                       |¦  «         |                      |¦  «        p|                      |¦  «        S r   )ro   Ú	s_squaredÚ	s_defaultr2   s     r   r”   zTurtleSerializer.statement:  s9   € Ø×Ò˜Ñ!Ô!Ð!Ø�~Š~˜gÑ&Ô&ÐA¨$¯.ª.¸Ñ*AÔ*AÐAr$   c                 óä   — |                       d|                      ¦   «         z   ¦  «         |                      |t          ¦  «         |                      |¦  «         |                       d¦  «         dS )Nr‘   ú .T)rv   rs   ÚpathÚSUBJECTÚpredicateListr2   s     r   r³   zTurtleSerializer.s_default>  s`   € Ø�
Š
�4˜$Ÿ+š+™-œ-Ñ'Ñ(Ô(Ð(Ø�	Š	�'�7Ñ#Ô#Ð#Ø×Ò˜7Ñ#Ô#Ð#Ø�
Š
�4ÑÔÐØˆtr$   c                 ó  — | j         |         dk    st          |t          ¦  «        sdS |                      d|                      ¦   «         z   dz   ¦  «         |                      |¦  «         |                      d¦  «         dS )Nr   Fr‘   z[]rµ   T)r:   r0   r   rv   rs   r¸   r2   s     r   r²   zTurtleSerializer.s_squaredE  sx   € ØÔ˜WÔ%¨Ò)Ð)µ*¸WÅeÑ2LÔ2LÐ)Ø�5Ø�
Š
�4˜$Ÿ+š+™-œ-Ñ'¨$Ñ.Ñ/Ô/Ð/Ø×Ò˜7Ñ#Ô#Ð#Ø�
Š
�4ÑÔÐØˆtr$   Fc                 óŒ   — |                       |||¦  «        s*|                      |||¦  «        st          d|›d�¦  «        ‚d S d S )NzCannot serialize node 'ú')Ú	p_squaredÚ	p_defaultr   ©r!   r£   ÚpositionÚnewlines       r   r¶   zTurtleSerializer.pathM  se   € à�NŠN˜4 ¨7Ñ3Ô3ð	@à�~Š~˜d H¨gÑ6Ô6ð	@õ �%¸¸¸Ð>Ñ?Ô?Ð?ð		@ð 	@ð 	@ð 	@r$   c                 óœ   — |t           k    r|s|                      d¦  «         |                      |                      ||¦  «        ¦  «         dS )Nú T)r·   rv   r~   r¾   s       r   r½   zTurtleSerializer.p_defaultT  sF   € Ø•wÒÐ wÐØ�JŠJ�s‰OŒOˆOØ�
Š
�4—:’:˜d HÑ-Ô-Ñ.Ô.Ð.Øˆtr$   c                 óT  ‡ — |t           j        k    rdS |t          u r|‰ j        v r‰ j        |         S t	          |t
          ¦  «        r|                     dˆ fd„¬¦  «        S ‰                      |¦  «        }‰                      ||t          k    ¦  «        p| 	                    ¦   «         S )Nz()Tc                 ó:   •— ‰                      | t          ¦  «        S r   )rž   r¡   )Údtr!   s    €r   ú<lambda>z(TurtleSerializer.label.<locals>.<lambda>b  s   ø€ ¨$¯-ª-¸Õ<MÑ*NÔ*N€ r$   )Ú	use_plainÚqname_callback)
r
   ÚnilrŸ   r†   r0   r   Ú_literal_n3Ú
relativizerž   Ún3)r!   r£   r¿   s   `  r   r~   zTurtleSerializer.labelZ  s¯   ø€ Ø•3”7Š?ˆ?Ø�4Ø•tÐÐ ¨¬Ð 5Ð 5Ø”= Ô&Ð&Ý�d�GÑ$Ô$ð 	FØ×#Ò#ØØNÐNÐNÐNð $ñ ô ð ð
 —?’? 4Ñ(Ô(ˆDà—=’=  xµ4Ò'7Ñ8Ô8ÐE¸D¿GºG¹I¼IÐEr$   c                 ó¢  — t          |t          ¦  «        r%|| j        v s| j        |         dk    s|t          k    rdS |s|                      d¦  «         |                      |¦  «        r`|                      d¦  «         | xj        dz  c_        |                      |¦  «         | xj        dz  c_        |                      d¦  «         n†|  	                    |¦  «         | xj        dz  c_        |                      d¦  «         | xj        dz  c_        |  
                    |d¬¦  «         |                      d	¦  «         | xj        dz  c_        d
S )Nr   FrÂ   ú(z )r�   ú[©rÀ   z ]T)r0   r   r7   r:   r·   rv   ÚisValidListr/   ÚdoListro   r¸   r¾   s       r   r¼   zTurtleSerializer.p_squaredi  sF  € å˜4¥Ñ'Ô'ð	à�tÔ'Ð'Ð'ØÔ Ô%¨Ò)Ð)Ø�7Ò"Ð"à�5àð 	Ø�JŠJ�s‰OŒOˆOà×Ò˜DÑ!Ô!ð 	à�JŠJ�s‰OŒOˆOØˆJŒJ˜!‰OˆJŒJØ�KŠK˜ÑÔÐØˆJŒJ˜!‰OˆJŒJØ�JŠJ�tÑÔÐÐà×Ò˜TÑ"Ô"Ð"ØˆJŒJ˜!‰OˆJŒJà�JŠJ�s‰OŒOˆOØˆJŒJ˜!‰OˆJŒJà×Ò˜t¨UÐÑ3Ô3Ð3à�JŠJ�tÑÔÐØˆJŒJ˜!‰OˆJŒJàˆtr$   c                 óN  — 	 | j                              |t          j        ¦  «        €dS n#  Y dS xY w|rq|t          j        k    r:t          t          | j                              |¦  «        ¦  «        ¦  «        dk    rdS | j                              |t          j        ¦  «        }|°qdS )zW
        Checks if l is a valid RDF list, i.e. no nodes have other properties.
        NFr�   T)	r"   Úvaluer
   ÚfirstrÉ   ÚlenrB   Úpredicate_objectsÚrest)r!   Úl_s     r   rÑ   zTurtleSerializer.isValidListŠ  s¨   € ð	ØŒz×Ò ¥C¤IÑ.Ô.Ð6Ø�uð 7øð	Ø�5�5øøøØð 	0Ø•S”WŠ}ˆ}¥¥T¨$¬*×*FÒ*FÀrÑ*JÔ*JÑ%KÔ%KÑ!LÔ!LÐPQÒ!QÐ!QØ�uØ”×!Ò! "¥c¤hÑ/Ô/ˆBð ð 	0ð ˆts   ‚%* ª/c                 ó
  — |r€| j                              |t          j        ¦  «        }|�0|                      |t
          ¦  «         |                      |¦  «         | j                              |t          j        ¦  «        }|°~d S d S r   )r"   rÔ   r
   rÕ   r¶   ÚOBJECTro   rØ   )r!   rÙ   Úitems      r   rÒ   zTurtleSerializer.doList™  sˆ   € Øð 	0Ø”:×#Ò# B­¬	Ñ2Ô2ˆDØÐØ—	’	˜$¥Ñ'Ô'Ð'Ø× Ò  Ñ$Ô$Ð$Ø”×!Ò! "¥c¤hÑ/Ô/ˆBð ð 	0ð 	0ð 	0ð 	0ð 	0r$   c                 óÔ  — |                       |¦  «        }|                      |¦  «        }t          |¦  «        dk    rd S |                      |d         |¬¦  «         |                      ||d                  ¦  «         |dd …         D ]_}|                      d|                      d¦  «        z   ¦  «         |                      |d¬¦  «         |                      ||         ¦  «         Œ`d S )Nr   rÐ   r   z ;
T)rc   rm   rÖ   ÚverbÚ
objectListrv   rs   )r!   r3   rÀ   ra   rk   Ú	predicates         r   r¸   zTurtleSerializer.predicateList¡  så   € Ø×,Ò,¨WÑ5Ô5ˆ
Ø×&Ò& zÑ2Ô2ˆÝˆx‰=Œ=˜AÒÐØˆFØ�	Š	�(˜1”+ wˆ	Ñ/Ô/Ð/Ø�Š˜
 8¨A¤;Ô/Ñ0Ô0Ð0Ø! ! " "œð 	3ð 	3ˆIØ�JŠJ�v §¢¨A¡¤Ñ.Ñ/Ô/Ð/Ø�IŠI�i¨ˆIÑ.Ô.Ð.Ø�OŠO˜J yÔ1Ñ2Ô2Ð2Ð2ð	3ð 	3r$   c                 ó>   — |                       |t          |¦  «         d S r   )r¶   rŸ   )r!   r£   rÀ   s      r   rÞ   zTurtleSerializer.verb­  s   € Ø�	Š	�$�˜gÑ&Ô&Ð&Ð&Ð&r$   c                 ót  — t          |¦  «        }|dk    rd S |dk    rdpd}| xj        |z  c_        |                      |d         t          ¦  «         |dd …         D ]J}|                      d|                      d¦  «        z   ¦  «         |                      |t          d¬¦  «         ŒK| xj        |z  c_        d S )Nr   r   z,
TrÐ   )rÖ   r/   r¶   rÛ   rv   rs   )r!   rj   ÚcountÚdepthmodÚobjs        r   rß   zTurtleSerializer.objectList°  s½   € Ý�G‘”ˆØ�AŠ:ˆ:ØˆFØ˜Q’JÐ% AÐ*¨ˆØˆ
Œ
�hÑˆ
Œ
Ø�	Š	�'˜!”*�fÑ%Ô%Ð%Ø˜1˜2˜2”;ð 	1ð 	1ˆCØ�JŠJ�u˜tŸ{š{¨1™~œ~Ñ-Ñ.Ô.Ð.Ø�IŠI�c�6¨4ˆIÑ0Ô0Ð0Ð0Øˆ
Œ
�hÑˆ
Œ
ˆ
ˆ
r$   rM   )T)F)rz   r{   r|   Ú
short_namerq   r   r*   r   rš   rO   rž   r“   r•   r”   r³   r²   r¶   r½   r~   r¼   rÑ   rÒ   r¸   rÞ   rß   r   r€   s   @r   r   r   ¶   s«  ø€ € € € € à€JØ€Lð*ð *ð *ð *ð *ðð ð ð ð ð2ð ð ð ð ðð ð ð ð>%ð %ð %ð %ð %ð)ð )ð )ð )ð:	ð 	ð 	ðð ð ðBð Bð Bðð ð ðð ð ð@ð @ð @ð @ðð ð ð ðFð Fð Fðð ð ð ðBð ð ð0ð 0ð 0ð
3ð 
3ð 
3ð 
3ð'ð 'ð 'ð 'ð
ð 
ð 
ð 
ð 
ð 
ð 
r$   N)Ú__doc__Úcollectionsr   Ú	functoolsr   Úrdflib.termr   r   r   Úrdflib.exceptionsr   Úrdflib.serializerr	   Úrdflib.namespacer
   r   Ú__all__r   r   r·   rŸ   rÛ   r¡   r‡   r   r   r$   r   ú<module>rï      s@  ððð ð
 $Ð #Ð #Ð #Ð #Ð #Ø  Ð  Ð  Ð  Ð  Ð  à .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø #Ð #Ð #Ð #Ð #Ð #Ø (Ð (Ð (Ð (Ð (Ð (Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à Ð"4Ð
5€ð!ð !ð !ð,DAð DAð DAð DAð DA˜*ñ DAô DAð DAðN €Ø€Ø	
€àÐ ØÐ ðDð Dð Dð Dð DÐ*ñ Dô Dð Dð Dð Dr$   