{ "info": { "author": "nmaekawa", "author_email": "nmaekawa@g.harvard.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "epipearl\n===============================\n\nPython client for [epiphan-pearl][pearl]. It provides a client interface for\nepiphan-pearl [http api][pearl-http-api], and some of its web ui configuration\ninterface, and DCE custom web ui configuration as well.\n\nCurrent version of Epipearl is tested against _v3.15.3f_ firmware.\n\nThis software shoud be considered alpha, therefore likely to change/break in the near future.\n\n\ninstall\n-------\n\n pip install epipearl\n\n\n\nexample usage to get and set channels parameters\n------------------------------------------------\n\n from epipearl import Epipearl\n client = Epipearl( \"http://epiphan_pearl_address\", \"admin\", \"secret_password\" )\n \n # to get the type of stream being published and frame size for channel 1\n response = client.get_params( channel='1', params={'publish_type':'', 'framesize':''})\n print \"publish_type is %s\" % response['publish_type']\n print \"framsize is %s\" % response['framesize']\n \n # to start recording on recorder 2\n response = client.set_params( channel='m2', params={'rec_enabled': 'on'})\n if response:\n print \"recorder 2 set to start recording\"\n\n\n\nexample usage of web ui methods\n------------------------------------------------\n\nBesides the HTTP API calls `get_params()` and `set_params()`, epipearl exposes\nsome web ui HTML form posts as python calls.\n\nFor example, if you need to create a new channel:\n\n # create the client\n import requests\n from epipearl.errors import SettingConfigError\n from epipearl.errors IndiscernibleResponseFromWebUiError\n from epipearl import Epipearl\n client = Epipearl( \"http://epiphan_pearl_address\", \"admin\", \"secret_password\" )\n\n # to create a channel, give it a name\n channel_id = client.create_channel('my new epiphan-pearl channel')\n\n # the returned channel_id is the id to be used to reference this channel\n # in all subsequent operations, like setting the rtmp-push settings\n try:\n client.set_channel_rtmp(\n channel_id=channel_id,\n rtmp_url='rtmp://some.url.where.to.push.to.eg.akamai',\n rtmp_stream='stream_name',\n rtmp_usr='user_for_rtmp_eg_akamai_account',\n rtmp_pwd='password')\n except requests.HTTPError:\n print 'error during http request'\n except SettingConfigError as e:\n print 'device web ui returned error or some settings did not take'\n print e.message\n except IndiscernibleResponseFromWebUiError:\n print 'did not understand response from device web ui'\n print e.message\n else:\n print 'channel({}) rtmp settings done'.format(channel_id)'\n\n\nFor examples on all implemented web ui calls, please check the unit tests in\nthe tests dir of a local clone. Tests also host examples of json files for\nlayout inputs and expected json responses from device.\n\n\n\ntesting\n------------------------------------------------\n\nDuring development, epipearl tests were executed using [pytest][pytest].\n\nTo run test from a local git clone:\n\n pip install -r requirements_dev.txt\n\nthen, to rul all tests:\n\n py.test tests\n\n\nYou can also run live tests, but these require some environment variables to be\nset:\n\n- EPI\\_URL: the url to reach the epiphan-pearl web ui\n- EPI\\_USER: the admin username for epiphan-pearl web ui\n- EPI\\_PASSWD: the admin password for epiphan-pearl web ui\n- EPI\\_PUBLISH\\_TYPE: 0 or 6 to stop or start rtmp push in epiphan-pearl\n\nSet these in the environment and do\n\n export EPI_URL=http://epiphan_pearl_address\n export EPI_USER=admin_user\n export EPI_PASSWD=secret_password\n export EPI_PUBLISH_TYPE=0 # stop rtmp pushing\n py.test tests --runlive\n\nLive tests will connect with actual device and change its settings.\n\n\n\nlicense\n-------\n\nepipearl is licensed under the Apache 2.0 license\n\n\n\ncopyright\n---------\n\n2015~2016 President and Fellows of Harvard College\n\n[cookiecutter]: https://github.com/audreyr/cookiecutter\n[dce-pypackage]: https://github.com/harvard-dce/cookiecutter-dce\n[pearl]: http://www.epiphan.com/products/pearl/\n[pearl-http-api]:\nhttp://31t4ggyuf393hqweo1aq90k7.wpengine.netdna-cdn.com/wp-content/uploads/2014/09/Epiphan_Pearl_userguide.pdf\n[pytest]: http://pytest.org/latest/\n\n\n\n\nHistory\n-------\n\n0.2.0 (2016-07-11)\n------------------\n\n* webui calls for configuration\n\n\n0.1.1 (2016-03-17)\n------------------\n\n* fix value for dynamic default args\n\n\n\n0.1.0 (2015-12-10)\n---------------------\n\n* First release on PyPI.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/harvard-dce/epipearl", "keywords": "epipearl", "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "epipearl", "package_url": "https://pypi.org/project/epipearl/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/epipearl/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/harvard-dce/epipearl" }, "release_url": "https://pypi.org/project/epipearl/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "python client for epiphan-pearl http api", "version": "0.2.0" }, "last_serial": 2258113, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "982540c3457606694ded2e580ee2599e", "sha256": "91d80e11a47a8ae5634d3d3b24bfbf784fc7bd5ad1cd7fd78aae8f1cc805383d" }, "downloads": -1, "filename": "epipearl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "982540c3457606694ded2e580ee2599e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6613, "upload_time": "2015-12-10T17:16:57", "url": "https://files.pythonhosted.org/packages/a3/01/55cf80034409619327f794deaca9f65fa73f6ff65b97448978ede8fdc66b/epipearl-0.1.0.tar.gz" } ], "0.1.1": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b40f4cad384feb8a1d5d850c418fb559", "sha256": "7d5b0c7707305b0c895d3991c782d1febc4da8569849fa01273b316e24180187" }, "downloads": -1, "filename": "epipearl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b40f4cad384feb8a1d5d850c418fb559", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 360558, "upload_time": "2016-08-02T16:45:03", "url": "https://files.pythonhosted.org/packages/c9/d0/450264f5e1589a47ac338bfff1724d5fdc5ad3a3ac027802a6749c8efc2f/epipearl-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b40f4cad384feb8a1d5d850c418fb559", "sha256": "7d5b0c7707305b0c895d3991c782d1febc4da8569849fa01273b316e24180187" }, "downloads": -1, "filename": "epipearl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b40f4cad384feb8a1d5d850c418fb559", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 360558, "upload_time": "2016-08-02T16:45:03", "url": "https://files.pythonhosted.org/packages/c9/d0/450264f5e1589a47ac338bfff1724d5fdc5ad3a3ac027802a6749c8efc2f/epipearl-0.2.0.tar.gz" } ] }