Client for the ProvStore's API.
pip install provstore-api
You can view provstore-api on PyPi's package index
To use the client import the API and configure your access credentials:
from provstore.api import Api
# API key can be found at https://provenance.ecs.soton.ac.uk/store/account/developer/
api = Api(userame="your_provstore_username", api_key="your_api_key")
Note: credentials can also be set via the PROVSTORE_USERNAME
and PROVSTORE_API_KEY
environment variables and omitted from the initialization.
For demonstrations purposes we will use the ProvDocuments given in the examples module, but you would use your documents instead.
import provstore.tests.examples as examples
prov_document = examples.flat_document()
prov_bundle = examples.flat_document()
# Store the document to ProvStore:
# - the public parameter is optional and defaults to False
stored_document = api.document.create(prov_document,
name="name",
public=False)
# => This will store the document and return a ProvStore Document object
# Get a document with ID 148 from ProvStore:
stored_document = api.document.get(148)
# The document's provenance is available like so:
stored_document.prov
# => This will fetch the document and return a ProvStore Document object
# Delete the document with ID 148 from the store:
api.document.get(148).delete()
# Get document with this ID's bundles
api.document.get(148).add_bundle(prov_bundle, 'ex:bundle-1')
# or the shorthand:
api.document.get(148).bundles['ex:bundle-1'] = prov_bundle
# Get document's bundle with matching identifier
api.document.get(148).bundles['ex:bundle-1']
# Get document with this ID's bundles
# WARNING: This is expensive, consider using api.document.get(148).prov.bundles instead
for bundle in api.document.get(148).bundles:
# print the bundle's identifier
print bundle.identifier
# the bundle's provenance is at:
bundle.prov
- Issue Tracker: https://github.com/millar/provstore-api/issues
- Source Code: https://github.com/millar/provstore-api
- Available on ReadTheDocs
- See the full API reference
This project is licensed under the MIT license.
Sam Millar <http://millar.io>