oxiland 0.13.0

Embedded RDF datasets, SPARQL, persistence, and streaming I/O for Rust
Documentation
"""Public type information for the Oxiland Python package."""

from __future__ import annotations

from collections.abc import Mapping
from os import PathLike
from typing import Any, Optional, Union

__version__: str

PathArg = Union[str, PathLike[str]]

class OxilandError(Exception): ...
class InvalidRdfError(OxilandError): ...
class ParseError(OxilandError):
    message: str
    location: Optional[str]

class SerializeError(OxilandError): ...
class SparqlParseError(OxilandError): ...
class SparqlEvaluationError(OxilandError): ...
class StorageError(OxilandError): ...
class UnsupportedError(OxilandError): ...
class IoError(OxilandError): ...
class OpenStoreError(OxilandError):
    path: str
    message: str

class NamedNode:
    def __init__(self, iri: str) -> None: ...
    @property
    def value(self) -> str: ...

class BlankNode:
    def __init__(self, id: Optional[str] = None) -> None: ...
    @property
    def value(self) -> str: ...

class Literal:
    def __init__(
        self,
        value: str,
        *,
        language: Optional[str] = None,
        datatype: Optional[NamedNode] = None,
    ) -> None: ...
    @property
    def value(self) -> str: ...
    @property
    def language(self) -> Optional[str]: ...
    @property
    def datatype(self) -> NamedNode: ...

class DefaultGraph:
    def __init__(self) -> None: ...

Term = Union[NamedNode, BlankNode, Literal]
Subject = Union[NamedNode, BlankNode]
GraphName = Union[DefaultGraph, NamedNode, BlankNode, None]

class Triple:
    def __init__(self, subject: Subject, predicate: NamedNode, object: Term) -> None: ...
    @property
    def subject(self) -> Subject: ...
    @property
    def predicate(self) -> NamedNode: ...
    @property
    def object(self) -> Term: ...

class Quad:
    def __init__(
        self,
        subject: Subject,
        predicate: NamedNode,
        object: Term,
        graph: GraphName = None,
    ) -> None: ...
    @property
    def subject(self) -> Subject: ...
    @property
    def predicate(self) -> NamedNode: ...
    @property
    def object(self) -> Term: ...
    @property
    def graph(self) -> Union[DefaultGraph, NamedNode, BlankNode]: ...

class FindIter:
    def __iter__(self) -> FindIter: ...
    def __next__(self) -> Quad: ...

class Transaction:
    def __enter__(self) -> Transaction: ...
    def __exit__(
        self,
        exc_type: object,
        exc_value: object,
        traceback: object,
    ) -> bool: ...
    def add(self, statement: Triple, graph: GraphName = None) -> None: ...
    def insert_quad(self, quad: Quad) -> None: ...
    def remove(self, statement: Triple, graph: GraphName = None) -> None: ...
    def remove_quad(self, quad: Quad) -> None: ...
    def clear(self) -> None: ...
    def clear_graph(self, graph: Union[DefaultGraph, NamedNode, BlankNode]) -> None: ...

class Model:
    def __init__(self) -> None: ...
    @classmethod
    def open(
        cls,
        path: PathArg,
        *,
        read_only: bool = False,
        create: bool = True,
        backend: str = "fjall",
    ) -> Model: ...
    @classmethod
    def migrate_legacy_store(cls, path: PathArg) -> Model: ...
    @property
    def backend(self) -> str: ...
    def add(self, statement: Triple, graph: GraphName = None) -> bool: ...
    def insert_quad(self, quad: Quad) -> bool: ...
    def remove(self, statement: Triple, graph: GraphName = None) -> bool: ...
    def remove_quad(self, quad: Quad) -> bool: ...
    def contains(self, statement: Triple, graph: GraphName = None) -> bool: ...
    def clear(self) -> None: ...
    def clear_graph(self, graph: Union[DefaultGraph, NamedNode, BlankNode]) -> None: ...
    def sync(self) -> None: ...
    def __len__(self) -> int: ...
    def is_empty(self) -> bool: ...
    def export_nquads(self, path: PathArg) -> None: ...
    def import_nquads(self, path: PathArg) -> int: ...
    def find(
        self,
        *,
        subject: Optional[Subject] = None,
        predicate: Optional[NamedNode] = None,
        object: Optional[Term] = None,
        graph: GraphName = None,
    ) -> FindIter: ...
    def transaction(self) -> Transaction: ...

class Syntax:
    TURTLE: Syntax
    NTRIPLES: Syntax
    NQUADS: Syntax
    TRIG: Syntax
    RDFXML: Syntax
    @classmethod
    def from_name(cls, name: str) -> Syntax: ...
    @classmethod
    def from_media_type(cls, media_type: str) -> Syntax: ...
    @classmethod
    def from_extension(cls, extension: str) -> Syntax: ...
    @property
    def name(self) -> str: ...
    @property
    def media_type(self) -> str: ...
    @property
    def extension(self) -> str: ...

class ParseIter:
    def __iter__(self) -> ParseIter: ...
    def __next__(self) -> Quad: ...

def named_node(iri: str) -> NamedNode: ...
def blank_node(id: Optional[str] = None) -> BlankNode: ...

def parse(
    data: Union[str, bytes],
    syntax: Union[Syntax, str],
    *,
    base_iri: Optional[str] = None,
    graph: GraphName = None,
) -> ParseIter: ...

def parse_path(
    path: PathArg,
    syntax: Union[Syntax, str, None] = None,
    *,
    base_iri: Optional[str] = None,
    graph: GraphName = None,
) -> ParseIter: ...

def load(
    model: Model,
    data: Union[str, bytes],
    syntax: Union[Syntax, str],
    *,
    collecting: bool = True,
    transactional: bool = False,
    base_iri: Optional[str] = None,
    graph: GraphName = None,
) -> int: ...

def load_path(
    model: Model,
    path: PathArg,
    syntax: Union[Syntax, str, None] = None,
    *,
    collecting: bool = True,
    transactional: bool = False,
    base_iri: Optional[str] = None,
    graph: GraphName = None,
) -> int: ...

def serialize(
    model: Model,
    syntax: Union[Syntax, str],
    *,
    base_iri: Optional[str] = None,
    prefixes: Optional[Mapping[str, str]] = None,
) -> str: ...

def serialize_path(
    model: Model,
    path: PathArg,
    syntax: Union[Syntax, str, None] = None,
    *,
    base_iri: Optional[str] = None,
) -> None: ...

class Solution:
    def __getitem__(self, key: Union[str, int]) -> Optional[Term]: ...
    def get(self, name: str) -> Optional[Term]: ...
    def variables(self) -> list[str]: ...
    def __len__(self) -> int: ...

class SolutionsIter:
    def __iter__(self) -> SolutionsIter: ...
    def __next__(self) -> Solution: ...

class TriplesIter:
    def __iter__(self) -> TriplesIter: ...
    def __next__(self) -> Triple: ...

def query(
    model: Model,
    sparql: str,
    *,
    base_iri: Optional[str] = None,
    limit: Optional[int] = None,
    offset: Optional[int] = None,
    default_graph: Any = None,
    default_graph_as_union: bool = False,
) -> Any: ...

def update(
    model: Model,
    sparql: str,
    *,
    base_iri: Optional[str] = None,
    default_graph: Any = None,
    default_graph_as_union: bool = False,
) -> None: ...

def serialize_results(
    model: Model,
    sparql: str,
    format: str,
    *,
    base_iri: Optional[str] = None,
    limit: Optional[int] = None,
    offset: Optional[int] = None,
) -> str: ...

class DigestAlgorithm:
    MD5: DigestAlgorithm
    SHA1: DigestAlgorithm
    SHA256: DigestAlgorithm
    @classmethod
    def from_name(cls, name: str) -> DigestAlgorithm: ...
    @property
    def name(self) -> str: ...

def digest_hex(algorithm: Union[DigestAlgorithm, str], data: Union[str, bytes]) -> str: ...
def digest_bytes(algorithm: Union[DigestAlgorithm, str], data: Union[str, bytes]) -> bytes: ...

class Namespace:
    def __init__(self, prefix: str, base: str) -> None: ...
    def expand(self, local: str) -> NamedNode: ...
    @property
    def prefix(self) -> str: ...
    @property
    def base(self) -> str: ...

# Registered as `oxiland.vocab` (+ children) for `from oxiland.vocab import rdf`.
class _VocabNs:
    NS: str

class _RdfVocab(_VocabNs):
    type: str
    Property: str

class _RdfsVocab(_VocabNs):
    label: str
    Class: str

class _XsdVocab(_VocabNs):
    string: str
    integer: str

class _OwlVocab(_VocabNs):
    Class: str
    Ontology: str

class _DcVocab(_VocabNs):
    title: str
    creator: str

class _Vocab:
    rdf: _RdfVocab
    rdfs: _RdfsVocab
    xsd: _XsdVocab
    owl: _OwlVocab
    dc: _DcVocab

def compiled_backends() -> list[str]: ...
def storage_backend_available(name: str) -> bool: ...

vocab: _Vocab