Source code for rdf4j_python.model._repository_info

from dataclasses import dataclass

import pyoxigraph as og


[docs] @dataclass class RepositoryMetadata: """ Represents a repository metadata RDF4J. """ id: str # The repository identifier uri: str # The full URI to the repository title: str # A human-readable title (currently reusing id) readable: bool # Whether the repository is readable writable: bool # Whether the repository is writable def __str__(self): """ Returns a string representation of the RepositoryMetadata. Returns: str: A string representation of the RepositoryMetadata. """ return f"Repository(id={self.id}, title={self.title}, uri={self.uri})"
[docs] @classmethod def from_sparql_query_solution( cls, query_solution: og.QuerySolution ) -> "RepositoryMetadata": """ Create a RepositoryMetadata instance from a SPARQL query result. Args: query_solution (og.QuerySolution): The SPARQL query result. Returns: RepositoryMetadata: The RepositoryMetadata instance. Raises: ValueError: If the query solution is missing required fields. """ # Construct and return the Repository object if query_solution["id"] is None: raise ValueError("id is required") if query_solution["uri"] is None: raise ValueError("uri is required") if query_solution["title"] is None: raise ValueError("title is required") if query_solution["readable"] is None: raise ValueError("readable is required") if query_solution["writable"] is None: raise ValueError("writable is required") return cls( id=query_solution["id"].value, uri=query_solution["uri"].value, title=query_solution["title"].value, readable=bool(query_solution["readable"].value), writable=bool(query_solution["writable"].value), )