yamaa for Python 
Python package for yamaa, a domain-specific language for clinical trial data standardization.
Runs yamaa specifications that transform ODM XML data into SDTM and ADaM datasets, and generates define.xml, with the same Rust engine as the R package:
import yamaa
project = yamaa.project("project.yaml")
run = project.spec("DM").run() # one dataset, built in memory
run.output, run.issues, run.report
run.status # "succeeded" or "failed"
dm = run.output.to_polars() # or to_pandas(), to_arrow(), to_pylist()
paths = run.save() # write the dataset and its run report
project.run("adam").save() # every ADaM dataset
Every table is a yamaa.Table, which needs no other package: it prints a
preview, num_rows and column_names describe it, and to_pylist() gives
its rows. to_polars(), to_pandas() and to_arrow() convert it when
Polars, pandas or PyArrow is installed. save() returns the absolute paths of
the files it wrote, in the order it wrote them.
The R, Python and command-line API page describes every call, and the introduction explains the specification language.
Installation
From 0.5.0 on, yamaa is published on PyPI. Install the newest release with:
python -m pip install yamaa
A release candidate is a pre-release there, which pip installs only when
asked, so name it with --pre, as in
python -m pip install --pre yamaa==<candidate>.
The wheels cover CPython 3.12 and later on Linux x86_64 and aarch64, macOS
arm64 and Windows x64. The Linux wheels are manylinux_2_28 and need glibc
2.28 or later, for example RHEL 8, Ubuntu 20.04 or Debian 10; elsewhere, pip
builds the source archive, as described below.
Every release is also published as assets of its GitHub release: from 0.5.0 on the same files that PyPI serves, and yamaa 0.4.0 only there. Download the wheel for your platform, then install it:
python -m pip install ./yamaa-<version>-<wheel-tags>.whl
The 0.4.0 Linux wheel is manylinux_2_34 and needs glibc 2.34 or later.
Or install the standalone source archive from the same release. Building it uses your default Rust toolchain, which must be Rust 1.90 or later for 0.4.0, and Rust 1.82 or later from 0.5.0 on, with Cargo, a C compiler and GNU make:
python -m pip install ./yamaa-<version>.tar.gz
From 0.6.0 on, the source archive carries the locked
Rust crates, so the build reads nothing from crates.io; pip's build isolation
still fetches maturin.
To build offline, install maturin 1.9.6 and pass --no-build-isolation. The
0.4.0 and 0.5.0 source archives download the locked crates from crates.io, so
building them offline also needs the Cargo cache filled first.
On a machine without internet access, install from an internal package index or from files carried in, as Installing in a restricted environment describes. It also shows how a Linux machine whose packaged Rust is older than 1.82 installs Rust from its standalone installer to build the source archive.
To set up the development version from GitHub, install uv, the pinned Rust toolchain and a C compiler, then run:
git clone https://github.com/elong0527/yamaa.git
cd yamaa
make setup
The package has no runtime dependencies. The test extra adds Polars,
pandas, PyArrow, the Python YAML readers, lxml and Pydantic for the table
conversions' tests and independent artifact and conformance checks.
make setup installs it.
The release notes list the supported Python versions and platforms.
Contributing
We welcome contributions to yamaa. Please read the contributing guide to get started.
License
This project is licensed under the terms of the MIT license. The package also
bundles third-party components, whose license notices ship as its
LICENSE-*.txt files.
Metadata
Release files for yamaa 0.8.0
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 |
|---|---|---|---|---|
| yamaa-0.8.0.tar.gz | 18.2 MB | Without provenance | Details for yamaa-0.8.0.tar.gz |
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| yamaa-0.8.0-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details for yamaa-0.8.0-cp312-abi3-win_amd64.whl |
| yamaa-0.8.0-cp312-abi3-manylinux_2_28_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ x86-64 | Details for yamaa-0.8.0-cp312-abi3-manylinux_2_28_x86_64.whl |
| yamaa-0.8.0-cp312-abi3-manylinux_2_28_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ ARM64 | Details for yamaa-0.8.0-cp312-abi3-manylinux_2_28_aarch64.whl |
| yamaa-0.8.0-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details for yamaa-0.8.0-cp312-abi3-macosx_11_0_arm64.whl |
Total release size: 44.6 MB
Release files / yamaa-0.8.0.tar.gz
| Download URL | yamaa-0.8.0.tar.gz |
|---|---|
| Size | 18.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
325b9099cce1aaad899a6e4fe83a4914b34239cb5f638a438fc67433757afb23
|
|
BLAKE2b-256 checksum How to use checksums |
d9694a6ec6439d1bab6440b20c09a96a2d8c824955fcd01ba027fcc812438f5d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / yamaa-0.8.0-cp312-abi3-win_amd64.whl
| Download URL | yamaa-0.8.0-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
81ef42b6f648b9d3ffccbb8ed335bdf915cfce159674896f83c9b6153db606ce
|
|
BLAKE2b-256 checksum How to use checksums |
b9884194c84928a582dc447e93bdce33f0a9f49463c4d734dada98c9ce6312cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / yamaa-0.8.0-cp312-abi3-manylinux_2_28_x86_64.whl
| Download URL | yamaa-0.8.0-cp312-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.0 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b210e06026908bf0a0375359d47d664154a0c1dc6bd10fc14142a8122846cb9f
|
|
BLAKE2b-256 checksum How to use checksums |
a4bf9a74106b10692dafa92c1974a7dda447f8018ca7d20015c219c6f8b1bbd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / yamaa-0.8.0-cp312-abi3-manylinux_2_28_aarch64.whl
| Download URL | yamaa-0.8.0-cp312-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 6.4 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
73ddb347eb319d1d3075987445e5ee17ee43e7edddec3728a09b6cce8c1004ff
|
|
BLAKE2b-256 checksum How to use checksums |
b3ea88418f31c5093f720a1295f010e279d68a1ea0404bee23acf3b88da639d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / yamaa-0.8.0-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | yamaa-0.8.0-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.2 MB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
66369a04b444314cdeb14edc525269c6f574ea44efa66bbd22dfd1433942e1e5
|
|
BLAKE2b-256 checksum How to use checksums |
30e410cee13ac586d57d0bf8894754ea9858c9cfeebb903845f1a2987d8d04fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Security for yamaa 0.8.0
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.