{ "info": { "author": "Richard Tier", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Alexa Browser Client\n\n[![code-climate-image]][code-climate]\n[![circle-ci-image]][circle-ci]\n[![codecov-image]][codecov]\n[![pypi-image]][pypi]\n[![django-version-image]][pypi]\n\n**Alexa client in your browser. Django app. Talk to Alexa from your desktop, phone, or tablet browser.**\n\n---\n\n## Demo\n\nThe demo should really be heard, so click the gif below to view it in youtube.\n\n[![Demo](https://j.gifs.com/qY4qBy.gif)](https://youtu.be/cm19aa6x9VY)\n\n## Run the demo\n\nFirst follow these steps:\n\n1. [Configure your Amazon oauth configuration](#refresh-token)\n2. [Set your environment variables](#authentication)\n3. Install:\n```sh\n$ git clone git@github.com:richtier/alexa-browser-client.git\n$ cd alexa-browser-client\n$ virtualenv .venv -p python3.6 && source .venv/bin/activate && make test_requirements\n```\n4. [Compile snowboy](#snowboy)\n5. `$ make demo`\n6. Go to http://localhost:8000 for basic demo, or http://localhost:8000/mixer/ to play with the response audio\n\n## Installation\n\n```\npip install alexa_browser_client\n```\n\nMake sure your settings `INSTALLED_APPS` contains at least these entries:\n\n```\nINSTALLED_APPS = [\n 'django.contrib.staticfiles',\n 'channels',\n 'alexa_browser_client',\n]\n```\n\n## Dependencies\n\n[Snowboy](https://github.com/Kitt-AI/snowboy#compile-a-python-wrapper) detects when the wakeword \"Alexa\" is uttered.\n\nYou must compile [Snowboy](https://github.com/Kitt-AI/snowboy#compile-a-python-wrapper) manually. Copy the compiled `snowboy` folder to the top level of you project. By default, the folder structure should be:\n```\n.\n\u251c\u2500\u2500 ...\n\u251c\u2500\u2500 snowboy\n| \u251c\u2500\u2500 snowboy-detect-swig.cc\n| \u251c\u2500\u2500 snowboydetect.py\n| \u2514\u2500\u2500 resources\n| \u251c\u2500\u2500 alexa.umdl\n| \u2514\u2500\u2500 common.res\n\u2514\u2500\u2500 ...\n```\n\nIf the default folder structure does not suit your needs you can [customize the wakeword detector](#wakeword).\n\n### Routing and urls\nAdd `url(r'^', include('alexa_browser_client.config.urls')),` to `urls.py` `url_patterns`.\n\nAdd `include('alexa_browser_client.config.routing.channel_routing')` to your `routing.py` `channel_routing`.\n\n## Authentication ##\n\nThis app uses Alexa Voice Service. To use AVS you must first have a [developer account](http://developer.amazon.com). Then register your product [here](https://developer.amazon.com/avs/home.html#/avs/products/new). Choose \"Application\" under \"Is your product an app or a device\"?\n\nEnsure you update your settings.py:\n\n| Setting | Notes |\n| ----------------------------------------- | ------------------------------------- |\n| `ALEXA_BROWSER_CLIENT_AVS_CLIENT_ID` | Retrieve by clicking on the your product listed [here](https://developer.amazon.com/avs/home.html#/avs/home) |\n| `ALEXA_BROWSER_CLIENT_AVS_CLIENT_SECRET` | Retrieve by clicking on the your product listed [here](https://developer.amazon.com/avs/home.html#/avs/home) |\n| `ALEXA_BROWSER_CLIENT_AVS_DEVICE_TYPE_ID` | Retrieve by reading \"Product ID\" [here](https://developer.amazon.com/avs/home.html#/avs/home) |\n\n### Refresh token ###\n\nYou will need to login to Amazon via a web browser to get your refresh token.\n\nTo enable this first go [here](https://developer.amazon.com/avs/home.html#/avs/home) and click on your product to set some security settings under `Security Profile` and, assuming you're running on localhost:8000, set the following:\n\n| setting | value |\n| ------------------- | ----------------------------------------------|\n| Allowed Origins | https://localhost:8000/refreshtoken/ |\n| Allowed Return URLs | https://localhost:8000/refreshtoken/callback/ |\n\n\n## Usage\n\nOnce you have all the settings configured:\n\n- Run django: `./manage.py runserver`\n- Go to `http://localhost:8000` and start talking to Alexa.\n\n## Customization ##\n\n### Wakeword ###\n\nThe default wakeword is \"Alexa\". You can change this by customizing the lifecycle's `audio_detector_class`:\n\n```py\n# my_project/consumers.py\n\nimport alexa_browser_client\nimport command_lifecycle\n\n\nclass CustomAudioDetector(command_lifecycle.wakeword.SnowboyWakewordDetector):\n wakeword_library_import_path = 'dotted.import.path.to.wakeword.Detector'\n resource_file = b'path/to/resource_file.res'\n decoder_model = b'path/to/model_file.umdl'\n\n\nclass CustomAudioLifecycle(alexa_browser_client.AudioLifecycle):\n audio_detector_class = CustomAudioDetector\n\n\nclass CustomAlexaConsumer(alexa_browser_client.AlexaConsumer):\n audio_lifecycle_class = CustomAudioLifecycle\n```\n\nThen in your `routing.py`:\n\n```\nimport alexa_browser_client.consumers\nfrom channels.routing import ProtocolTypeRouter, URLRouter\nfrom channels.sessions import SessionMiddlewareStack\n\nfrom django.conf.urls import url\n\n\napplication = ProtocolTypeRouter({\n 'websocket': SessionMiddlewareStack(\n URLRouter([\n url(r\"^ws/$\", alexa_browser_client.consumers.AlexaConsumer),\n ])\n ),\n})\n\n```\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [PyPI](https://pypi.org/project/alexa-browser-client/#history).\n\n## Other projects\n\nThis project uses [Voice Command Lifecycle](https://github.com/richtier/voice-command-lifecycle) and [Alexa Voice Service Client](https://github.com/richtier/alexa-voice-service-client).\n\n[code-climate-image]: https://codeclimate.com/github/richtier/alexa-browser-client/badges/gpa.svg\n[code-climate]: https://codeclimate.com/github/richtier/alexa-browser-client\n\n[codecov-image]: https://codecov.io/gh/richtier/alexa-browser-client/branch/master/graph/badge.svg\n[codecov]: https://codecov.io/gh/richtier/alexa-browser-client\n\n[circle-ci-image]: https://circleci.com/gh/richtier/alexa-browser-client/tree/master.svg?style=shield\n[circle-ci]: https://circleci.com/gh/richtier/alexa-browser-client/tree/master\n\n[django-version-image]: https://img.shields.io/pypi/djversions/alexa-browser-client.svg\n\n[pypi-image]: https://badge.fury.io/py/alexa-browser-client.svg\n[pypi]: https://badge.fury.io/py/alexa-browser-client\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/richtier/alexa-browser-client", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "alexa-browser-client", "package_url": "https://pypi.org/project/alexa-browser-client/", "platform": "", "project_url": "https://pypi.org/project/alexa-browser-client/", "project_urls": { "Homepage": "https://github.com/richtier/alexa-browser-client" }, "release_url": "https://pypi.org/project/alexa-browser-client/3.3.2/", "requires_dist": [ "channels (<3.0.0,>=2.1.4)", "channels-redis (<3.0.0,>=2.1.1)", "Django (<3.0.0,>=2.1.0)", "alexa-client (<2.0.0,>=1.4.1)", "command-lifecycle (<5.0.0,>=4.1.0)", "requests (<3.0.0,>=2.20.0)", "pytest (==3.2.3) ; extra == 'test'", "pytest-cov (==2.5.1) ; extra == 'test'", "pytest-django (==3.1.2) ; extra == 'test'", "pytest-sugar (==0.9.0) ; extra == 'test'", "flake8 (==3.4.0) ; extra == 'test'", "codecov (==2.0.9) ; extra == 'test'", "requests-mock (==1.3.0) ; extra == 'test'", "django-environ (==0.4.3) ; extra == 'test'", "pytest-asyncio (==0.9.0) ; extra == 'test'", "twine (<2.0.0,>=1.11.0) ; extra == 'test'", "wheel (<1.0.0,>=0.31.0) ; extra == 'test'", "setuptools (<39.0.0,>=38.6.0) ; extra == 'test'" ], "requires_python": "", "summary": "Alexa client in your browser. Django app.", "version": "3.3.2", "yanked": false, "yanked_reason": null }, "last_serial": 6045792, "releases": { "0.3.1": [ { "comment_text": "", "digests": { "md5": "f5e585cbb07d69a458a344a6755efe53", "sha256": "324cbc233f2cc068cbca6658e182430e3de830bcfa7e381b856b553e59c37f5f" }, "downloads": -1, "filename": "alexa_browser_client-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f5e585cbb07d69a458a344a6755efe53", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11807, "upload_time": "2017-08-28T22:32:32", "upload_time_iso_8601": "2017-08-28T22:32:32.459842Z", "url": "https://files.pythonhosted.org/packages/13/b7/5b6fa81b62316418ae9266b2c15eac2b5d722aa758df3d1e6e7323c4dc42/alexa_browser_client-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "fc178f4186512bd6b3dea0d8ca20808d", "sha256": "81ef23c5df73e557e5d366bf4c172d6af434eee9fc04f90811a893a3171dbbc7" }, "downloads": -1, "filename": "alexa_browser_client-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "fc178f4186512bd6b3dea0d8ca20808d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11965, "upload_time": "2017-08-29T22:42:25", "upload_time_iso_8601": "2017-08-29T22:42:25.800208Z", "url": "https://files.pythonhosted.org/packages/21/38/8205171568bb02a359628ec553652bfb7aaa1e36b123ec028c136dfa7307/alexa_browser_client-0.3.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "b75994ad156de9363ae4343386d9aa24", "sha256": "8d5f0d9526f0398f05afa18e1d42363d3fecd4c56729fa7d35e103438547fa3b" }, "downloads": -1, "filename": "alexa_browser_client-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b75994ad156de9363ae4343386d9aa24", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12409, "upload_time": "2017-09-01T21:49:55", "upload_time_iso_8601": "2017-09-01T21:49:55.248043Z", "url": "https://files.pythonhosted.org/packages/3b/96/af70855ab752df396b0ad65c415ca146c14a96e40bf05f5842a030ab2153/alexa_browser_client-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "c120c6cfddac2f8371e2807c506810d8", "sha256": "a992321fe4536ecbf3b7bde9238f7451f5ea47a398f8ddbdaf12ebc998ab2c32" }, "downloads": -1, "filename": "alexa_browser_client-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c120c6cfddac2f8371e2807c506810d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13107, "upload_time": "2017-10-04T07:53:38", "upload_time_iso_8601": "2017-10-04T07:53:38.638135Z", "url": "https://files.pythonhosted.org/packages/54/61/a300defebc6db4319b1caad4565ab3f9d814b293c3eba0eeb66fb0726070/alexa_browser_client-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "9753feed7611ad49b93e768587a83f8d", "sha256": "8e8847e0726bc8335f16b588d73ebd2924d49d4d2d4b1e107fc291f7436f854f" }, "downloads": -1, "filename": "alexa_browser_client-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9753feed7611ad49b93e768587a83f8d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12056, "upload_time": "2017-10-08T23:23:05", "upload_time_iso_8601": "2017-10-08T23:23:05.193778Z", "url": "https://files.pythonhosted.org/packages/d2/91/f22751b01f85ef113c0809bc0e301aadaff2948b2830b123479ecd1c1918/alexa_browser_client-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "98ac9dc2d71d1bed83a8866d6d382b12", "sha256": "cce3d98da8eabc78c7301104cefbd3c463967fb24eebc2840caff7482a8fd7db" }, "downloads": -1, "filename": "alexa_browser_client-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "98ac9dc2d71d1bed83a8866d6d382b12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12053, "upload_time": "2017-10-09T22:43:25", "upload_time_iso_8601": "2017-10-09T22:43:25.429032Z", "url": "https://files.pythonhosted.org/packages/ce/46/4cccb2f04ee86ee2d6280af187eb822d3f37948532bb8b7a6f586c30cbc3/alexa_browser_client-0.7.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "b7472a08f8a069cfe20af2a2a54ca813", "sha256": "a64b08792779be67e9ebe8b95725d5ec9f6a2399efc258d56a8020967c323951" }, "downloads": -1, "filename": "alexa_browser_client-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b7472a08f8a069cfe20af2a2a54ca813", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12037, "upload_time": "2017-10-10T21:23:46", "upload_time_iso_8601": "2017-10-10T21:23:46.697920Z", "url": "https://files.pythonhosted.org/packages/a6/fb/39169b535429d95d007bd701d34acf67ca53863cda11a23f3e15bbf2582a/alexa_browser_client-0.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "6a622e3d67422c65ebc72ded5b67afb0", "sha256": "5587408da7091ad299e67b1371bb9f6bdda42b3a5bbca03fc2688c4bfa60c00c" }, "downloads": -1, "filename": "alexa_browser_client-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6a622e3d67422c65ebc72ded5b67afb0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13409, "upload_time": "2018-07-20T22:07:29", "upload_time_iso_8601": "2018-07-20T22:07:29.217480Z", "url": "https://files.pythonhosted.org/packages/8d/e6/82d0208fef82914d22e582f8247a4815e6d53f320772f7b509bf76eefa71/alexa_browser_client-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b28465bc0d76ccb06bf55d5aeb543555", "sha256": "04a0379f7197dc596412ad4513aac0bbaf76a19bd9edfa9a1a0c7992d7f7d225" }, "downloads": -1, "filename": "alexa_browser_client-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b28465bc0d76ccb06bf55d5aeb543555", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13383, "upload_time": "2018-07-20T23:21:04", "upload_time_iso_8601": "2018-07-20T23:21:04.822837Z", "url": "https://files.pythonhosted.org/packages/5b/44/d2e4cc4479c9c6cb0f235eb4a56dcecd2d5ff39ec28d57dc9d3ea4b20275/alexa_browser_client-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "2ddc3452643755508c155329ca73b65b", "sha256": "6c9f98b8d8733bc2a2528ee2b17348b5d6e574211cc304747d6787491b38b6fd" }, "downloads": -1, "filename": "alexa_browser_client-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2ddc3452643755508c155329ca73b65b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13434, "upload_time": "2018-07-22T19:52:45", "upload_time_iso_8601": "2018-07-22T19:52:45.956482Z", "url": "https://files.pythonhosted.org/packages/d1/6b/3174f385b097cc73af1a91039df0d234e904e32607bfc22a84ea5f4fe50b/alexa_browser_client-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "5d42ca980d0e37ae196d6c60086b9ebc", "sha256": "abb13d89535c8ba69e4c3e6f90a2e731b8545c3496e9b0e75b52411182348ea5" }, "downloads": -1, "filename": "alexa_browser_client-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5d42ca980d0e37ae196d6c60086b9ebc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13562, "upload_time": "2018-07-29T08:28:02", "upload_time_iso_8601": "2018-07-29T08:28:02.857529Z", "url": "https://files.pythonhosted.org/packages/ae/dd/900252fc01f30bcba654604568ef123cefafcef8c0b9c01c9fe50dfa895c/alexa_browser_client-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "2c5e0c22a2b0912ee9c3bc3f23673797", "sha256": "d9d755450b92321c35bb57ed0cce5404a9509dfca8fe3cdcc440eba4b7bd9daa" }, "downloads": -1, "filename": "alexa_browser_client-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2c5e0c22a2b0912ee9c3bc3f23673797", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13667, "upload_time": "2018-07-29T19:29:43", "upload_time_iso_8601": "2018-07-29T19:29:43.654255Z", "url": "https://files.pythonhosted.org/packages/46/6c/2535573689bac3bc0932c2e778f31591fce77e00afafd8eefddafa7c146e/alexa_browser_client-1.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "eb2bae227bcc2ddc7871559a1019be69", "sha256": "8cba0d8dce0a67717d3abe4745fc7810f43897ed1b1fc1716cc9119d93682fab" }, "downloads": -1, "filename": "alexa_browser_client-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "eb2bae227bcc2ddc7871559a1019be69", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13908, "upload_time": "2018-08-17T21:27:21", "upload_time_iso_8601": "2018-08-17T21:27:21.181263Z", "url": "https://files.pythonhosted.org/packages/9a/31/87cdc833c0ea5e47eb4e3d4a7df626dd1a8dfe1b238aface9e984552931a/alexa_browser_client-2.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "cec79eb40463644d7f017552748e151e", "sha256": "4a7981fb29768c18d9631a1235cf843a65994d5d30959b93e9bc405d90ca404b" }, "downloads": -1, "filename": "alexa_browser_client-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cec79eb40463644d7f017552748e151e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13915, "upload_time": "2018-08-17T22:23:36", "upload_time_iso_8601": "2018-08-17T22:23:36.768257Z", "url": "https://files.pythonhosted.org/packages/e2/af/27c5d18f069fbce1ebce15867ec6284cb5e5e2ed0280a575554ed9a140d2/alexa_browser_client-2.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "cf2d7f280ef47881334f33b22039696e", "sha256": "b43b88ffd82bccffd0101570359b94a1bb3950c92d87f1297f8b4699f0d2bf68" }, "downloads": -1, "filename": "alexa_browser_client-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cf2d7f280ef47881334f33b22039696e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10571, "upload_time": "2018-09-13T21:48:53", "upload_time_iso_8601": "2018-09-13T21:48:53.423885Z", "url": "https://files.pythonhosted.org/packages/36/8d/2f7ba89d28292fe1a512a1548b26333574e76a74a5392cb46bcd59b2247f/alexa_browser_client-2.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "74157a50341ccad4e8f7d3faa78f5280", "sha256": "3724ca45be1406c7fbf209a5f7639982df8f39baf542f3fa1653806700ddbcbd" }, "downloads": -1, "filename": "alexa_browser_client-3.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "74157a50341ccad4e8f7d3faa78f5280", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13561, "upload_time": "2018-11-10T20:58:55", "upload_time_iso_8601": "2018-11-10T20:58:55.331956Z", "url": "https://files.pythonhosted.org/packages/77/3d/1f98ab5f8839dca9d180eeb764e6323ed0683891c286c51e3237f4ed39e5/alexa_browser_client-3.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "12610bc335499edb85445a49bd3ca202", "sha256": "9d7cae59277257e2ce609d955639879516a75c52bcc953d14304f8459d917713" }, "downloads": -1, "filename": "alexa_browser_client-3.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "12610bc335499edb85445a49bd3ca202", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10816, "upload_time": "2018-12-31T21:28:06", "upload_time_iso_8601": "2018-12-31T21:28:06.584183Z", "url": "https://files.pythonhosted.org/packages/3d/a4/187a55d004120bae7134c9a936ba9c185dcdb08ada3195687ff0fddc652e/alexa_browser_client-3.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "5b051be61f686f740d16fe36cfe003b7", "sha256": "93f3a7edee067e010e93f5d504fce83bf10285cbf6035323781afa68cf93b6a0" }, "downloads": -1, "filename": "alexa_browser_client-3.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5b051be61f686f740d16fe36cfe003b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10787, "upload_time": "2019-01-01T19:44:35", "upload_time_iso_8601": "2019-01-01T19:44:35.883203Z", "url": "https://files.pythonhosted.org/packages/f1/0a/9746e0f6d0d43cc9bf3e11aee35b3fc37c84fa239c573b119c402d33462a/alexa_browser_client-3.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "d3c3fb4fff3fa524de584f10866c6b3f", "sha256": "9daafa832145140451c2313d1c007cc8e0a402fcc7a16d99ca21d71be0c9a5f2" }, "downloads": -1, "filename": "alexa_browser_client-3.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d3c3fb4fff3fa524de584f10866c6b3f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10992, "upload_time": "2019-01-11T09:30:28", "upload_time_iso_8601": "2019-01-11T09:30:28.723185Z", "url": "https://files.pythonhosted.org/packages/e9/33/f8ba3ca13be57facfae806aff5b691ed29a0d188d0a9cbb920dfe9462c4b/alexa_browser_client-3.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.3.0": [ { "comment_text": "", "digests": { "md5": "ad53c7ee6d3632edb04ee5dcd638860d", "sha256": "dd06bd3ef807cafde62fd7de0e654a4614ba3220590203a50a62ee9162b3e210" }, "downloads": -1, "filename": "alexa_browser_client-3.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ad53c7ee6d3632edb04ee5dcd638860d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33111, "upload_time": "2019-07-29T05:37:37", "upload_time_iso_8601": "2019-07-29T05:37:37.392890Z", "url": "https://files.pythonhosted.org/packages/10/b2/2f3176865b503dbece5eb72f8aabc366a8573c795948849d9e1e3cda0731/alexa_browser_client-3.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.3.1": [ { "comment_text": "", "digests": { "md5": "3ca2424db7dbbae36d94cb26e46f8404", "sha256": "ead31cc1dcfa2fe7fafa29589f3eb326e9897b77be273b9625de7f1358899b95" }, "downloads": -1, "filename": "alexa_browser_client-3.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3ca2424db7dbbae36d94cb26e46f8404", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33106, "upload_time": "2019-07-29T05:39:50", "upload_time_iso_8601": "2019-07-29T05:39:50.742495Z", "url": "https://files.pythonhosted.org/packages/98/40/197577427cd4b70ef213c337fbc49e7fd89fa57ded5e7d3124c264efc931/alexa_browser_client-3.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "3.3.2": [ { "comment_text": "", "digests": { "md5": "128014212f59e8eb57e3a391b67d5941", "sha256": "712eae1abd934af2f4fc662db63d5e31da573cdde25ff4c5caff40e000072520" }, "downloads": -1, "filename": "alexa_browser_client-3.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "128014212f59e8eb57e3a391b67d5941", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11632, "upload_time": "2019-10-29T08:04:19", "upload_time_iso_8601": "2019-10-29T08:04:19.813609Z", "url": "https://files.pythonhosted.org/packages/0f/7a/a7fd0593775e102a36b05354b4f4cfe40def8096ba5d28331cce4a2865d3/alexa_browser_client-3.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "128014212f59e8eb57e3a391b67d5941", "sha256": "712eae1abd934af2f4fc662db63d5e31da573cdde25ff4c5caff40e000072520" }, "downloads": -1, "filename": "alexa_browser_client-3.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "128014212f59e8eb57e3a391b67d5941", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11632, "upload_time": "2019-10-29T08:04:19", "upload_time_iso_8601": "2019-10-29T08:04:19.813609Z", "url": "https://files.pythonhosted.org/packages/0f/7a/a7fd0593775e102a36b05354b4f4cfe40def8096ba5d28331cce4a2865d3/alexa_browser_client-3.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }