Skip to main content

across-client

Unit test and smoke test

The across-client is the NASA-ACROSS library used to access and manipulate the across-server data. What separates this package from the autogenerated sdk is that it also levarages the across-tools package to give users a single interface for all of their cross-observatory science needs.

Access

To access our observatory data (telescopes, instruments, schedues, etc) on the across-server, users DO NOT require any authentication. But if an observatory user-group wants to use the API to publish their planned/completed observing schedules they are required to register, and obtain client credentials through the website.

Installation

This repository can be installed on python (version >=3.10) environments.

#activate your python environment (conda, mamba, venv... etc)
git clone https://github.com/NASA-ACROSS/across-client.git
cd across-client
python -m pip install .

or the latest released version with pip

python -m pip install across-client

Usage

Below is a small example on how to utilize the client to access JWST Nircam performed observations. For more examples on how to access observatory science data or use our observatory tools endpoints, please go to our examples folder.

from datetime import datetime
from across.client import Client

# client credentials are only required for publishing schedules
ACROSS_SERVER_ID: str = "..."
ACROSS_SERVER_SECRET: str = "..."

client = Client(client_id=ACROSS_SERVER_ID, client_secret=ACROSS_SERVER_SECRET)

nircam = client.instrument.get_many(name="nircam")[0]

nircam_observations = client.observation.get_many(
   instrument_ids=[nircam.id],
   status="performed",
   date_range_begin=datetime(...),
   date_range_end=datetime(...),
)

Running the Client in Development

If you are running a development instance of the ACROSS software system, it is straightforward to point your client installation to your local ACROSS core-server instance.

  1. Follow the server installation instructions here.
  2. Copy or duplicate the .env.example file in the root directory of this repository and rename it to .env. Important: This overrides the client's host from the default production server to your local instance by setting the ACROSS_SERVER_HOST and ACROSS_SERVER_PORT variables to the local server's host and port, which by default is host: http://localhost and port: 8000.
  3. Instantiate a new Client object, see the example below, and it should now be set up to interface with your local development server!

Using this local setup, you can test submitting schedules to ACROSS. The local server provides a seeded service account with schedule write permissions. Simply instantiate the client using these credentials and you can post a schedule to your local server:

from across.client import Client


ACROSS_SERVER_ID = "961fbb3b-dd5e-45ff-a282-41033e43933d"
ACROSS_SERVER_SECRET = "prehibernationweek"

client = Client(
   client_id=ACROSS_SERVER_ID,
   client_secret=ACROSS_SERVER_SECRET,
)
created_schedule_id = client.schedule.post(...)

schedule = client.schedule.get(created_schedule_id)

print(schedule)

For ease of use, these ACROSS_SERVER_ID and ACROSS_SERVER_SECRET variables are part of the .env.example file.

Contributing

Found a bug? Want to make a feature request? Or create a pull request? Navigate to our Contributing document for more instructions!

Other Links

Open Science at NASA

Notice

NASA Docket No. GSC-19,469-1, and identified as "Astrophysics Cross-Observatory Science Support (ACROSS) System

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.“

Copyright © 2025 United States Government as represented by the Administrator of the National Aeronautics and Space Administration and The Penn State Research Foundation. All rights reserved. This software is licensed under the Apache 2.0 License.

Download files

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

Source Distribution

across_client-1.3.0.tar.gz (323.9 kB view details)

Uploaded Source

Built Distribution

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

across_client-1.3.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file across_client-1.3.0.tar.gz.

File metadata

  • Download URL: across_client-1.3.0.tar.gz
  • Upload date:
  • Size: 323.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for across_client-1.3.0.tar.gz
Algorithm Hash digest
SHA256 3fb662d154acaa1ebd78fe6719fe8aaa692605d342a5471df6719334bf0a133e
MD5 76d0e160596e62501ff4719234c48358
BLAKE2b-256 8fb8e355f725b2bb6740e583cad96f1e9eb8e5468a6bdd2546474257ca31811d

See more details on using hashes here.

Provenance

The following attestation bundles were made for across_client-1.3.0.tar.gz:

Publisher: publish-to-pypi.yml on NASA-ACROSS/across-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file across_client-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: across_client-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for across_client-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5dc294a249b0907166eadbdc398fc0842d012ce577a1c6ffd0a2f46dccc4ca4a
MD5 3f33ba7181773a900131647d2b093bcd
BLAKE2b-256 719cac0e06b8b4aa5403c1d9fa2dfb60e16ba681677c408be21151a1096d9d0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for across_client-1.3.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on NASA-ACROSS/across-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 files

1.2.0

2 files

1.1.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page