Skip to main content

Client SDK for SatelliteVu's platform APIs

Project description

SatelliteVu Platform API Client SDK

Lightweight API Client SDK for SatelliteVu's Platform APIs, providing authorization handling and convenience methods to interact wit the published APIs.

Installation

TBD

For now, need to use the repo as an git based dependency. Can use the requests or httpx optional dependency groups, as these http client implementations can be used instead of the default urllib based client.

Usage

A User API Client credential set consisting of an client id and client secret is needed and should be set in your script's environment variables.

Check out the examples provided. They can for example be run locally with

poetry run python ./examples/archive.py --example=recent

Simple Client Usage

The easiest way to get started is to use the satellitevu.Client class, which needs a client_id and client_secret only:

import os

from satellitevu import Client


client = Client(os.getenv("CLIENT_ID"), os.getenv("CLIENT_SECRET"))
print(client.archive_v1.search().json())

client.archive_v1.search supports all supported request body parameters documented in the API docs, with special handling for datetime which is constructed from the optional date_from and date_to parameters and a default result page size limit of 25.

Authentication Handling

The satellitevu.Auth class provides the main interface to retrieve an authorization token required to interact with the API endpoints.

import os

from satellitevu import Auth


auth = Auth(os.getenv("CLIENT_ID"), os.getenv("CLIENT_SECRET"))
print(auth.token())

Thus retrieved token can be used for bearer token authentication in HTTP request Authorization headers.

The Auth class by default uses a file based cache which will store the token in

  • ~/.cache/SatelliteVu on Linux
  • ~/Library/Caches/SatelliteVu on MacOS
  • C:\Documents and Settings\<username>\Local Settings\Application Data\SatelliteVu\Cache on Windows

Other cache implementations must implement the satellitevu.auth.cache.AbstractCache class.

HTTP Client Wrappers

Convenience wrapper classes for common HTTP client implementations are provided as implementations of satellitevu.http.AbstractClient, which provides an request method with an interface similar to requests.request and returning an satellitevu.http.ResponseWrapper instance, where the response object of the underlying implementation is available in the raw property.

Commonly used properties and methods are exposed on both AbstractClient and ResponseWrapper.

  • satellitevu.http.UrllibClient for Python standard lib's urllib
  • satellitevu.http.requests.RequestsSession using requests.Session class
  • satellitevu.http.httpx.HttpxClient using httpx.Client (Todo)

Implementations based on requests and httpx allow setting an instance of the underlying implementation, but will provide a default instance if not.

Developer Setup

Requirements

  • Installations of Python 3.8 and 3.10 (for example using Pyenv)
  • Global installations (for example managed with pipx) of
  • Make (optional)

Example global setup (with pyenv and pipx):

pyenv install 3.8.13
pyenv install 3.10.4
pipx install poetry
pipx install nox
pipx inject nox nox-poetry

Please bootstrap your environment with make bootstrap.

Example test setup with pyenv and pipx

Run tests against Python version used by poetry:

make test
make PYTEST_ADDOPTS="-x -s" test

or

poetry run pytest
PYTEST_ADDOPTS="-x -s" poetry run pytest

Run tests against Python 3.8 and Python 3.10:

pyenv shell 3.8.13 3.10.4
nox

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

satellitevu-0.11.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

satellitevu-0.11.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file satellitevu-0.11.0.tar.gz.

File metadata

  • Download URL: satellitevu-0.11.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.15.0-1022-azure

File hashes

Hashes for satellitevu-0.11.0.tar.gz
Algorithm Hash digest
SHA256 32fe0a53b19077675d1eba0f8ea67ad2de30befaf93cdd8a8d70d29c0a6131db
MD5 772b08083dd12b68fddc6300eef04e7c
BLAKE2b-256 4462b986d32be0b36cc19acf40654d62eb7e03a0eb2603530c69340b0dac5c64

See more details on using hashes here.

File details

Details for the file satellitevu-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: satellitevu-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.15.0-1022-azure

File hashes

Hashes for satellitevu-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d58e679e7d7983ec71185bf33e6bfa46d8d3f22e86d701d88f376a0aa176de0
MD5 0b302292038df8025905f7f9f0e10e58
BLAKE2b-256 6f0208ad9e0fda56c36752fe5922d5714f7e2bd2f4dadeefdbe1a91566ae17cc

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