Skip to main content

EarthScope SDK

An SDK for interacting with EarthScope's APIs

Getting Started

Installation

Install from PyPI

pip install earthscope-sdk

Or with optional dependencies:

# efficient data access (Arrow)
pip install earthscope-sdk[arrow]

# dropoff category validators (per category, or all)
pip install earthscope-sdk[miniseed]
pip install earthscope-sdk[stationxml]
pip install earthscope-sdk[dropoff]

[!NOTE] Through 1.x, MiniSEED and StationXML validation libraries are also installed with the base package. Prefer the extras above when pinning dependencies; in 2.0 they will be required for those validators.

Usage

For detailed usage info and examples, visit our SDK docs.

# Import and create a client
from earthscope_sdk import EarthScopeClient

client = EarthScopeClient()

# Example client method usage; retrieve your user profile
profile = client.user.get_profile()
print(profile)

# Client cleanup
client.close()

Async Usage

There is also an async client available

import asyncio
from earthscope_sdk import AsyncEarthScopeClient

async def main():
    client = AsyncEarthScopeClient()

    profile = await client.user.get_profile()
    print(profile)

    await client.close()

asyncio.run(main())

Context Managers

Client classes can also be used as context managers to ensure resource cleanup occurs.

# sync
with EarthScopeClient() as client:
   client.user.get_profile()

# async
async with AsyncEarthScopeClient() as client:
   await client.user.get_profile()

Bootstrapping Authentication

There are a few methods of bootstrapping authentication for the SDK.

Once refreshable credentials are available to the SDK, it will transparently handle access token refresh on your behalf.

Same host

If you have the EarthScope CLI installed on the same host that is running your application which uses earthscope-sdk, you can simply log in using the CLI. The CLI shares credentials and configuration with this SDK (when running on the same host).

Running es login will open your browser and prompt you to log in to your EarthScope account.

$ es login
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:

https://login.earthscope.org/activate?user_code=ABCD-EFGH

Successful login! Access token expires at 2024-12-27 18:50:37+00:00

Now when you run your application, earthscope-sdk will find your credentials.

Different hosts

Sometimes your workload runs on different hosts than your main workstation and you cannot feasibly "log in" on all of them. For example, maybe you're running many containers in your workload.

You can still use the EarthScope CLI to facilitate auth for applications on other machines.

  1. Use the CLI on your primary workstation as described above to log in.

  2. Use the CLI to retrieve your refresh token.

    $ es user get-refresh-token
    <your-refresh-token>
    

    Note: your refresh token should be treated as a secret credential. Anyone with a valid refresh token can use it to continually retrieve new access tokens on your behalf.

  3. Pass this refresh token to all the hosts needing auth for the earthscope-sdk. For example, inject the ES_OAUTH2__REFRESH_TOKEN environment variable on these hosts.

    export ES_OAUTH2__REFRESH_TOKEN="<your-refresh-token>"
    

SDK Settings

SDK Settings are provided via the following methods (in order of precedence):

  1. initialization arguments (e.g. via class constructors)
  2. environment variables
  3. dotenv file (.env) variables
  4. user's home directory settings files
    1. ~/.earthscope/config.toml (for configuration)
    2. ~/.earthscope/<profile-name>/tokens.json (for tokens)
  5. legacy EarthScope CLI v0 credentials
  6. default settings

SDK configuration is managed by the SdkSettings class, and calling the constructor performs this settings loading chain.

from earthscope_sdk.config.settings import SdkSettings

settings = SdkSettings()  # loads settings via loading chain

For more details on SDK configuration, including what options are available, see our settings docs.

Contributing

For details on contributing to the EarthScope SDK, please see:

Download files

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

Source Distribution

earthscope_sdk-1.8.0.tar.gz (94.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

earthscope_sdk-1.8.0-py3-none-any.whl (99.3 kB view details)

Uploaded Python 3

File details

Details for the file earthscope_sdk-1.8.0.tar.gz.

File metadata

  • Download URL: earthscope_sdk-1.8.0.tar.gz
  • Upload date:
  • Size: 94.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for earthscope_sdk-1.8.0.tar.gz
Algorithm Hash digest
SHA256 def0b4567dd4e25795ea301581cb0f0565b1416312c0d6bd36f7abccc89de53f
MD5 b92305538a53e46ece5e45cd114d847a
BLAKE2b-256 d10781d8b4b86701e55de29d8a70928dfd8fc99ea78607f54cb36dd10494f1b9

See more details on using hashes here.

File details

Details for the file earthscope_sdk-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: earthscope_sdk-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 99.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for earthscope_sdk-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a493b8ef50131f445d4e361652e797c61d23263648cf1324803cd42e8e803f4
MD5 48c46c9af455defdc6d02c970b0a99e4
BLAKE2b-256 14c78d9a71daf0878f7b61ddd9cbaa3c009fd4f7de27b0c93e086e0637235569

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.8.0 This release

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.1

2 files

1.6.0

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page