dmax – Data Management API Client
An (incomplete) alternative API client for data management systems at the Advanced Photon Source that supports both synchronous and asynchronous API calls.
Why dmax?
The aps-dm-api package is available for accessing the various APIs in python. Compared to aps-dm-api, dmax is:
Awaitable - dmax has both a block and asynchronous client that share the same logic
Explicit - parameters can be passed to a client rather than relying primarily on environmental variables.
On PyPI - aps-dm-api can only be installed from conda-forge.
While we hope that dmax is useful, it is not intended as a complete replacement for aps-dm-api. Features are added only as needed.
Installation
The following will download the package and load it into the python environment.
pip install dmax
Usage
The main interface for dmax is the dmax.Client class, or its asynchronous counterpart dmax.AsyncClient.
dmax can be used either by as a stand-alone library, where the data management API parameters are passed in explicitly, or embedded in an existing data-management environment, where the API connection parameters are defined in environmental variables.
Stand-alone
The client is given the login credentials, along with the station name and any API URIs that it needs to connect.
import dmax
client = dmax.Client(
username="spam",
password="secret",
station_name="255IDZ",
scheduling_uri: str = "https://example.com:11337",
data_storage_uri: str = "https://example.com:22237",
processing_uri: str = "https://example.com:55536",
)
proposals = client.proposals(cycle="2026-3")
experiments = client.experiments()
experiment = client.experiment(name="cabana-2026-3")
If the URI’s are omitted, the client will attempt to guess sensible defaults from the station name, for example station_name=”255IDZ” will produce URIs like https://s255idzdm.xray.aps.anl.gov:55536.
Embedded in a DM Environment
The APS data management system uses an extensive set of environmental variables to handle the API parameters. If any parameters or not provided to the client, environmental variables will be used if available:
import dmax
client = dmax.Client()
esafs = client.esafs(year=2026)
Running the Tests
uv run --dev pytest
Metadata
Release files for dmax 0.0.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dmax-0.0.10.tar.gz | 121.9 kB | Without provenance | Details for dmax-0.0.10.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dmax-0.0.10-py3-none-any.whl | Python 3 | none | any | Details for dmax-0.0.10-py3-none-any.whl |
Total release size: 137.6 kB
Release files / dmax-0.0.10.tar.gz
| Download URL | dmax-0.0.10.tar.gz |
|---|---|
| Size | 121.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09cbe98c66959e850c588ce7978e50f97c2b1b2ed0db1486ca066a7fe58c8a14
|
|
BLAKE2b-256 checksum How to use checksums |
bc6a14b6135355348864db4cd6fe6b73801fec9eac24a9c9b41b6a96113660ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Red Hat Enterprise Linux","version":"9.7","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dmax-0.0.10-py3-none-any.whl
| Download URL | dmax-0.0.10-py3-none-any.whl |
|---|---|
| Size | 15.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d81cdc126552dc5a3fbf241e2bd5363a0bb71880aaf3a6965e275cf01e7624a4
|
|
BLAKE2b-256 checksum How to use checksums |
2afc8995d86412fe488502b13d440683f7ac4b7ee2c2602f272dc2a7c24eb809
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Red Hat Enterprise Linux","version":"9.7","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for dmax 0.0.10
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.