Python wrapper for the Matterhorn RESTful APIs
Project description
pyhorn is a python client that wraps the Opencast Matterhorn video capture system. It provides a client interface, MHClient, that exposes methods for accessing both raw and ‘objectified’ response data from the various Matterhorn REST API endpoints.
This software should be considered Alpha, therefore likely to change/break in the near future.
Install
pip install pyhorn
Overview
Data available from the REST endpoints is accessible through methods of the MHClient object. In many cases the response data is encapsulated in additional classes to make accessing various attributes of the data possible using object notation. For instance, data about Matterhorn workflows can be accessed using the client.workflows() method. The return value will be a list of endpoints.workflow.Workflow objects. The operations attribute of those objects will get you a list of endpoints.workflow.WorkflowOperation objects. And so forth.
Currently there are only a handfull of endpoints wrapped in this way, and only a few convenience classes and methods defined for each one. The idea is to continue adding more as I (or you) need them. Patches welcome!
MHClient Method List
In the case of methods that accept a set of keyword arguments, the list of expected kwargs is mapped directly from the Matterhorn endpoint. In other words, if you want to know what kwargs to use for MHClient.workflows(), check the corresponding entry in the REST API docs at http://matterhorn.example.edu/docs.html?path=/workflow.
endpoints() - /info/components.json
me() - /info/me.json
workflows(**kwargs) - /workflow/instances.json
workflow(instance_id) - /workflow/instance/{id}.json
episodes(**kwargs)) - /episode/episode.json
episode(episode_id) - /episode/episode.json
user_actions(**kwargs) - /usertracking/actions.json
agents() - /capture-admin/agents.json
agent(agent_name) - /capture-admin/agents/{agent_name}.json
Example Usage
Create the client interface…
>>> from pyhorn import MHClient
>>> client = MHClient('http://matterhorn.example.edu', 'user', 'passwd')
Get a list of available endpoints…
>>> client.endpoints()
[{u'description': u'Capture Agent Admin REST Endpoint',
u'docs': u'http://matterhorn.example.edu80/capture-admin/docs',
u'path': u'/capture-admin',
u'type': u'org.opencastproject.capture.admin',
u'version': u'1.4.4',
u'wadl': u'http://matterhorn.example.edu80/capture-admin/?_wadl&_type=xml'},
{u'description': u'EpisodeService REST Endpoint',
u'docs': u'http://matterhorn.example.edu80/episode/docs',
u'path': u'/episode',
u'type': u'org.opencastproject.episode',
u'version': u'1.4.4',
u'wadl': u'http://matterhorn.example.edu80/episode/?_wadl&_type=xml'},
...
Get list of current workflow instances…
>>> wfs = client.workflows()
>>> for wf in wfs:
print wf.id + ": " + wf.state
1646: STOPPED
1649: STOPPED
1651: STOPPED
1655: STOPPED
4211: SUCCEEDED
14479: SUCCEEDED
14486: SUCCEEDED
441: STOPPED
445: STOPPED
...
… or just the successful ones…
>>> wfs = client.workflows(state="SUCCEEDED")
… or the operations for a particular instance…
>>> wf = client.workflow(instance_id=1646)
>>> ops = wf.operations
>>> for op in ops:
print op.id + ": " + op.state
apply-acl: SUCCEEDED
tag: SUCCEEDED
tag: SUCCEEDED
inspect: SUCCEEDED
prepare-av: SUCCEEDED
prepare-av: SUCCEEDED
compose: SUCCEEDED
compose: SUCCEEDED
...
Get the list of currently configured capture agents
>>> cas = client.agents()
>>> for ca in cas:
print ca.name + ": " + ca.state
epiphan001: unknown
epiphan002: unknown
ewave001: idle
ewave002: idle
ncast001: idle
ncast002: shutting_down
License
pyhorn is licensed under the Apache 2.0 license
Copyright
2014 President and Fellows of Harvard College
Release History
0.1.0 (2014-10-23)
Birth!
0.1.1 (2014-10-28)
copyright tweak
0.1.2 (2014-10-28)
blerg. forgot to update history with last version bump.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file pyhorn-0.1.2-py2-none-any.whl
.
File metadata
- Download URL: pyhorn-0.1.2-py2-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9055787f3170e8cc09e389a350b5b7c25a79ae913bd9e023c9efed4deb772944 |
|
MD5 | 676a49cf8c0a120f302f849f45fa697a |
|
BLAKE2b-256 | 50a1dd8ec1f544452e876eecfac915faec852e7465ab9224128b5f2dda8ba009 |