3
d%                 @   s  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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ddddgZee
eeeeeedZi ZG dd deZG dd deZG dd deZdd
 Zdd ZyddlmZ W n ek
r   Y nFX xBej D ]6\Z Z!x*ee D ]Z"ee"j#e!e"ee"j#e!f< q"W qW drddZ$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d.e
d,d- ed/e
d0d1 ed2e
d0d1 ed3e
d0d1 ed4e
d5d6 ed7e
d8d9 ed:e
d8d9 ed;e
d8d9 ed<e
d8d= ed>e
d(d? ed@e
dAdB edCe
dAdB edDe
dEdF edGe
dEdF ed'edHdI ed*edHdI ed+edJdK ed.edJdK ed/edJdL ed2edJdL ed3edJdL ed7edMdN ed:edMdN ed;edMdN ed<edMdN edDedOdP edGedOdP edCedQdR ed@edQdR ed4edSdT edUedVdW edUedVdX edUedVdY ed*edZd[ ed\edZd[ ed]ed^d_ ed`edadb edcedadb eddededf edgededf ed*edZdh ed\edZdh ediedZdh ed'edjdk ed`edadl edcedadl eddededm edgededm ednedodp edqedodp dS )sa  
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.nt: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

    )absolute_import)division)print_function)Store)Parser)
Serializer)ResultParserResultSerializer	ProcessorResultUpdateProcessor)ErrorregistergetpluginsPluginExceptionPlugin	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.updateprocessorc               @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r   r   //tmp/pip-build-7vycvbft/rdflib/rdflib/plugin.pyr   6   s   c               @   s   e Zd Zdd Zdd ZdS )r   c             C   s"   || _ || _|| _|| _d | _d S )N)namekindmodule_path
class_name_class)selfr   r   r   r   r   r   r   __init__<   s
    zPlugin.__init__c             C   s4   | j d kr.t| jt t dg}t|| j| _ | j S )N )r   
__import__r   globalslocalsgetattrr   )r   moduler   r   r   getClassC   s    
zPlugin.getClassN)r   r   r   r   r&   r   r   r   r   r   :   s   c               @   s   e Zd Zdd Zdd ZdS )r   c             C   s   || _ || _|| _d | _d S )N)r   r   epr   )r   r   r   r'   r   r   r   r   L   s    zPKGPlugin.__init__c             C   s   | j d kr| jj | _ | j S )N)r   r'   load)r   r   r   r   r&   R   s    
zPKGPlugin.getClassN)r   r   r   r   r&   r   r   r   r   r   J   s   c             C   s   t | |||}|t| |f< dS )zx
    Register the plugin for (name, kind). The module_path and
    class_name should be the path to a plugin class.
    N)r   _plugins)r   r   r   r   pr   r   r   r   X   s    c             C   s>   yt | |f }W n$ tk
r4   td| |f Y nX |j S )zk
    Return the class for the specified (name, kind). Raises a
    PluginException if unable to do so.
    z!No plugin registered for (%s, %s))r)   KeyErrorr   r&   )r   r   r*   r   r   r   r   a   s    )iter_entry_pointsNc             c   s@   x:t j D ].}| dks | |jkr
|dks2||jkr
|V  q
W dS )zk
    A generator of the plugins.

    Pass in name and kind to filter... else leave None to match all.
    N)r)   valuesr   r   )r   r   r*   r   r   r   r   y   s    defaultzrdflib.plugins.memoryZIOMemoryZ	Auditablezrdflib.plugins.stores.auditableZAuditableStoreZ
Concurrentz rdflib.plugins.stores.concurrentZConcurrentStoreZ	Sleepycatzrdflib.plugins.sleepycatZSPARQLStorez!rdflib.plugins.stores.sparqlstoreZSPARQLUpdateStorezapplication/rdf+xmlz!rdflib.plugins.serializers.rdfxmlZXMLSerializerxmlztext/n3zrdflib.plugins.serializers.n3ZN3SerializerZn3ztext/turtlez!rdflib.plugins.serializers.turtleZTurtleSerializerZturtleZttlZtrigzrdflib.plugins.serializers.trigZTrigSerializerzapplication/n-tripleszrdflib.plugins.serializers.ntZNTSerializerZntriplesntZnt11ZNT11Serializerz
pretty-xmlZPrettyXMLSerializerZtrixzrdflib.plugins.serializers.trixZTriXSerializerzapplication/trixzapplication/n-quadsz!rdflib.plugins.serializers.nquadsZNQuadsSerializerZnquadszrdflib.plugins.parsers.rdfxmlZRDFXMLParserz rdflib.plugins.parsers.notation3ZN3ParserZTurtleParserzrdflib.plugins.parsers.ntZNTParserzrdflib.plugins.parsers.nquadsZNQuadsParserzrdflib.plugins.parsers.trixZ
TriXParserzrdflib.plugins.parsers.trigZ
TrigParserZsparqlzrdflib.plugins.sparql.processorZSPARQLResultZSPARQLProcessorZSPARQLUpdateProcessorz(rdflib.plugins.sparql.results.xmlresultsZXMLResultSerializerzapplication/sparql-results+xmltxtz(rdflib.plugins.sparql.results.txtresultsZTXTResultSerializerjsonz)rdflib.plugins.sparql.results.jsonresultsZJSONResultSerializerzapplication/sparql-results+jsoncsvz(rdflib.plugins.sparql.results.csvresultsZCSVResultSerializerztext/csvZXMLResultParserz-application/sparql-results+xml; charset=UTF-8z#rdflib.plugins.sparql.results.graphZGraphResultParserZJSONResultParserZCSVResultParserZtsvz(rdflib.plugins.sparql.results.tsvresultsZTSVResultParserztext/tab-separated-values)NN)%__doc__
__future__r   r   r   Zrdflib.storer   Zrdflib.parserr   Zrdflib.serializerr   Zrdflib.queryr   r	   r
   r   r   Zrdflib.exceptionsr   __all__entry_pointsr)   r   objectr   r   r   r   pkg_resourcesr,   ImportErroritemsZentry_pointr   r'   r   r   r   r   r   r   <module>   s  	$
