o
    i1                  
   @   sN  U d 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!eee"ee f df e#d< G dd deZ$edZ%G dd dee% Z&G dd de&e% Z'de"dee fddZ(de"dee% dee% fddZ)e Z*e+e*dre , D ]\Z-Z.e*j/e-dD ]Z0e'e0j1e.e0e!e0j1e.f< qqn'ere2e*e3sJ e , D ]\Z-Z.e*)e-g D ]Z0e'e0j1e.e0e!e0j1e.f< qqe	dde
e" dee% de	e&e%  fddZ4edde
e" ddde	e& fd dZ4	dde
e" de
ee%  de	e&e%  fd!dZ4ej4j5j6j7rBe(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/d0 e(d1ed2d3 e(d4ed2d3 e(d5ed2d6 e(d7ed8d9 e(d:ed8d9 e(d;ed<d= e(d>ed<d= e(d?ed<d= e(d@edAdB e(dCedDdE e(dFedDdE e(dGedDdE e(dHedDdI e(dJedKdL e(dMedKdL e(dNedOdP e(dQedOdP e(dRedSdT e(dUedSdT e(dVedWdX e(dYedWdX e(dZed[d\ e(d1ed]d^ e(d4ed]d^ e(d7ed_d` e(d:ed_d` e(d;ed_da e(d>ed_da e(d?ed_da e(dCedbdc e(dFedbdc e(dGedbdc e(dHedbdc e(dMeddde e(dJeddde e(dNedfdg e(dQedfdg e(dRedhdi e(dUedhdi e(dVedjdk e(dYedjdk e(dZedldm e(dnedodp e(dnedodq e(dnedodr e(d4edsdt e(duedsdt e(dvedwdx e(dyedzd{ e(d|edzd{ e(d}ed~d e(ded~d e(d4edsd e(duedsd e(dedsd e(d1edd e(dyedzd e(d|edzd e(d}ed~d e(ded~d e(dedd e(dedd dS )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

    )
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.updateprocessorr   _pluginsc                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r"   r"   H/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/rdflib/plugin.pyr   O   s    r   r   c                   @   s<   e Zd Zdedee dedefddZdee fdd	Zd
S )r   namekindmodule_path
class_namec                 C   s"   || _ || _|| _|| _d | _d S N)r$   r%   r&   r'   _class)selfr$   r%   r&   r'   r"   r"   r#   __init__X   s
   
zPlugin.__init__returnc                 C   s4   | j d u rt| jt t dg}t|| j| _ | j S )N )r)   
__import__r&   globalslocalsgetattrr'   )r*   moduler"   r"   r#   getClassa   s   
zPlugin.getClassNr   r    r!   strr   r   r+   r3   r"   r"   r"   r#   r   W   s    
	c                   @   s8   e Zd Zdedee ddfddZdee fdd	Zd
S )r   r$   r%   epr   c                 C   s   || _ || _|| _d | _d S r(   )r$   r%   r6   r)   )r*   r$   r%   r6   r"   r"   r#   r+   i   s   
zPKGPlugin.__init__r,   c                 C   s   | j d u r| j | _ | j S r(   )r)   r6   load)r*   r"   r"   r#   r3   o   s   
zPKGPlugin.getClassNr4   r"   r"   r"   r#   r   h   s    r   r$   r%   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   r   )r$   r%   r&   r'   pr"   r"   r#   r   u   s   r   r,   c                 C   s6   zt | |f }W | S  ty   td| |f w )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   r3   r$   r%   r8   r"   r"   r#   r   ~   s   r   select)group.c                 C      d S r(   r"   r$   r%   r"   r"   r#   r      s   r   c                 C   r=   r(   r"   r>   r"   r"   r#   r      s   c                 c   s>    t  D ]}| du s| |jkr|du s||jkr|V  q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      s   $
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HextuplesSerializerz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HextuplesParser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)..)NN)8__doc__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   r5   __annotations__r   r   r   r   r   r   all_entry_pointshasattritemsentry_pointr%   r;   r6   r$   
isinstancedictr   stores
berkeleydb	has_bsddbr"   r"   r"   r#   <module>   s   0 	

"


