Skip to main content

yamaa for Python yamaa logo

CI Regular build Coverage Docs License: MIT

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)

Source distribution for yamaa 0.8.0
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)

Table of built distributions (wheels) for yamaa 0.8.0
File Actions
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.

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