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

If you're not sure about the file name format, learn more about wheel file names.

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

  • Download URL: aiosparql-0.11.0a0.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

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.

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.

Supported by

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