
    i2              	      	   U d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZ ddlZddlmZ ddlmZ ddlmZmZmZmZmZ dd	lmZ dd
lm Z  g dZ!e eeeeeeedZ"i Z#de$d<    G d de      Z% ed      Z& G d de
e&         Z' G d de'e&         Z(ddZ)ddZ* e       Z+ e,e+d      rSe"j[                         D ]?  \  Z.Z/e+ja                  e.      D ]%  Z1 e(e1jd                  e/e1      e#e1jd                  e/f<   ' A n_er e3e+e4      sJ e"j[                         D ]?  \  Z.Z/e+jU                  e.g       D ]%  Z1 e(e1jd                  e/e1      e#e1jd                  e/f<   ' A e	 d	 	 	 	 	 dd       Z5eddd       Z5	 d	 	 	 	 	 ddZ5ejj                  jl                  jn                  jp                  r e)de dd        e)de d d!        e)d!e d d!        e)d"e d d"        e)d#e d$d%        e)d&e d'd(        e)d)e d*d)        e)d+e d*d+        e)d,ed-d.        e)d/ed-d.        e)d0ed-d1        e)d2ed3d4        e)d5ed3d4        e)d6ed7d8        e)d9ed7d8        e)d:ed7d8        e)d;ed<d=        e)d>ed?d@        e)dAed?d@        e)dBed?d@        e)dCed?dD        e)dEedFdG        e)dHedFdG        e)dIedJdK        e)dLedJdK        e)dMedNdO        e)dPedNdO        e)dQedRdS        e)dTedRdS        e)dUedVdW        e)dXedYdZ        e)d,ed[d\        e)d/ed[d\        e)d2ed]d^        e)d5ed]d^        e)d6ed]d_        e)d9ed]d_        e)d:ed]d_        e)d>ed`da        e)dAed`da        e)dBed`da        e)dCed`da        e)dHedbdc        e)dEedbdc        e)dIeddde        e)dLeddde        e)dMedfdg        e)dPedfdg        e)dQedhdi        e)dTedhdi        e)dUedjdk        e)dXedldm        e)dnedodp        e)dnedodq        e)dnedodr        e)d/edsdt        e)duedsdt        e)dvedwdx        e)dyedzd{        e)d|edzd{        e)d}ed~d        e)ded~d        e)d/edsd        e)duedsd        e)dedsd        e)d,edd        e)dyedzd        e)d|edzd        e)d}ed~d        e)ded~d        e)dedd        e)dedd       y)a!  
Plugin support for rdf.

There are a number of plugin points for rdf: parser, serializer,
store, query processor, and query result. Plugins can be registered
either through setuptools entry_points or by calling
rdf.plugin.register directly.

If you have a package that uses a setuptools based setup.py you can add the
following to your setup::

    entry_points = {
        'rdf.plugins.parser': [
            'nt =     rdf.plugins.parsers.ntriples:NTParser',
            ],
        'rdf.plugins.serializer': [
            'nt =     rdf.plugins.serializers.NTSerializer:NTSerializer',
            ],
        }

See the `setuptools dynamic discovery of services and plugins`__ for more
information.

.. __: http://peak.telecommunity.com/DevCenter/setuptools#dynamic-discovery-of-services-and-plugins

    )annotations)
EntryPointentry_points)
TYPE_CHECKINGAnyDictGenericIteratorOptionalTupleTypeTypeVaroverloadN)Error)Parser)	ProcessorResultResultParserResultSerializerUpdateProcessor)
Serializer)Store)registergetpluginsPluginExceptionPluginPluginT	PKGPlugin)zrdf.plugins.storezrdf.plugins.serializerzrdf.plugins.parserzrdf.plugins.resultparserzrdf.plugins.resultserializerzrdf.plugins.queryprocessorzrdf.plugins.queryresultzrdf.plugins.updateprocessorz#Dict[Tuple[str, Type[Any]], Plugin]_pluginsc                      e Zd Zy)r   N)__name__
__module____qualname__     <C:\Projects\mas-dev\.venv\Lib\site-packages\rdflib/plugin.pyr   r   Q   s    r&   r   r   c                  ,    e Zd Z	 	 	 	 	 	 	 	 ddZddZy)r   c                J    || _         || _        || _        || _        d | _        y N)namekindmodule_path
class_name_class)selfr+   r,   r-   r.   s        r'   __init__zPlugin.__init__Z   s(     		&$/3r&   c                    | j                   Dt        | j                  t               t	               dg      }t        || j                        | _         | j                   S )N )r/   
__import__r-   globalslocalsgetattrr.   )r0   modules     r'   getClasszPlugin.getClassc   sD    ;; 0 0')VXtLF!&$//:DK{{r&   N)r+   strr,   Type[PluginT]r-   r:   r.   r:   returnr;   r"   r#   r$   r1   r9   r%   r&   r'   r   r   Y   s,    44,4;>4LO4r&   r   c                      e Zd ZddZddZy)r   c                <    || _         || _        || _        d | _        y r*   )r+   r,   epr/   )r0   r+   r,   rA   s       r'   r1   zPKGPlugin.__init__k   s    		/3r&   c                p    | j                   | j                  j                         | _         | j                   S r*   )r/   rA   load)r0   s    r'   r9   zPKGPlugin.getClassq   s'    ;;'',,.DK{{r&   N)r+   r:   r,   r;   rA   r   r<   r>   r%   r&   r'   r   r   j   s    4r&   r   c                6    t        | |||      }|t        | |f<   y)zx
    Register the plugin for (name, kind). The module_path and
    class_name should be the path to a plugin class.
    N)r   r    )r+   r,   r-   r.   ps        r'   r   r   w   s"    
 	tT;
3AHdD\r&   c                x    	 t         | |f   }|j                         S # t        $ r t        d| d|d      w xY w)zk
    Return the class for the specified (name, kind). Raises a
    PluginException if unable to do so.
    zNo plugin registered for (z, ))r    KeyErrorr   r9   r+   r,   rE   s      r'   r   r      sG    
R%tTl3 ::<  RT4PQQRs    9select)groupc                     y r*   r%   r+   r,   s     r'   r   r      s     !$r&   c                     y r*   r%   rM   s     r'   r   r      s    NQr&   c              #     K   t         j                         D ]*  }| | |j                  k(  s|||j                  k(  s'| , yw)zk
    A generator of the plugins.

    Pass in name and kind to filter... else leave None to match all.
    N)r    valuesr+   r,   rI   s      r'   r   r      s;      __LDAFFNG s   )AAA
BerkeleyDBz rdflib.plugins.stores.berkeleydbdefaultzrdflib.plugins.stores.memoryMemorySimpleMemory	Auditablezrdflib.plugins.stores.auditableAuditableStore
Concurrentz rdflib.plugins.stores.concurrentConcurrentStoreSPARQLStorez!rdflib.plugins.stores.sparqlstoreSPARQLUpdateStorezapplication/rdf+xmlz!rdflib.plugins.serializers.rdfxmlXMLSerializerxmlz
pretty-xmlPrettyXMLSerializerztext/n3zrdflib.plugins.serializers.n3N3Serializern3ztext/turtlez!rdflib.plugins.serializers.turtleTurtleSerializerturtlettl
longturtlez%rdflib.plugins.serializers.longturtleLongTurtleSerializerzapplication/n-tripleszrdflib.plugins.serializers.ntNTSerializerntriplesntnt11NT11Serializerzjson-ldz!rdflib.plugins.serializers.jsonldJsonLDSerializerzapplication/ld+jsonzapplication/n-quadsz!rdflib.plugins.serializers.nquadsNQuadsSerializernquadszapplication/trixzrdflib.plugins.serializers.trixTriXSerializertrixzapplication/trigzrdflib.plugins.serializers.trigTrigSerializertrighextzrdflib.plugins.serializers.hextHextuplesSerializerpatchz rdflib.plugins.serializers.patchPatchSerializerzrdflib.plugins.parsers.rdfxmlRDFXMLParserz rdflib.plugins.parsers.notation3N3ParserTurtleParserzrdflib.plugins.parsers.ntriplesNTParserzrdflib.plugins.parsers.jsonldJsonLDParserzrdflib.plugins.parsers.nquadsNQuadsParserzrdflib.plugins.parsers.trix
TriXParserzrdflib.plugins.parsers.trig
TrigParserzrdflib.plugins.parsers.hextHextuplesParserzrdflib.plugins.parsers.patchRDFPatchParsersparqlzrdflib.plugins.sparql.processorSPARQLResultSPARQLProcessorSPARQLUpdateProcessorz(rdflib.plugins.sparql.results.xmlresultsXMLResultSerializerzapplication/sparql-results+xmltxtz(rdflib.plugins.sparql.results.txtresultsTXTResultSerializerjsonz)rdflib.plugins.sparql.results.jsonresultsJSONResultSerializerzapplication/sparql-results+jsoncsvz(rdflib.plugins.sparql.results.csvresultsCSVResultSerializerztext/csvXMLResultParserz-application/sparql-results+xml; charset=UTF-8z#rdflib.plugins.sparql.results.graphGraphResultParserJSONResultParserCSVResultParsertsvz(rdflib.plugins.sparql.results.tsvresultsTSVResultParserztext/tab-separated-values)r+   r:   r,   z	Type[Any])r+   r:   r,   r;   r=   r;   )..)r+   Optional[str]r,   r;   r=   Iterator[Plugin[PluginT]])r+   r   r,   Noner=   zIterator[Plugin])NN)r+   r   r,   zOptional[Type[PluginT]]r=   r   )9__doc__
__future__r   importlib.metadatar   r   typingr   r   r   r	   r
   r   r   r   r   r    rdflib.plugins.stores.berkeleydbrdflibrdflib.exceptionsr   rdflib.parserr   rdflib.queryr   r   r   r   r   rdflib.serializerr   rdflib.storer   __all__rdflib_entry_pointsr    __annotations__r   r   r   r   r   r   all_entry_pointshasattritemsentry_pointr,   rJ   rA   r+   
isinstancedictr   stores
berkeleydb	has_bsddbr%   r&   r'   <module>r      s+  6 # 7   ( #    )  (  ,$4"+%#2	  13
- 2	e 	
 )
WW "
w 
	  > 
X&0668T")))<B(1"''4(DHbggt_% = 9
 *D1110668T"&&{B7B(1"''4(DHbggt_% 8 9
 
58$
$%2$$ 
$
 
 Q 
 Q AE


&=

 
>>##--*	 		"	 		"	 		"	 		%	 		&	 		'	 		'	 	'	 		'	 	'	 	#	 	#	 	'	 	'	 		'	 	+	 	#	 	#	 	#	 	
#	 	'	 	'	 	'	 	'	 	%	 	
%	 	%	 	
%	 	
%	 	&	 	
#	 		
#	 	
&	 	
&	 	
&	 	
&	 		
&	 	
%	 	
%	 	
%	 	

%	 	
#	 	
#	 	
#	 	
#	 	
!	 	

!	 	
!	 	

!	 	

!	 	
"	 	
%	 	%	 	%	 		.	 	$.	 		.	 	
/	 	%/	 		.	 	.	 		.	 	$.	 	3.	 	)	 	
/	 	%/	 		.	 	.	 		.	 	.	r&   