Skip to main content

An emerging widget for exploring RESTful APIs in Jupyter notebooks.

Project description

Ipyrest

Binder Nbviewer Travis-CI image image image

Ipyrest 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:

banner

Features

Ipyrest 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.

At 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).

The 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.

Installation

Released versions of Ipyrest can be installed from PyPI with:

pip install ipyrest

Development versions of Ipyrest can be installed either directly from GitHub or after downloading/cloning and unpacking like this in its top-level directory:

pip install git+https://github.com/deeplook/ipyrest

pip install -e .

Testing

Run 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.

Documentation

The docs folder is only a stub for now. At the moment it is recommended to look at examples/meetup.ipynb, mostly a tutorial-like collection of examples given as a presentation at a meetup. Some of these need appropriate API keys.

How to Contribute

More to come...

History

0.1.0 (2018-11-24) ..................

  • First release on PyPI.

0.1.1 (2018-11-25) ..................

  • Minor test refactoring.
  • Minor code/text/formating changes.
  • Minor packaging cleanup.

0.1.2 (2018-11-26) ..................

  • Finally rendering README.md on PyPI(?).
  • Enable classic notebook extension for qgrid.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ipyrest-0.1.2.tar.gz (60.1 kB view details)

Uploaded Source

Built Distribution

ipyrest-0.1.2-py2.py3-none-any.whl (14.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ipyrest-0.1.2.tar.gz.

File metadata

  • Download URL: ipyrest-0.1.2.tar.gz
  • Upload date:
  • Size: 60.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.23.2 CPython/3.6.3

File hashes

Hashes for ipyrest-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f38d98c7e01d07b887951dd3e6b26fee9814f4e628520d5242dbea251a0116c8
MD5 49f1dbf5f3a1eafb4b62ab7ffa07f9af
BLAKE2b-256 3eded132ba2cedad674e87f9b20f669c0d1922c831dd4f15ecf3c89079359b60

See more details on using hashes here.

File details

Details for the file ipyrest-0.1.2-py2.py3-none-any.whl.

File metadata

  • Download URL: ipyrest-0.1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.23.2 CPython/3.6.3

File hashes

Hashes for ipyrest-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ced64f910424f8e1b8937fdf22bb579a00dbf77e6e2af096fe95d932a5af2886
MD5 0131dbe895debe18684b0085b14e143c
BLAKE2b-256 d868eee5b30803cf7f4f206c70642e1bba105f6e7cfea171e32f6fb63ba697a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page