{ "info": { "author": "Dinu Gherman", "author_email": "gherman@darwin.in-berlin.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "Ipyrest\n=======\n\n[![Binder](https://mybinder.org/badge_logo.svg)](http://beta.mybinder.org/v2/gh/deeplook/ipyrest/master) \n[![Nbviewer](https://img.shields.io/badge/render-nbviewer-orange.svg)](http://nbviewer.jupyter.org/github/deeplook/ipyrest/tree/master/)\n[![Travis-CI](http://img.shields.io/travis/deeplook/ipyrest.svg)](https://travis-ci.org/deeplook/ipyrest)\n[![image](https://img.shields.io/pypi/implementation/ipyrest.svg)](https://pypi.org/project/ipyrest/)\n[![image](https://img.shields.io/pypi/pyversions/ipyrest.svg)](https://pypi.org/project/ipyrest/)\n[![image](https://img.shields.io/pypi/v/ipyrest.svg)](https://pypi.org/project/ipyrest/)\n[![image](https://img.shields.io/pypi/dm/ipyrest.svg)](https://pypi.org/project/ipyrest/)\n[![image](https://img.shields.io/pypi/l/ipyrest.svg)](https://pypi.org/project/ipyrest/)\n[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/deeplook)\n\nIpyrest is an emerging Jupyter notebook widget for exploring RESTful APIs. It has two main goals: provide a more convenient interface in the spirit of Postman, and allow for plug-in components, starting with output renderers for various MIME types, e.g. GeoJSON, see below.\n\nAbout\n-----\n\nAt its core ipyrest is a wrapper for the excellent requests package based on the equally excellent ipywidgets package. The idea is to provide more interactive exploration capabilities when working with RESTful APIs. It does so by letting you build requests for an API call and understand more quickly the responses you receive. To that end you can use existing views for requests and responses or build your own. It is inspired by Postman, but without the bloat, and goes beyond it to make sure you can extend it the way you want. In essence, it's for data scientists rather than web developers. \n\n\nExample\n-------\n\n``` {.sourceCode .python}\nfrom ipyrest import Api\n\n# Fix content-type as it is not set for gists.\ndef reset_content_type(resp):\n resp.headers['Content-Type'] = 'application/vnd.geo+json'\n\nurl = 'https://gist.githubusercontent.com/' \\\n 'deeplook/71e9ded257cfc2d8e5e9/raw/f0cfbab5f266fcb8056e8aea046f1f222346b76b/2013.geojson'\nApi(url, post_process_resp=reset_content_type)\n```\n\n![banner](https://github.com/deeplook/ipyrest/raw/master/images/banner.png \"\")\n\nFeatures\n--------\n\nIpyrest deals with the following concepts, implemented to varying degrees: HTTP Server, Service, Request, Response, Data, MIME-Types, Compression, Logging, Caching, Time-Outs, Errors, Views, Plugins, Testing, and UI.\n\nAt the moment the following plugins are available for rendering output from HTTP responses in common formats: Plain Text, CSV, HTML, Bitmaps, SVG, JSON, GeoJSON, GPX, Protobuf, (and some experimental 3D stuff).\n\nThe main dependencies are: Python >= 3.6, jupyter, ipywidgets, timeout_decorator, requests, and vcr. Plugin dependencies are: ipyleaflet, ipyvolume, geojson, qgrid, protobuf. Testing dependencies are flask, mypy, and pytest.\n\nInstallation\n------------\n\nReleased versions of ipyrest can be installed from PyPI with:\n\n``` {.sourceCode .bash}\npip install ipyrest\n```\n\nDevelopment versions of ipyrest can be installed either directly from GitHub or after downloading/cloning and unpacking like this in its top-level directory:\n\n``` {.sourceCode .bash}\npip install git+https://github.com/deeplook/ipyrest\n\npip install -e .\n```\n\nTesting\n-------\n\nRun `pip install -r requirements_test.txt` and `PYTHONPATH=. pytest -s -v tests` in the root directory. Some tests will automatically start a local flask webserver in `tests/api_server.py` which implements a set of sample API endpoints for local testing. And some of these tests need keys/tokens defined as environment variables for the respective APIs being tested. If not present these tests will be skipped.\n\nDocumentation\n-------------\n\nThe `docs` folder is only a stub for now. At the moment it is recommended to look at [`examples/meetup.ipynb`](examples/meetup.ipynb), mostly a tutorial-like collection of examples given as a presentation at a meetup. Some of these need appropriate API keys.\n\nHow to Contribute\n-----------------\n\n1. Check for open issues or open a fresh issue to start a discussion\n around a feature idea or a bug or example for some API (ideally without\n authentication), e.g. from the extensive collection of\n [Public APIs](https://github.com/toddmotto/public-apis).\n2. Fork [the repository](https://github.com/deeplook/ipyrest) on\n GitHub to start making your changes to the **master** branch (or\n branch off of it).\n3. Write a test which shows that the bug was fixed or that the feature\n works as expected.\n4. Send a pull request and bug the maintainer until it gets merged and\n published. :) Make sure to add yourself to\n [AUTHORS](https://github.com/deeplook/ipyrest/blob/master/AUTHORS.rst).\n\n\nHistory\n-------\n\n0.1.0 (2018-11-24):\n\n* First release on PyPI.\n\n\n0.1.1 (2018-11-25):\n\n* Minor test refactoring.\n* Minor code/text/formating changes.\n* Minor packaging cleanup.\n\n\n0.1.2 (2018-11-26):\n\n* Finally rendering README.md on PyPI(?).\n* Enable classic notebook extension for qgrid.\n\n\n0.1.3 (2018-11-27):\n\n* Minor text formatting issues.\n\n\n0.1.4 (2019-01-28):\n\n* Refactored test code partly into tools.py.\n* Wrapped execute_request function as method in Api class.\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/deeplook/ipyrest", "keywords": "ipyrest", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "ipyrest", "package_url": "https://pypi.org/project/ipyrest/", "platform": "", "project_url": "https://pypi.org/project/ipyrest/", "project_urls": { "Homepage": "https://github.com/deeplook/ipyrest" }, "release_url": "https://pypi.org/project/ipyrest/0.1.4/", "requires_dist": [ "ipywidgets (>=7.4.2)", "jinja2", "requests", "timeout-decorator", "typing", "vcrpy", "geojson", "gpxpy", "ipyleaflet", "ipyvolume (>=0.5.1)", "numpy", "pandas", "protobuf", "qgrid" ], "requires_python": "", "summary": "An emerging widget for exploring RESTful APIs in Jupyter notebooks.", "version": "0.1.4" }, "last_serial": 4751864, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4e99cd0d8ddcff880c219c61fcde0c97", "sha256": "463bb8add9dd36ee9576ae3b3cc676bb4e925c46161bcf973166545be308bf58" }, "downloads": -1, "filename": "ipyrest-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e99cd0d8ddcff880c219c61fcde0c97", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15118, "upload_time": "2018-11-24T00:33:34", "url": "https://files.pythonhosted.org/packages/7f/99/24e0db2e6f9304197fa9df543a80891bdc9712f208f690c48f72f0d5748d/ipyrest-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6027f523c758423d0c29173a265ec07", "sha256": "309d0e3fe1fe86a870abd6605136d05e5fbd31194144c0029e47fb6c7a8131b4" }, "downloads": -1, "filename": "ipyrest-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f6027f523c758423d0c29173a265ec07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 827030, "upload_time": "2018-11-24T00:33:39", "url": "https://files.pythonhosted.org/packages/af/c3/f90fbc4609cc84c3dd94cf2c0eadeae3a2ce989ef0aabba6533559422598/ipyrest-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c52ffd9bb53115c78d622b0efa0037d0", "sha256": "1e37f724daf1189a482c11516e07ea6be2b0ac55bf3ef40969500079a0503042" }, "downloads": -1, "filename": "ipyrest-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c52ffd9bb53115c78d622b0efa0037d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14088, "upload_time": "2018-11-25T20:20:52", "url": "https://files.pythonhosted.org/packages/27/1d/971cc28bd302560b2f5e9887eaa6d3e674eedeb0d885baefdcd7113c58f5/ipyrest-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c86383b6e6db652700dc891837508d1", "sha256": "8730a099da6b1e31b536b57aa112b961c20cd41cbe131b6897ffce6d3d3559b4" }, "downloads": -1, "filename": "ipyrest-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4c86383b6e6db652700dc891837508d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71775, "upload_time": "2018-11-25T20:20:54", "url": "https://files.pythonhosted.org/packages/22/88/dccdf9d9dec5d98c48cecc64ea1f2c57a460852ed680be21545712fae4b4/ipyrest-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "0131dbe895debe18684b0085b14e143c", "sha256": "ced64f910424f8e1b8937fdf22bb579a00dbf77e6e2af096fe95d932a5af2886" }, "downloads": -1, "filename": "ipyrest-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0131dbe895debe18684b0085b14e143c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14180, "upload_time": "2018-11-26T00:16:01", "url": "https://files.pythonhosted.org/packages/d8/68/eee5b30803cf7f4f206c70642e1bba105f6e7cfea171e32f6fb63ba697a5/ipyrest-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49f1dbf5f3a1eafb4b62ab7ffa07f9af", "sha256": "f38d98c7e01d07b887951dd3e6b26fee9814f4e628520d5242dbea251a0116c8" }, "downloads": -1, "filename": "ipyrest-0.1.2.tar.gz", "has_sig": false, "md5_digest": "49f1dbf5f3a1eafb4b62ab7ffa07f9af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60131, "upload_time": "2018-11-26T00:16:04", "url": "https://files.pythonhosted.org/packages/3e/de/d132ba2cedad674e87f9b20f669c0d1922c831dd4f15ecf3c89079359b60/ipyrest-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ecfa6d74da29ae4ab93ff5d8955e2592", "sha256": "6e8f96a66c1e0e17ff32ae675a208a28e91f8951f8b2d07fb421cf7ca6f727c6" }, "downloads": -1, "filename": "ipyrest-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ecfa6d74da29ae4ab93ff5d8955e2592", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14774, "upload_time": "2018-11-27T18:55:38", "url": "https://files.pythonhosted.org/packages/8d/cd/8522985e6401dc5221e5a3c0918ae44e9bf03eeb68912a5327bbd14a582c/ipyrest-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "989a46984d2b67debcd55de5a8d50061", "sha256": "b8ab6611cfe9ced330ef695b54888e692aa40272958bc27a89f0046ea6d2328a" }, "downloads": -1, "filename": "ipyrest-0.1.3.tar.gz", "has_sig": false, "md5_digest": "989a46984d2b67debcd55de5a8d50061", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61288, "upload_time": "2018-11-27T18:55:41", "url": "https://files.pythonhosted.org/packages/63/21/9564388d071f319348a088f0f9aee31f5501530945f6de0a9354e4466dc2/ipyrest-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b1ec9e880d7886d2623f41c6c5718152", "sha256": "266b3785772a1d897dc76047561f24231179098a66518a9971dd5a7eb17b7b32" }, "downloads": -1, "filename": "ipyrest-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b1ec9e880d7886d2623f41c6c5718152", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15468, "upload_time": "2019-01-28T20:59:01", "url": "https://files.pythonhosted.org/packages/1c/6a/b267b818d5185dba1245a869c6b9b64113839f32a4c6dbc026609e419f9d/ipyrest-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ad1144601c64fdee3424fdd8d40c474", "sha256": "30a2e921ffc210f795e4eeb3b39c64a9a35f84d9cfa8a2fbb046f64746e772f2" }, "downloads": -1, "filename": "ipyrest-0.1.4.tar.gz", "has_sig": false, "md5_digest": "0ad1144601c64fdee3424fdd8d40c474", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75069, "upload_time": "2019-01-28T20:59:03", "url": "https://files.pythonhosted.org/packages/2b/ab/370d650ef6bca64fabb40cb2483439ec17a94dceb2e34cfd3164a65db9cf/ipyrest-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b1ec9e880d7886d2623f41c6c5718152", "sha256": "266b3785772a1d897dc76047561f24231179098a66518a9971dd5a7eb17b7b32" }, "downloads": -1, "filename": "ipyrest-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b1ec9e880d7886d2623f41c6c5718152", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15468, "upload_time": "2019-01-28T20:59:01", "url": "https://files.pythonhosted.org/packages/1c/6a/b267b818d5185dba1245a869c6b9b64113839f32a4c6dbc026609e419f9d/ipyrest-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ad1144601c64fdee3424fdd8d40c474", "sha256": "30a2e921ffc210f795e4eeb3b39c64a9a35f84d9cfa8a2fbb046f64746e772f2" }, "downloads": -1, "filename": "ipyrest-0.1.4.tar.gz", "has_sig": false, "md5_digest": "0ad1144601c64fdee3424fdd8d40c474", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75069, "upload_time": "2019-01-28T20:59:03", "url": "https://files.pythonhosted.org/packages/2b/ab/370d650ef6bca64fabb40cb2483439ec17a94dceb2e34cfd3164a65db9cf/ipyrest-0.1.4.tar.gz" } ] }