API Documentation¶
Database Client¶
-
class
snakesist.
ExistClient
(host: str = 'localhost', port: int = 8080, user: str = 'admin', password: str = '', prefix: str = 'exist', parser: lxml.etree.XMLParser = <lxml.etree.XMLParser object>)¶ Bases:
object
An eXist-db client object representing a database instance. The client can be used for CRUD operations. Resources can be queried using an XPath expression. Queried resources are identified by the absolute resource ID and, if the resource is part of a document, the node ID.
- Parameters
host – hostname
port – port used to connect to the configured eXist instance
user – username
password – password
prefix – configured path prefix for the eXist instance
parser – an lxml etree.XMLParser instance to parse query results
-
property
base_url
¶ The base URL pointing to the eXist instance.
-
create_resource
(document_path: str, node: str)¶ Write a new document node to the database.
- Parameters
document_path – Path to collection where document will be stored, relative to the configured root collection
node – XML string
-
delete_document
(document_path: str) → None¶ Remove a document from a database.
- Parameters
document_path – The path pointing to the document (relative to the REST endpoint, e. g. ‘/db/foo/bar’)
-
delete_node
(abs_resource_id: str, node_id: str = '') → None¶ Remove a node from the database.
- Parameters
abs_resource_id – The absolute resource ID pointing to the document.
node_id – The node ID locating a node inside a document (optional).
-
query
(query_expression: str) → delb.Document¶ Make a database query using XQuery
- Parameters
query_expression – XQuery expression
- Returns
The query result as a
delb.Document
object.
-
retrieve_resource
(abs_resource_id: str, node_id: str = '') → snakesist.exist_client.Resource¶ Retrieve a single resource by its internal database IDs.
- Parameters
abs_resource_id – The absolute resource ID pointing to the document.
node_id – The node ID locating a node inside a document (optional).
- Returns
The queried node as a
Resource
object.
-
retrieve_resources
(xpath: str) → List[snakesist.exist_client.Resource]¶ Retrieve a set of resources from the database using an XPath expression.
- Parameters
xpath – XPath expression (whatever version your eXist instance supports via its RESTful API)
- Returns
The query results as a list of
Resource
objects.
-
property
root_collection
¶ The configured root collection for database queries.
-
property
root_collection_url
¶ The URL pointing to the configured root collection.
-
update_document
(data: str, document_path: str) → None¶ Replace a document root node with an updated version.
- Parameters
data – A well-formed XML string containing the node to replace the old one with.
document_path – The path pointing to the document (relative to the REST endpoint, e. g. ‘/db/foo/bar’)
-
update_node
(data: str, abs_resource_id: str, node_id: str) → None¶ Replace a sub-document node with an updated version.
- Parameters
data – A well-formed XML string containing the node to replace the old one with.
abs_resource_id – The absolute resource ID pointing to the document containing the node.
node_id – The node ID locating the node inside the containing document.
Resources¶
-
class
snakesist.
DocumentResource
(exist_client: snakesist.exist_client.ExistClient, query_result: Optional[snakesist.exist_client.QueryResultItem] = None)¶ Bases:
snakesist.exist_client.Resource
A representation of an eXist document node
-
property
abs_resource_id
¶ The absolute resource ID pointing to a document in the database.
-
delete
()¶ Remove the node from the database.
-
property
document_path
¶ The resource path pointing to the document.
-
property
node_id
¶ The node ID locating the node relative to the containing document.
-
update_pull
()¶ Retrieve the current node state from the database and update the object.
-
update_push
()¶ Write the resource object to the database.
-
property
-
class
snakesist.
NodeResource
(exist_client: snakesist.exist_client.ExistClient, query_result: Optional[snakesist.exist_client.QueryResultItem] = None)¶ Bases:
snakesist.exist_client.Resource
A representation of an eXist node at the sub-document level
-
property
abs_resource_id
¶ The absolute resource ID pointing to a document in the database.
-
delete
()¶ Remove the node from the database.
-
property
document_path
¶ The resource path pointing to the document.
-
property
node_id
¶ The node ID locating the node relative to the containing document.
-
update_pull
()¶ Retrieve the current node state from the database and update the object.
-
update_push
()¶ Write the resource object to the database.
-
property