Skip to main content

An asynchronous SPARQL library using aiohttp

Project description

License Build Status Code Coverage

An asynchronous SPARQL library using aiohttp

Synopsis

from aiosparql.syntax import (
    IRI, Namespace, Node, PrefixedName, RDF, RDFTerm, Triples)

# define a namespace

class Boo(Namespace):
    __iri__ = IRI("http://boo#")
    SomeClass = PrefixedName
    website = PrefixedName
    label = PrefixedName

# create a node

node = Node("<subject>", {
    RDF.type: Boo.SomeClass,
    Boo.website: IRI("http://example.org"),
    Boo.label: "some label", # "some label" will be automatically escaped
})

# missing prefixed names will show on your IDE and fail on execution

print(Boo.something) # AttributeError!

# create triples

triples = Triples([("s", "p", "o")]) # o is automatically escaped
triples.append(("s", Boo.website, IRI("http://example.org")))
triples.extend([("s", Boo.website, IRI("http://example.org"))])

print(triples) # print the triples is a format usable directly in a SPARQL
               # query. It also groups by subject automatically for you


from aiosparql.client import SPARQLClient

client = SPARQLClient("http://dbpedia.org/sparql")
result = await client.query("select * where {?s ?p ?o} limit 1")
# result is a dict of the JSON result
result = await client.update("""
    with {{graph}}
    insert data {
        {{}}
    }
    """, triples)
# the triples will be automatically indented to produce a beautiful query


from aiosparql.escape import escape_any

print(escape_any(True)) # "true"
print(escape_any("foo")) # "foo"
print(escape_any(5)) # "5"
print(escape_any(5.5)) # "5.5"^^xsd:double

Installation

  • User space installation

    easy_install --user aiosparql
  • System wide installation

    easy_install aiosparql

Requirements

  • Python >= 3.5

Credits

This software has been produced by Dacota One.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiosparql-0.11.0a0.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

aiosparql-0.11.0a0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file aiosparql-0.11.0a0.tar.gz.

File metadata

File hashes

Hashes for aiosparql-0.11.0a0.tar.gz
Algorithm Hash digest
SHA256 6b23cb063262b1e8ef5e7f84b017627e4d5d04de7c28257bd331c9ab0944e8e6
MD5 a3ba57a70d60d83e928d91d5f477e225
BLAKE2b-256 ac53511ecc8e2c61b5f763e9f354dfc6f8b400d3cf3b6e12078aee0127c10b13

See more details on using hashes here.

Provenance

File details

Details for the file aiosparql-0.11.0a0-py3-none-any.whl.

File metadata

File hashes

Hashes for aiosparql-0.11.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 d64ce3417d97ee913fc5e52a2095719e70d34133974d174d8286ab789e476cb3
MD5 fdc6657954d9f4a0e3d403791f80a798
BLAKE2b-256 5afa2c4f4703169a0e45c7deb6bb004a28b4ed76fc138655629fa884c3f7a040

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page