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.7.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.7.0
File Size Uploaded Provenance Actions
yamaa-0.7.0.tar.gz 18.2 MB Without provenance Details for yamaa-0.7.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for yamaa 0.7.0
File Actions
yamaa-0.7.0-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details for yamaa-0.7.0-cp312-abi3-win_amd64.whl
yamaa-0.7.0-cp312-abi3-manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64 Details for yamaa-0.7.0-cp312-abi3-manylinux_2_28_x86_64.whl
yamaa-0.7.0-cp312-abi3-manylinux_2_28_aarch64.whl CPython 3.12 abi3 Linux glibc 2.28+ ARM64 Details for yamaa-0.7.0-cp312-abi3-manylinux_2_28_aarch64.whl
yamaa-0.7.0-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details for yamaa-0.7.0-cp312-abi3-macosx_11_0_arm64.whl

Total release size: 42.1 MB

Release files / yamaa-0.7.0.tar.gz

Download URL yamaa-0.7.0.tar.gz
Size 18.2 MB
Tags Source
SHA-256 checksum
How to use checksums
1157993472ae64f968911602df363d46c81a753fffdd9e7ba1fcbe15933fdaa8
BLAKE2b-256 checksum
How to use checksums
e357db93d8ed99366d01b03fb73a3c6f58a505f238caf8433d87c157208e4982
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.7.0-cp312-abi3-win_amd64.whl

Download URL yamaa-0.7.0-cp312-abi3-win_amd64.whl
Size 6.3 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
7bde55cfdff72cf3d4687af5c5d34bdb00a050aca68bc4a091c3d8e7ddb4a4ce
BLAKE2b-256 checksum
How to use checksums
76dd3b8c55da89a55b705abe44c0feb586af067ea471f77e80d54e2e90cf43c7
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.7.0-cp312-abi3-manylinux_2_28_x86_64.whl

Download URL yamaa-0.7.0-cp312-abi3-manylinux_2_28_x86_64.whl
Size 6.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
39bfd94c81930fb9ceb8632084fea2006ec0f886fa7d232053c40b7fb9f2e341
BLAKE2b-256 checksum
How to use checksums
db71c6c454c547eef353a1c2b5009869cd92b3c2aeee2dfb1f24f0e421d917d7
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.7.0-cp312-abi3-manylinux_2_28_aarch64.whl

Download URL yamaa-0.7.0-cp312-abi3-manylinux_2_28_aarch64.whl
Size 5.7 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
0108b48f2ccb61f45922a7cdc2e00bd8161c438edcfd46716806fefe75505297
BLAKE2b-256 checksum
How to use checksums
ef3ae7ef29cd8542a32c66a71be2c2093d73c638b2141a8d08dc6e1bc57c9d5a
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.7.0-cp312-abi3-macosx_11_0_arm64.whl

Download URL yamaa-0.7.0-cp312-abi3-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1484a45f28759f468230f9b84de61239f8d87ec4aa9de81ab70a34dd6e85bdbc
BLAKE2b-256 checksum
How to use checksums
b2e548b2b4b9ef26125883f61c56a0d369708ff8eab415be2530f9cb426aeadb
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.7.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