§
    kÃ¿aÏ^  ã                   óÖ  — d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZmZmZ dZg d	¢Z e j        e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¬¦  «        Z G d„ de¦  «        Z ed¦  «        Z G d„ de¦  «        Zg d¢Zedgz   Zeg d¢z   Z g d¢Z!d„ Z"efd„Z#d„ Z$d„ Z%d „ Z&d d!l'm(Z( d d"l)m*Z* d d#l+m,Z, d d$l-m.Z. d d%l/m0Z0 d d&l1m2Z2 d d'l3m4Z4 d d(l5m6Z6 d d)l7m8Z8 d d*l9m:Z: d d+l;m<Z< d d,l=m>Z> d d-l?m@Z@ d d.lAmBZB d d/lCmDZD d d0lEmFZF d d1lGmHZH d d2lImJZJ d d3lKmLZL d d4lMmNZN d d5lOmPZP d d6lQmRZR d d7lSmTZT d d8lUmVZV d d9lWmXZX d d:lYmZZZ dS );é    N)ÚList)Úcategory)ÚPath)Ú	urldefrag)Úurljoin)ÚURIRefÚVariableÚ_is_valid_uriaŽ  
===================
Namespace Utilities
===================

RDFLib provides mechanisms for managing Namespaces.

In particular, there is a :class:`~rdflib.namespace.Namespace` class
that takes as its argument the base URI of the namespace.

.. code-block:: pycon

    >>> from rdflib.namespace import Namespace
    >>> RDFS = Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#")

Fully qualified URIs in the namespace can be constructed either by attribute
or by dictionary access on Namespace instances:

.. code-block:: pycon

    >>> RDFS.seeAlso
    rdflib.term.URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#seeAlso')
    >>> RDFS['seeAlso']
    rdflib.term.URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#seeAlso')


Automatic handling of unknown predicates
-----------------------------------------

As a programming convenience, a namespace binding is automatically
created when :class:`rdflib.term.URIRef` predicates are added to the graph.

Importable namespaces
-----------------------

The following namespaces are available by directly importing from rdflib:

* BRICK
* CSVW
* DC
* DCAT
* DCMITYPE
* DCTERMS
* DCAM
* DOAP
* FOAF
* ODRL2
* ORG
* OWL
* PROF
* PROV
* QB
* RDF
* RDFS
* SDO
* SH
* SKOS
* SOSA
* SSN
* TIME
* VANN
* VOID
* XSD

.. code-block:: pycon
    >>> from rdflib.namespace import RDFS
    >>> RDFS.seeAlso
    rdflib.term.URIRef('http://www.w3.org/2000/01/rdf-schema#seeAlso')
)Ú	is_ncnameÚ	split_uriÚ	NamespaceÚClosedNamespaceÚNamespaceManagerc                   óV   ‡ — e Zd ZdZd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Z	ˆ fd„Z
d„ Zˆ xZS )	r   aø  
    Utility class for quickly generating URIRefs with a common prefix

    >>> from rdflib.namespace import Namespace
    >>> n = Namespace("http://example.org/")
    >>> n.Person # as attribute
    rdflib.term.URIRef('http://example.org/Person')
    >>> n['first-name'] # as item - for things that are not valid python identifiers
    rdflib.term.URIRef('http://example.org/first-name')
    >>> n.Person in n
    True
    >>> n2 = Namespace("http://example2.org/")
    >>> n.Person in n2
    False
    c                 ó˜   — 	 t                                | |¦  «        }n,# t          $ r t                                | |d¦  «        }Y nw xY w|S ©Nzutf-8©ÚstrÚ__new__ÚUnicodeDecodeError©ÚclsÚvalueÚrts      ú;/usr/lib/python3/dist-packages/rdflib/namespace/__init__.pyr   zNamespace.__new__h   óU   € ð	2Ý—’˜S %Ñ(Ô(ˆBˆBøÝ!ð 	2ð 	2ð 	2Ý—’˜S %¨Ñ1Ô1ˆBˆBˆBð	2øøøàˆ	ó   ‚ ž&AÁAc                 ó&   — t          | dz   ¦  «        S )NÚtitle©r   ©Úselfs    r   r   zNamespace.titleo   s   € õ �d˜W‘nÑ%Ô%Ð%ó    c                 óT   — t          | t          |t          ¦  «        r|ndz   ¦  «        S )NÚ )r   Ú
isinstancer   ©r"   Únames     r   ÚtermzNamespace.termt   s(   € å�d¥j°µsÑ&;Ô&;ÐC˜d˜dÀÑDÑEÔEÐEr#   c                 ó,   — |                       |¦  «        S ©N©r)   ©r"   Úkeys     r   Ú__getitem__zNamespace.__getitem__x   ó   € Ø�yŠy˜‰~Œ~Ðr#   c                 ód   — |                      d¦  «        rt          ‚|                      |¦  «        S ©NÚ__)Ú
startswithÚAttributeErrorr)   r'   s     r   Ú__getattr__zNamespace.__getattr__{   s,   € Ø�?Š?˜4Ñ Ô ð 	!Ý Ð Ø�yŠy˜‰ŒÐr#   c                 óL   •— dt          ¦   «                              ¦   «         › d�S )Nz
Namespace(ú)©ÚsuperÚ__repr__©r"   Ú	__class__s    €r   r;   zNamespace.__repr__€   s$   ø€ Ø1�E™GœG×,Ò,Ñ.Ô.Ð1Ð1Ð1Ð1r#   c                 ó,   — |                      | ¦  «        S )aÊ  Allows to check if a URI is within (starts with) this Namespace.

        >>> from rdflib import URIRef
        >>> namespace = Namespace('http://example.org/')
        >>> uri = URIRef('http://example.org/foo')
        >>> uri in namespace
        True
        >>> person_class = namespace['Person']
        >>> person_class in namespace
        True
        >>> obj = URIRef('http://not.example.org/bar')
        >>> obj in namespace
        False
        ©r4   ©r"   Úrefs     r   Ú__contains__zNamespace.__contains__ƒ   s   € ð �~Š~˜dÑ#Ô#Ð#r#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r)   r/   r6   r;   rB   Ú__classcell__©r=   s   @r   r   r   W   s«   ø€ € € € € ðð ð ð ð ð ð&ð &ñ „Xð&ðFð Fð Fðð ð ðð ð ð
2ð 2ð 2ð 2ð 2ð$ð $ð $ð $ð $ð $ð $r#   r   c                   ó<   ‡ — e Zd ZdZd„ Zˆ fd„Zˆ fd„Zˆ fd„Zˆ xZS )Ú
URIPatterna8  
    Utility class for creating URIs according to some pattern
    This supports either new style formatting with .format
    or old-style with % operator

    >>> u=URIPattern("http://example.org/%s/%d/resource")
    >>> u%('books', 12345)
    rdflib.term.URIRef('http://example.org/books/12345/resource')

    c                 ó˜   — 	 t                                | |¦  «        }n,# t          $ r t                                | |d¦  «        }Y nw xY w|S r   r   r   s      r   r   zURIPattern.__new__¡   r   r   c                 óP   •— t           t          ¦   «         j        |i |¤Ž¦  «        S r+   )r   r:   Ú__mod__©r"   ÚargsÚkwargsr=   s      €r   rN   zURIPattern.__mod__¨   s&   ø€ Ý�o•e‘g”g”o tÐ6¨vÐ6Ð6Ñ7Ô7Ð7r#   c                 óP   •— t           t          ¦   «         j        |i |¤Ž¦  «        S r+   )r   r:   ÚformatrO   s      €r   rS   zURIPattern.format«   s&   ø€ Ý�n•e‘g”g”n dÐ5¨fÐ5Ð5Ñ6Ô6Ð6r#   c                 óL   •— dt          ¦   «                              ¦   «         › d�S )NzURIPattern(r8   r9   r<   s    €r   r;   zURIPattern.__repr__®   s$   ø€ Ø2�U™WœW×-Ò-Ñ/Ô/Ð2Ð2Ð2Ð2r#   )	rC   rD   rE   rF   r   rN   rS   r;   rH   rI   s   @r   rK   rK   •   sƒ   ø€ € € € € ð	ð 	ðð ð ð8ð 8ð 8ð 8ð 8ð7ð 7ð 7ð 7ð 7ð3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3r#   rK   c                   ó–   ‡ — e Zd ZU dZeed<   dZeed<   dZeed<   g Z	e
e         ed<   dZeed<   dˆ fd
„	Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zˆ xZS )ÚDefinedNamespaceMetazH
    Utility metaclass for generating URIRefs with a common prefix

    Ú_NSTÚ_warnFÚ_failÚ_extrasÚ_underscore_numNc                 ón  •— t          |¦  «        }t          |¦  «                             d¦  «        r"t          ¦   «                              ||¦  «        S | j        s| j        rG|| vrC| j        rt          d|› d| j        › d�¦  «        ‚t          j	        d|› d| j
        › �d¬¦  «         | j        |         S )	Nr3   úterm 'ú' not in namespace 'ú'zCode: z is not defined in namespace é   )Ú
stacklevel)r   r4   r:   r/   rX   rY   r5   rW   ÚwarningsÚwarnrC   )r   r(   Údefaultr=   s      €r   r/   z DefinedNamespaceMeta.__getitem__¾   sÌ   ø€ Ý�4‰yŒyˆÝˆt‰9Œ9×Ò Ñ%Ô%ð 	6Ý‘7”7×&Ò& t¨WÑ5Ô5Ð5ØŒIð 	˜œð 	¨°C¨¨ØŒyð Ý$Ð%R¨dÐ%RÐ%RÈÌÐ%RÐ%RÐ%RÑSÔSÐSå”ØN˜TÐNÐNÀÄÐNÐNØ ðñ ô ð ð Œw�tŒ}Ðr#   c                 ó,   — |                       |¦  «        S r+   ©r/   )r   r(   s     r   r6   z DefinedNamespaceMeta.__getattr__Ì   s   € Ø�Š˜tÑ$Ô$Ð$r#   c                 ó   — d| j         › d�S )NzNamespace("z"))rW   ©r   s    r   r;   zDefinedNamespaceMeta.__repr__Ï   s   € Ø(˜SœWÐ(Ð(Ð(Ð(r#   c                 ó*   — t          | j        ¦  «        S r+   )r   rW   rh   s    r   Ú__str__zDefinedNamespaceMeta.__str__Ò   s   € Ý�3”7‰|Œ|Ðr#   c                 ó,   — |                       |¦  «        S r+   rf   )r   Úothers     r   Ú__add__zDefinedNamespaceMeta.__add__Õ   s   € Ø�Š˜uÑ%Ô%Ð%r#   c                 óŽ  •‡ ‡— t          |¦  «        Š‰                     d¦  «        r!t          ¦   «                              |¦  «        S ‰                     t          ‰ j        ¦  «        ¦  «        r)‰t          t          ‰ j        ¦  «        ¦  «        d…         Št          ˆ ˆfd„‰                      ¦   «         D ¦   «         ¦  «        S )zGDetermine whether a URI or an individual item belongs to this namespacer3   Nc              3   óÄ   •K  — | ]Z}t          |t          ¦  «        ¯‰|j        v p7‰|j        v p.‰j        o'‰d          dk    o‰dd…                              ¦   «         V — Œ[dS )r   Ú_é   N)Ú
issubclassÚDefinedNamespaceÚ__annotations__rZ   r[   Úisdigit)Ú.0Úcr   Úitem_strs     €€r   ú	<genexpr>z4DefinedNamespaceMeta.__contains__.<locals>.<genexpr>ß   s•   øè è € ð 
ð 
ð Ý˜!Õ-Ñ.Ô.ð
Ø˜Ô)Ð)ð WØ˜1œ9Ð$ðWàÔ#ÐU¨°¬°sÒ(:ÐU¸xÈÈÈ¼|×?SÒ?SÑ?UÔ?Uð
ð 
ð 
ð 
ð 
ð 
r#   )r   r4   r:   rB   rW   ÚlenÚanyÚmro)r   Úitemrx   r=   s   ` @€r   rB   z!DefinedNamespaceMeta.__contains__Ø   sÃ   øøø€ å�t‘9”9ˆØ×Ò˜tÑ$Ô$ð 	.Ý‘7”7×'Ò'¨Ñ-Ô-Ð-Ø×Ò�s 3¤7™|œ|Ñ,Ô,ð 	5Ø¥¥C¨¬¡L¤LÑ 1Ô 1Ð 3Ð 3Ô4ˆHÝð 
ð 
ð 
ð 
ð 
ð —W’W‘Y”Yð	
ñ 
ô 
ñ 
ô 
ð 	
r#   r+   )rC   rD   rE   rF   r   rt   rX   ÚboolrY   rZ   r   r   r[   r/   r6   r;   rj   rm   rB   rH   rI   s   @r   rV   rV   ²   sí   ø€ € € € € € ðð ð
 
€N€N�NØ€Eˆ4ÐÐÑØ€Eˆ4ÐÐÑØ€GˆT�#ŒYÐÐÑØ!€O�TÐ!Ð!Ñ!ðð ð ð ð ð ð%ð %ð %ð)ð )ð )ðð ð ð&ð &ð &ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r#   rV   c                   ó   — e Zd ZdZd„ ZdS )rs   z…
    A Namespace with an enumerated list of members.
    Warnings are emitted if unknown members are referenced if _warn is True
    c                 ó    — t          d¦  «        ‚)Nz!namespace may not be instantiated)Ú	TypeErrorr!   s    r   Ú__init__zDefinedNamespace.__init__î   s   € ÝÐ;Ñ<Ô<Ð<r#   N)rC   rD   rE   rF   r‚   © r#   r   rs   rs   è   s-   € € € € € ðð ð
=ð =ð =ð =ð =r#   rs   )Ú	metaclassc                   ób   ‡ — e Zd ZdZˆ fd„Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zˆ xZS )r   zf
    A namespace with a closed list of members

    Trying to create terms not listed is an error
    c                 ót   •‡— t          ¦   «                              | |¦  «        Šˆfd„|D ¦   «         ‰_        ‰S )Nc                 ó6   •— i | ]}|t          ‰|z   ¦  «        “ŒS rƒ   r    )rv   Útr   s     €r   ú
<dictcomp>z+ClosedNamespace.__new__.<locals>.<dictcomp>û   s%   ø€ Ð6Ð6Ð6¨1�Q�˜r A™v™œÐ6Ð6Ð6r#   )r:   r   Ú_ClosedNamespace__uris)r   ÚuriÚtermsr   r=   s      @€r   r   zClosedNamespace.__new__ù   s;   øø€ Ý‰WŒW�_Š_˜S #Ñ&Ô&ˆØ6Ð6Ð6Ð6°Ð6Ñ6Ô6ˆŒ	Øˆ	r#   c                 ó    — t          | ¦  «        S r+   )r   r!   s    r   r‹   zClosedNamespace.uriþ   s   € å�4‰yŒyÐr#   c                 ój   — | j                              |¦  «        }|€t          d|› d| › d�¦  «        ‚|S )Nr]   r^   r_   )rŠ   ÚgetÚKeyError)r"   r(   r‹   s      r   r)   zClosedNamespace.term  sA   € ØŒk�oŠo˜dÑ#Ô#ˆØˆ;ÝÐE DÐEÐE¸dÐEÐEÐEÑFÔFÐFØˆ
r#   c                 ó,   — |                       |¦  «        S r+   r,   r-   s     r   r/   zClosedNamespace.__getitem__  r0   r#   c                 ó¨   — |                      d¦  «        rt          ‚	 |                      |¦  «        S # t          $ r}t          |¦  «        ‚d }~ww xY wr2   )r4   r5   r)   r�   )r"   r(   Úes      r   r6   zClosedNamespace.__getattr__  s^   € Ø�?Š?˜4Ñ Ô ð 	(Ý Ð ð(Ø—y’y ‘”Ð&øÝð (ð (ð (Ý$ QÑ'Ô'Ð'øøøøð(øøøs   ž3 ³
A½AÁAc                 óP   — | j         › d| j        j        › dt          | ¦  «        ›d�S )Nú.ú(r8   )rD   r=   rC   r   r!   s    r   r;   zClosedNamespace.__repr__  s.   € Ø”/ÐLÐL D¤NÔ$;ÐLÐL½cÀ$¹i¼iÐLÐLÐLÐLr#   c                 ó*   — t          | j        ¦  «        S r+   )ÚlistrŠ   r!   s    r   Ú__dir__zClosedNamespace.__dir__  s   € Ý�D”KÑ Ô Ð r#   c                 ó8   — || j                              ¦   «         v S r+   )rŠ   Úvaluesr@   s     r   rB   zClosedNamespace.__contains__  s   € à�4”;×%Ò%Ñ'Ô'Ð'ð	
r#   c                 ó    — t          | ¦  «        S r+   )Údirr!   s    r   Ú_ipython_key_completions_z)ClosedNamespace._ipython_key_completions_  s   € Ý�4‰yŒyÐr#   )rC   rD   rE   rF   r   rG   r‹   r)   r/   r6   r;   r™   rB   rž   rH   rI   s   @r   r   r   ò   sÉ   ø€ € € € € ðð ðð ð ð ð ð
 ðð ñ „Xððð ð ðð ð ð(ð (ð (ðMð Mð Mð!ð !ð !ð
ð 
ð 
ð
ð ð ð ð ð ð r#   r   z$http://www.w3.org/XML/1998/namespacec                   óx   — e Zd ZdZd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Z	d„ Z
defd	„Zdd„Zdd„Zdd„Zd„ Zdd„ZdS )r   at  

    Class for managing prefix => namespace mappings

    Sample usage from FuXi ...

    .. code-block:: python

        ruleStore = N3RuleStore(additionalBuiltins=additionalBuiltins)
        nsMgr = NamespaceManager(Graph(ruleStore))
        ruleGraph = Graph(ruleStore,namespace_manager=nsMgr)


    and ...

    .. code-block:: pycon

        >>> import rdflib
        >>> from rdflib import Graph
        >>> from rdflib.namespace import Namespace, NamespaceManager
        >>> exNs = Namespace('http://example.com/')
        >>> namespace_manager = NamespaceManager(Graph())
        >>> namespace_manager.bind('ex', exNs, override=False)
        >>> g = Graph()
        >>> g.namespace_manager = namespace_manager
        >>> all_ns = [n for n in g.namespace_manager.namespaces()]
        >>> assert ('ex', rdflib.term.URIRef('http://example.com/')) in all_ns
        >>>

    c                 ó„  — || _         i | _        i | _        d | _        i | _        i | _        |                      ¦   «         D ]'\  }}t          | j        t          |¦  «        ¦  «         Œ(|  	                    dt          ¦  «         |  	                    dt          ¦  «         |  	                    dt          ¦  «         |  	                    dt          ¦  «         |  	                    dt          ¦  «         |  	                    dt          ¦  «         |  	                    dt           ¦  «         |  	                    dt"          ¦  «         |  	                    d	t$          ¦  «         |  	                    d
t&          ¦  «         |  	                    dt(          ¦  «         |  	                    dt*          ¦  «         |  	                    dt,          ¦  «         |  	                    dt.          ¦  «         |  	                    dt0          ¦  «         |  	                    dt2          ¦  «         |  	                    dt4          ¦  «         |  	                    dt6          ¦  «         |  	                    dt8          ¦  «         |  	                    dt:          ¦  «         |  	                    dt<          ¦  «         |  	                    dt>          ¦  «         |  	                    dt@          ¦  «         |  	                    dtB          ¦  «         |  	                    dtD          ¦  «         |  	                    dtF          ¦  «         |  	                    dtH          ¦  «         d S )NÚbrickÚcsvwÚdcÚdcatÚdcmitypeÚdctermsÚdcamÚdoapÚfoafÚodrlÚorgÚowlÚprofÚprovÚqbÚrdfÚrdfsÚschemaÚshÚskosÚsosaÚssnÚtimeÚvannÚvoidÚxsdÚxml)%ÚgraphÚ_NamespaceManager__cacheÚ_NamespaceManager__cache_strictÚ_NamespaceManager__logÚ_NamespaceManager__strieÚ_NamespaceManager__trieÚ
namespacesÚinsert_trier   ÚbindÚBRICKÚCSVWÚDCÚDCATÚDCMITYPEÚDCTERMSÚDCAMÚDOAPÚFOAFÚODRL2ÚORGÚOWLÚPROFÚPROVÚQBÚRDFÚRDFSÚSDOÚSHÚSKOSÚSOSAÚSSNÚTIMEÚVANNÚVOIDÚXSDÚXMLNS)r"   r¼   ÚpÚns       r   r‚   zNamespaceManager.__init__F  s‹  € ØˆŒ
ØˆŒØ ˆÔØˆŒ
ØˆŒØˆŒØ—O’OÑ%Ô%ð 	-ð 	-‰DˆAˆqÝ˜œ¥S¨¡V¤VÑ,Ô,Ð,Ð,ð 	�	Š	�'�5Ñ!Ô!Ð!Ø�	Š	�&�$ÑÔÐØ�	Š	�$�ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�*�hÑ'Ô'Ð'Ø�	Š	�)�WÑ%Ô%Ð%Ø�	Š	�&�$ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�&�%Ñ Ô Ð Ø�	Š	�%�ÑÔÐØ�	Š	�%�ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�$�ÑÔÐØ�	Š	�%�ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�(�CÑ Ô Ð Ø�	Š	�$�ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�%�ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�&�$ÑÔÐØ�	Š	�%�ÑÔÐð 	�	Š	�%�ÑÔÐÐÐr#   c                 ó^   ‡— t          ˆfd„|                      ¦   «         D ¦   «         ¦  «        S )Nc              3   óH   •K  — | ]\  }}‰                      |¦  «        V — Œd S r+   r?   )rv   ÚprefixÚnsrA   s      €r   ry   z0NamespaceManager.__contains__.<locals>.<genexpr>t  s3   øè è € ÐJÐJ©*¨&°"�3—>’> "Ñ%Ô%ÐJÐJÐJÐJÐJÐJr#   )r{   rÂ   r@   s    `r   rB   zNamespaceManager.__contains__o  s2   ø€ õ
 ÐJÐJÐJÐJ¸¿ºÑ8IÔ8IÐJÑJÔJÑJÔJÐJr#   c                 ó¨   — i | _         i | _        i | _        |                      ¦   «         D ]'\  }}t	          | j        t          |¦  «        ¦  «         Œ(d S r+   )r½   rÀ   rÁ   rÂ   rÃ   r   )r"   rà   rá   s      r   ÚresetzNamespaceManager.resetv  sY   € ØˆŒØˆŒØˆŒØ—O’OÑ%Ô%ð 	-ð 	-‰DˆAˆqÝ˜œ¥S¨¡V¤VÑ,Ô,Ð,Ð,ð	-ð 	-r#   c                 ó   — | j         j        S r+   )r¼   Ústorer!   s    r   ré   zNamespaceManager.store}  s   € àŒzÔÐr#   c                 ór   — |                       |¦  «        \  }}}|dk    r|S d                     ||f¦  «        S ©Nr%   ú:)Úcompute_qnameÚjoin©r"   r‹   rä   Ú	namespacer(   s        r   ÚqnamezNamespaceManager.qname�  s@   € Ø"&×"4Ò"4°SÑ"9Ô"9Ñˆ�	˜4Ø�RŠ<ˆ<ØˆKà—8’8˜V T˜NÑ+Ô+Ð+r#   c                 ór   — |                       |¦  «        \  }}}|dk    r|S d                     ||f¦  «        S rë   )Úcompute_qname_strictrî   rï   s        r   Úqname_strictzNamespaceManager.qname_strictˆ  s@   € Ø"&×";Ò";¸CÑ"@Ô"@Ñˆ�	˜4Ø�RŠ<ˆ<ØˆKà—8’8˜V T˜NÑ+Ô+Ð+r#   Úreturnc                 óþ  — 	 t          |¦  «        \  }}|| j        vr(t          | j        | j        t	          |¦  «        ¦  «         t          t	          |¦  «        ¦  «        }n(#  t          |t          ¦  «        rd|z  cY S d|z  cY S xY w| j         	                    |¦  «        }|€t          |t          ¦  «        rd|z  S |€d|z  S |  
                    |¦  «        }d                     |d         |d         g¦  «        S )z¶
        Takes an RDF Term and 'normalizes' it into a QName (using the
        registered prefix) or (unlike compute_qname) the Notation 3
        form for URIs: <...URI...>
        z?%sz<%s>Nrì   r   éÿÿÿÿ)r   rÀ   Úinsert_strierÁ   r   r   r&   r	   ré   rä   rí   rî   )r"   ÚrdfTermrð   r(   rä   Ú
qNamePartss         r   ÚnormalizeUrizNamespaceManager.normalizeUri�  s  € ð		(Ý'¨Ñ0Ô0‰OˆI�tØ ¤Ð,Ð,Ý˜Tœ\¨4¬;½¸I¹¼ÑGÔGÐGÝ�s 9™~œ~Ñ.Ô.ˆIˆIøð	(Ý˜'¥8Ñ,Ô,ð (Ø˜w‘Ð&Ð&Ð&à Ñ'Ð'Ð'Ð'øøøØ”×"Ò" 9Ñ-Ô-ˆØˆ>�j¨µ(Ñ;Ô;ˆ>Ø˜7‘?Ð"Øˆ^Ø˜GÑ#Ð#à×+Ò+¨GÑ4Ô4ˆJØ—8’8˜Z¨œ]¨J°r¬NÐ;Ñ<Ô<Ð<s   ‚AA" Á"BÂ BTc                 óF  — t          |¦  «        s"t          d                     |¦  «        ¦  «        ‚|| j        v�rZ	 t	          |¦  «        \  }}nD# t          $ r7}t          |¦  «        }| j                             |¦  «        }|s|‚Y d }~nd }~ww xY w|| j        vrt          | j        | j
        |¦  «         | j        |         r6t          | j        |         |¦  «        }|�|}|t          |¦  «        d …         }t          |¦  «        }| j                             |¦  «        }|€c|s"t          d                     |¦  «        ¦  «        ‚d}	 d|z  }| j                             |¦  «        sn|dz  }Œ&|                      ||¦  «         |||f| j        |<   | j        |         S )NzY"{}" does not look like a valid URI, cannot serialize this. Did you want to urlencode it?ú)No known prefix for {} and generate=Falserq   úns%s)r
   Ú
ValueErrorrS   r½   r   r   ré   rä   rÀ   rø   rÁ   Úget_longest_namespacerz   r�   rð   rÄ   )	r"   r‹   Úgeneraterð   r(   r“   rä   Úpl_namespaceÚnums	            r   rí   zNamespaceManager.compute_qname¨  sõ  € å˜SÑ!Ô!ð 	ÝØk×rÒrØñô ñô ð ð �d”lÐ"Ñ"ðÝ"+¨C¡.¤.‘�	˜4˜4øÝð ð ð Ý" 3™KœK�	Øœ×*Ò*¨9Ñ5Ô5�Øð Ø�Gðð ð ð ð øøøøðøøøð
  ¤Ð,Ð,Ý˜Tœ\¨4¬;¸	ÑBÔBÐBàŒ|˜IÔ&ð 1Ý4°T´\À)Ô5LÈcÑRÔR�ØÐ+Ø ,�IØ�s 9™~œ~Ð/Ð/Ô0�Då˜yÑ)Ô)ˆIØ”Z×&Ò& yÑ1Ô1ˆFàˆ~Øð Ý"ØC×JÒJÈ9ÑUÔUñô ð ð �ðØ# c™\�FØœ:×/Ò/°Ñ7Ô7ð ØØ˜1‘H�Cð	ð
 —	’	˜& )Ñ,Ô,Ð,Ø!'¨°DÐ 9ˆDŒL˜ÑØŒ|˜CÔ Ð s   ½A Á
BÁ-BÂBc                 óÂ  — |                       |¦  «        \  }}}t          t          |¦  «        ¦  «        r|||fS || j        v�r	 t	          |t
          ¦  «        \  }}n6# t          $ r)}d                     |¦  «        }t          |¦  «        ‚d }~ww xY w|| j        vrt          | j        | j
        |¦  «         t          |¦  «        }| j                             |¦  «        }|€c|s"t          d                     |¦  «        ¦  «        ‚d}	 d|z  }| j                             |¦  «        sn|dz  }Œ&|                      ||¦  «         |||f| j        |<   | j        |         S )Nz^This graph cannot be serialized to a strict format because there is no valid way to shorten {}rý   rq   rþ   )rí   r   r   r¾   r   ÚNAME_START_CATEGORIESrÿ   rS   rÀ   rø   rÁ   r   ré   rä   r�   rð   rÄ   )	r"   r‹   r  rä   rð   r(   r“   Úmessager  s	            r   ró   z%NamespaceManager.compute_qname_strictÔ  sª  € ð #'×"4Ò"4°SÑ"9Ô"9Ñˆ�	˜4Ý•S˜‘Y”YÑÔð 1	,Ø˜9 dÐ*Ð*à˜$Ô-Ð-Ñ-ð.Ý&/°Õ5JÑ&KÔ&K‘O�I˜t˜tøÝ!ð .ð .ð .ðFßFLÂfÈSÁkÄkð õ % WÑ-Ô-Ð-øøøøð.øøøð  D¤LÐ0Ð0Ý  ¤¨t¬{¸IÑFÔFÐFõ # 9Ñ-Ô-�	Øœ×*Ò*Øñô �ð �>Ø#ð Ý&ØG×NÒNØ )ñô ñô ð ð
 �Cð!Ø!'¨#¡˜Ø#œz×3Ò3°FÑ;Ô;ð "Ø!Ø˜q™˜ð	!ð
 —I’I˜f iÑ0Ô0Ð0Ø,2°I¸tÐ+D�Ô# CÑ(àÔ& sÔ+Ð+s   ÁA Á
BÁ)$BÂBFc                 ór  — t          t          |¦  «        ¦  «        }|€d}nd|v rt          d¦  «        ‚| j                             |¦  «        }|rt          |¦  «        }|rÂ||k    r¼|r?| j                             ||¦  «         t          | j        t          |¦  «        ¦  «         dS |sd}d}	 |›|›�}| j                             |¦  «        }|r|t          |¦  «        k    rdS | j                             |¦  «        sn|dz  }ŒX| j                             ||¦  «         nq| j                             |¦  «        }	|	€| j                             ||¦  «         n9|	|k    rn2|s|	 	                    d¦  «        r| j                             ||¦  «         t          | j        t          |¦  «        ¦  «         dS )zÜbind a given namespace to the prefix

        if override, rebind, even if the given namespace is already
        bound to another prefix.

        if replace, replace any existing prefix with the new namespace

        Nr%   ú z Prefixes may not contain spaces.rd   rq   rp   )
r   r   r�   ré   rð   rÄ   rÃ   rÁ   rä   r4   )
r"   rä   rð   ÚoverrideÚreplaceÚbound_namespacer  Ú
new_prefixÚ
tnamespaceÚbound_prefixs
             r   rÄ   zNamespaceManager.bind  sè  € õ �3˜y™>œ>Ñ*Ô*ˆ	àˆ>ØˆFˆFØ�Fˆ]ˆ]ÝÐ=Ñ>Ô>Ð>àœ*×.Ò.¨vÑ6Ô6ˆð
 ð 	6Ý$ _Ñ5Ô5ˆOØð !	7˜°)Ò;Ð;àð Ø”
—’ ¨	Ñ2Ô2Ð2Ý˜DœK­¨Y©¬Ñ8Ô8Ð8Ø�ð ð #Ø"�ØˆCð	Ø'- v¨s¨sÐ3�
Ø!œZ×1Ò1°*Ñ=Ô=�
Øð  )­v°jÑ/AÔ/AÒ"AÐ"Að �FØ”z×+Ò+¨JÑ7Ô7ð ØØ�q‘�ð	ð ŒJ�OŠO˜J¨	Ñ2Ô2Ð2Ð2àœ:×,Ò,¨YÑ7Ô7ˆLØÐ#Ø”
—’ ¨	Ñ2Ô2Ð2Ð2Ø Ò'Ð'Øàð 7˜|×6Ò6°sÑ;Ô;ð 7Ø”J—O’O F¨IÑ6Ô6Ð6Ý�D”K¥ Y¡¤Ñ0Ô0Ð0Ð0Ð0r#   c              #   ór   K  — | j                              ¦   «         D ]\  }}t          |¦  «        }||fV — Œd S r+   )ré   rÂ   r   )r"   rä   rð   s      r   rÂ   zNamespaceManager.namespacesH  sS   è è € Ø!%¤×!6Ò!6Ñ!8Ô!8ð 	$ð 	$ÑˆF�IÝ˜yÑ)Ô)ˆIØ˜)Ð#Ð#Ð#Ð#Ð#ð	$ð 	$r#   rq   c                 ó  — t          j        ¦   «                              ¦   «         }t          d|z  || ¬¦  «        }|rt	          |¦  «        d         }|s|r|d         dk    r|d         dk    rd|z  }t          |¦  «        S )Nz%s/)Úallow_fragmentsr   r÷   ú#z%s#)r   ÚcwdÚas_urir   r   r   )r"   r‹   ÚdefragÚbaseÚresults        r   Ú
absolutizezNamespaceManager.absolutizeM  sŒ   € ÝŒx‰zŒz× Ò Ñ"Ô"ˆÝ˜ ™ sÀ¸JÐGÑGÔGˆØð 	*Ý˜vÑ&Ô& qÔ)ˆFØð 	(Øð (�s˜2”w #’~�~¨&°¬*¸Ò*;Ð*;Ø ™�Ý�f‰~Œ~Ðr#   N)T)TF)rq   )rC   rD   rE   rF   r‚   rB   rç   rG   ré   rñ   rô   r   rû   rí   ró   rÄ   rÂ   r  rƒ   r#   r   r   r   &  s  € € € € € ðð ð>' ð ' ð ' ðRKð Kð Kð-ð -ð -ð ð ð  ñ „Xð ð,ð ,ð ,ð,ð ,ð ,ð= sð =ð =ð =ð =ð2*!ð *!ð *!ð *!ðX6,ð 6,ð 6,ð 6,ðp:1ð :1ð :1ð :1ðx$ð $ð $ð
ð ð ð ð ð r#   r   )ÚLlÚLuÚLoÚLtÚNlÚNd)ÚMcÚMeÚMnÚLmr  )õ   Â·u   Î‡ú-r•   rp   ú%r–   r8   c                 óì   — | rq| d         }|dk    st          |¦  «        t          v rMt          dt          | ¦  «        ¦  «        D ]-}| |         }t          |¦  «        t          vr|t
          v rŒ* dS Œ.dS dS )Nr   rp   rq   )r   r  Úrangerz   ÚNAME_CATEGORIESÚALLOWED_NAME_CHARS)r(   ÚfirstÚirw   s       r   r   r   ‡  s�   € Øð Ø�Q”ˆØ�CŠ<ˆ<�8 E™?œ?Õ.CÐCÐCÝ˜1�c $™iœiÑ(Ô(ð ð �Ø˜”G�Ý ‘{”{¥oÐ5Ð5ØÕ.Ð.Ð.Ø Ø˜1˜1ð 6ð �1àˆ1r#   c                 ó  — |                       t          ¦  «        r't          |                      t          ¦  «        d         fS t          | ¦  «        }t	          d|¦  «        D ]‰}| | dz
           }t          |¦  «        t          vre|t          v rŒ.t	          d|z
  |¦  «        D ]E}t          | |         ¦  «        |v s| |         dk    r | d |…         }|s n| |d …         }||fc c S ŒF nŒŠt          d 	                    | ¦  «        ¦  «        ‚)Nrq   r   r÷   rp   zCan't split '{}')
r4   rß   Úsplitrz   r'  r   r(  r)  rÿ   rS   )r‹   Úsplit_startÚlengthr+  rw   Újrå   Úlns           r   r   r   š  s.  € Ø
‡~‚~•eÑÔð ,Ý�s—y’y¥Ñ'Ô'¨Ô*Ð+Ð+Ý�‰XŒX€FÝ�1�fÑÔð ð ˆØ���Q‘ŒKˆÝ˜‰{Œ{�oÐ-Ð-ØÕ&Ð&Ð&ØÝ˜2 ™6 6Ñ*Ô*ð $ð $�Ý˜C œFÑ#Ô# {Ð2Ð2°c¸!´fÀ²m°mà˜R˜a˜Rœ�BØð Ø˜Ø˜Q˜R˜Rœ�BØ ˜8�O�O�O�O�Oð 7Dð ˆEð .õ Ð'×.Ò.¨sÑ3Ô3Ñ
4Ô
4Ð4r#   c                 óž  — || v r| |         S d}t          |                      ¦   «         ¦  «        D ]�}t          |¦  «        t          |¦  «        k    r-|                     |¦  «        rt	          | |         |¦  «        c S |                     |¦  «        r)|si | |<   d}|                      |¦  «        }|| |         |<   ŒŽ|| vri | |<   | |         S )z¡Insert a value into the trie if it is not already contained in the trie.
    Return the subtree for the value regardless of whether it is a new value
    or not.FT)ÚtupleÚkeysrz   r4   rÃ   Úpop)Útrier   Úmulti_checkr.   Údict_s        r   rÃ   rÃ   ¯  sî   € ð �€}€}Ø�EŒ{ÐØ€KÝ�T—Y’Y‘[”[Ñ!Ô!ð 
%ð 
%ˆÝˆu‰:Œ:�˜C™œÒ Ð  U×%5Ò%5°cÑ%:Ô%:Ð Ý˜t Cœy¨%Ñ0Ô0Ð0Ð0Ð0Ø�^Š^˜EÑ"Ô"ð 	%Øð #Ø ��U‘Ø"�Ø—H’HØñô ˆEð  %ˆD�ŒK˜ÑøØ�DÐÐØˆˆU‰Ø�Œ;Ðr#   c                 ó8   — || vrt          ||¦  «        | |<   d S d S r+   )rÃ   )Ústrier6  r   s      r   rø   rø   Æ  s,   € Ø�EÐÐÝ" 4¨Ñ/Ô/ˆˆe‰ˆˆð Ðr#   c                 óz   — | D ]7}|                      |¦  «        r t          | |         |¦  «        }|€|c S |c S Œ8d S r+   )r4   r   )r6  r   r.   Úouts       r   r   r   Ë  s]   € Øð ð ˆØ×Ò˜CÑ Ô ð 	Ý'¨¨S¬	°5Ñ9Ô9ˆCØˆ{Ø�
�
�
à�
�
�
ð	ð ˆ4r#   )rÅ   )rÆ   )rÇ   )rÈ   )rÉ   )rÊ   )rË   )rÌ   )rÍ   )rÎ   )rÏ   )rÐ   )rÑ   )rÒ   )rÓ   )rÔ   )rÕ   )rÖ   )r×   )rØ   )rÙ   )rÚ   )rÛ   )rÜ   )rÝ   )rÞ   )[Úloggingrb   Útypingr   Úunicodedatar   Úpathlibr   Úurllib.parser   r   Úrdflib.termr   r	   r
   rF   Ú__all__Ú	getLoggerrC   Úloggerr   r   rK   ÚtyperV   rs   r   rß   Úobjectr   r  ÚSPLIT_START_CATEGORIESr(  r)  r   r   rÃ   rø   r   Úrdflib.namespace._BRICKrÅ   Úrdflib.namespace._CSVWrÆ   Úrdflib.namespace._DCrÇ   Úrdflib.namespace._DCATrÈ   Úrdflib.namespace._DCMITYPErÉ   Úrdflib.namespace._DCTERMSrÊ   Úrdflib.namespace._DCAMrË   Úrdflib.namespace._DOAPrÌ   Úrdflib.namespace._FOAFrÍ   Úrdflib.namespace._ODRL2rÎ   Úrdflib.namespace._ORGrÏ   Úrdflib.namespace._OWLrÐ   Úrdflib.namespace._PROFrÑ   Úrdflib.namespace._PROVrÒ   Úrdflib.namespace._QBrÓ   Úrdflib.namespace._RDFrÔ   Úrdflib.namespace._RDFSrÕ   Úrdflib.namespace._SDOrÖ   Úrdflib.namespace._SHr×   Úrdflib.namespace._SKOSrØ   Úrdflib.namespace._SOSArÙ   Úrdflib.namespace._SSNrÚ   Úrdflib.namespace._TIMErÛ   Úrdflib.namespace._VANNrÜ   Úrdflib.namespace._VOIDrÝ   Úrdflib.namespace._XSDrÞ   rƒ   r#   r   ú<module>rc     sA  ðØ €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ðD€ðL YÐ
XÐ
X€à	ˆÔ	˜8Ñ	$Ô	$€ð;$ð ;$ð ;$ð ;$ð ;$�ñ ;$ô ;$ð ;$ð|3ð 3ð 3ð 3ð 3�ñ 3ô 3ð 3ð:3
ð 3
ð 3
ð 3
ð 3
˜4ñ 3
ô 3
ð 3
ðl=ð =ð =ð =ð =Ð!5ð =ñ =ô =ð =ð.ð .ð .ð .ð .�iñ .ô .ð .ðb 	ˆ	Ð8Ñ9Ô9€ðoð oð oð oð o�vñ oô oð oðh
 7Ð6Ð6Ð Ø.°$°Ñ7Ð Ø'Ð*HÐ*HÐ*HÑH€ØGÐGÐGÐ ðð ð ð&  6ð 5ð 5ð 5ð 5ð*ð ð ð.0ð 0ð 0ð
ð ð ð *Ð )Ð )Ð )Ð )Ð )Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø /Ð /Ð /Ð /Ð /Ð /Ø -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø )Ð )Ð )Ð )Ð )Ð )Ø %Ð %Ð %Ð %Ð %Ð %Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø %Ð %Ð %Ð %Ð %Ð %Ø #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %r#   