Package: epipearl
epipearl===============================Python client for [epiphan-pearl][pearl]. It provides a client interface forepiphan-pearl [http api][pearl-http-api], and some of its web ui configurationinterface, and DCE custom web ui configuration as well.Current version of Epipearl is tested against _v3.15.3f_ firmware.This software shoud be considered alpha, therefore likely to change/break in the near future.install-------pip install epipearlexample usage to get and set channels parameters------------------------------------------------from epipearl import Epipearlclient = Epipearl( "http://epiphan_pearl_address", "admin", "secret_password" )# to get the type of stream being published and frame size for channel 1response = client.get_params( channel='1', params={'publish_type':'', 'framesize':''})print "publish_type is %s" % response['publish_type']print "framsize is %s" % response['framesize']# to start recording on recorder 2response = client.set_params( channel='m2', params={'rec_enabled': 'on'})if response:print "recorder 2 set to start recording"example usage of web ui methods------------------------------------------------Besides the HTTP API calls `get_params()` and `set_params()`, epipearl exposessome web ui HTML form posts as python calls.For example, if you need to create a new channel:# create the clientimport requestsfrom epipearl.errors import SettingConfigErrorfrom epipearl.errors IndiscernibleResponseFromWebUiErrorfrom epipearl import Epipearlclient = Epipearl( "http://epiphan_pearl_address", "admin", "secret_password" )# to create a channel, give it a namechannel_id = client.create_channel('my new epiphan-pearl channel')# the returned channel_id is the id to be used to reference this channel# in all subsequent operations, like setting the rtmp-push settingstry:client.set_channel_rtmp(channel_id=channel_id,rtmp_url='rtmp://some.url.where.to.push.to.eg.akamai',rtmp_stream='stream_name',rtmp_usr='user_for_rtmp_eg_akamai_account',rtmp_pwd='password')except requests.HTTPError:print 'error during http request'except SettingConfigError as e:print 'device web ui returned error or some settings did not take'print e.messageexcept IndiscernibleResponseFromWebUiError:print 'did not understand response from device web ui'print e.messageelse:print 'channel({}) rtmp settings done'.format(channel_id)'For examples on all implemented web ui calls, please check the unit tests inthe tests dir of a local clone. Tests also host examples of json files forlayout inputs and expected json responses from device.testing------------------------------------------------During development, epipearl tests were executed using [pytest][pytest].To run test from a local git clone:pip install -r requirements_dev.txtthen, to rul all tests:py.test testsYou can also run live tests, but these require some environment variables to beset:- EPI\_URL: the url to reach the epiphan-pearl web ui- EPI\_USER: the admin username for epiphan-pearl web ui- EPI\_PASSWD: the admin password for epiphan-pearl web ui- EPI\_PUBLISH\_TYPE: 0 or 6 to stop or start rtmp push in epiphan-pearlSet these in the environment and doexport EPI_URL=http://epiphan_pearl_addressexport EPI_USER=admin_userexport EPI_PASSWD=secret_passwordexport EPI_PUBLISH_TYPE=0  # stop rtmp pushingpy.test tests --runliveLive tests will connect with actual device and change its settings.license-------epipearl is licensed under the Apache 2.0 licensecopyright---------2015~2016 President and Fellows of Harvard College[cookiecutter]: https://github.com/audreyr/cookiecutter[dce-pypackage]: https://github.com/harvard-dce/cookiecutter-dce[pearl]: http://www.epiphan.com/products/pearl/[pearl-http-api]:http://31t4ggyuf393hqweo1aq90k7.wpengine.netdna-cdn.com/wp-content/uploads/2014/09/Epiphan_Pearl_userguide.pdf[pytest]: http://pytest.org/latest/History-------0.2.0 (2016-07-11)------------------* webui calls for configuration0.1.1 (2016-03-17)------------------* fix value for dynamic default args0.1.0 (2015-12-10)---------------------* First release on PyPI.