Skip to main content

nbase-converter

nbase-converter is a native Rust/Arrow Python package for reading, writing, and converting SAS7BDAT, SAS XPORT v5/v8, and Parquet datasets.

This is an alpha release. Final Windows SAS 9.4 validation of the production SAS7BDAT writer remains required before stable 1.0.0 compatibility is declared.

Install

python -m pip install nbase-converter==0.0.4

Python 3.11 through 3.14 is supported on 64-bit Linux, macOS, and Windows.

Example

from nbase_converter import convert_dataset, filter_field, read_dataset, write_dataset

result = read_dataset(
    "input.xpt",
    columns=["USUBJID", "AGE"],
    filter=filter_field("AGE") >= 18,
    output="pandas",
)

write_dataset(
    result.data,
    "output.parquet",
    target_format="parquet",
    overwrite=True,
)

convert_dataset(
    "source.parquet",
    "submission.xpt",
    target_format="xpt8",
    metadata={
        "dataset_label": "Adverse Events",
        "columns": {
            "ASTDT": {
                "label": "Analysis Start Date",
                "sas": {"format": "IS8601DA", "length": 8},
            }
        },
    },
)

The public dataset operations are:

  • read_dataset: materialized, streaming, or metadata-only reads with projection, row bounds, encoding selection, and structured filters.
  • write_dataset: Arrow-compatible writes to Parquet, XPT v5/v8, or SAS7BDAT.
  • convert_dataset: bounded-memory full-file conversion with optional supplemental metadata.

For writes and conversions, explicit metadata overrides recognized input metadata while omitted attributes remain preserved. Supported supplemental attributes are the dataset label and each column's label, SAS format, informat, and storage length. For string attributes, "" explicitly clears an inherited value; whitespace-only labels remain literal labels.

Structured filters are created with filter_field, combined with filter_all, filter_any, or filter_not, and evaluated by these leaf helpers:

  • comparisons: filter_equal, filter_not_equal, filter_less_than, filter_less_than_or_equal, filter_greater_than, and filter_greater_than_or_equal;
  • collections and text: filter_in, filter_between, filter_contains, filter_starts_with, and filter_ends_with;
  • missing values: filter_is_missing, filter_is_not_missing, filter_is_null, and filter_is_not_null.

Python comparison operators are also available on filter_field(...). Public result and metadata contracts ship as TypedDict definitions, and the wheel is marked as a typed package.

The default cross-format type policy accepts Float64 and UTF-8 text. Non-null IEEE NaNs are written as standard SAS numeric missing values and reported as coercions. Local filesystem paths are the only supported storage interface in this release.

Source, issues, release notes, and the full contract are available from the Bitbucket repository.

Metadata

Release files for nbase-converter 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nbase-converter 0.0.4
File Size Uploaded
nbase_converter-0.0.4.tar.gz 363.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for nbase-converter 0.0.4
File Interpreter ABI Platform
nbase_converter-0.0.4-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
nbase_converter-0.0.4-cp311-abi3-manylinux_2_34_x86_64.whl CPython 3.11 abi3 Linux glibc 2.34+ x86-64 Details
nbase_converter-0.0.4-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details

Total release size: 10.3 MB

Release files / nbase_converter-0.0.4.tar.gz

Download URL nbase_converter-0.0.4.tar.gz
Size 363.5 kB
Tags Source
SHA-256 checksum
How to use checksums
71dd5d1731bfa272c4e61add0c9b6a9609d60c9b449e0937a3ea6924a9d0647f
BLAKE2b-256 checksum
How to use checksums
6e299f35ffba115d8b4a11be95b830e75d313c475d7c404eb50b59d07f939435
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nbase_converter-0.0.4-cp311-abi3-win_amd64.whl

Download URL nbase_converter-0.0.4-cp311-abi3-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
8e9d24d097b28b94aaf91072dbd0bfc0c3cda0477f04ea2745fb73e129acc45e
BLAKE2b-256 checksum
How to use checksums
571028331069783ac64b0da753937da788417ea3276b1eab020e20c71bc2f9c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nbase_converter-0.0.4-cp311-abi3-manylinux_2_34_x86_64.whl

Download URL nbase_converter-0.0.4-cp311-abi3-manylinux_2_34_x86_64.whl
Size 3.5 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
7798cec1f762a468342c936153f14fd21ebc3b811cc4762ac81b11a8041b18a3
BLAKE2b-256 checksum
How to use checksums
6cd16a12a7b6f3b7707857c3801f895868c488467f7cab2b2408d8f366651d1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nbase_converter-0.0.4-cp311-abi3-macosx_10_12_x86_64.whl

Download URL nbase_converter-0.0.4-cp311-abi3-macosx_10_12_x86_64.whl
Size 3.2 MB
Tags CPython 3.11 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5d049bfa44e24d2d3585eb1eca3fd7fe591d5641604b4f8d616463e2a70f1cdb
BLAKE2b-256 checksum
How to use checksums
b9dec49d90d4707720f1ea056222651e973d30414f62ecf8971206ecba634e20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.0.6

4 release files

0.0.5

4 release files

This release

0.0.4 This release

4 release files

0.0.3

4 release files

0.0.2

4 release files

0.0.1

4 release files

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