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 MacOSC:\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'surllib
satellitevu.http.requests.RequestsSession
usingrequests.Session
classsatellitevu.http.httpx.HttpxClient
usinghttpx.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
- Python Poetry
- Python nox with nox-poetry plugin
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file satellitevu-0.8.0.tar.gz
.
File metadata
- Download URL: satellitevu-0.8.0.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.15.0-1020-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71b3f63361da3dc561b7f40e31af8690c5b8688b5214336186c4c45e6648096b |
|
MD5 | bc1a841cbcb44dbe5b10f6f94db1c865 |
|
BLAKE2b-256 | ce1c5fda7f093d38ab30bffd3170980df135f26dcb6cb03a6db3b829505a9a95 |
File details
Details for the file satellitevu-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: satellitevu-0.8.0-py3-none-any.whl
- Upload date:
- Size: 18.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.15.0-1020-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4162574ea10f5ad6a18c5b6075ea53205225432466fcf5c6d818b16bac32cba |
|
MD5 | af77e7ff2bcb6e24eb14cab62c6c5ff4 |
|
BLAKE2b-256 | c2271640de571404119ec3ed7a18cdb044b4d47e04fdf77fb1c6a27f81c464a8 |