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.

Version 0.0.5 is the next alpha release, not yet published. The production SAS7BDAT writer's Windows SAS 9.4 validation is recorded in the repository release notes; stable 1.0.0 compatibility is not yet declared.

Install

PyPI currently provides 0.0.4; the command below applies after 0.0.5 is published. Before publication, install the wheel built from this checkout for local validation.

python -m pip install nbase-converter==0.0.5

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.5

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.5
File Size Uploaded
nbase_converter-0.0.5.tar.gz 366.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for nbase-converter 0.0.5
File Interpreter ABI Platform
nbase_converter-0.0.5-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
nbase_converter-0.0.5-cp311-abi3-manylinux_2_34_x86_64.whl CPython 3.11 abi3 Linux glibc 2.34+ x86-64 Details
nbase_converter-0.0.5-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.5.tar.gz

Download URL nbase_converter-0.0.5.tar.gz
Size 366.9 kB
Tags Source
SHA-256 checksum
How to use checksums
66e0e4ed94a302684b684f3f39781c3f9020ea47b237fb8725cd36a145d0c937
BLAKE2b-256 checksum
How to use checksums
5d80ae3aec1280f5c59d3d3921ccd4fcdff64fbb78bd9216586bc65a3c45145f
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.5-cp311-abi3-win_amd64.whl

Download URL nbase_converter-0.0.5-cp311-abi3-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
e3ef55779fd7a10e942b99df30250d13b43ef57307dbc9c7e9aaedbdfa02afaf
BLAKE2b-256 checksum
How to use checksums
d105cd068c8f9499b63332d03fc2bc05f3f1d812ad9239f943bfba71ed27c5ce
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.5-cp311-abi3-manylinux_2_34_x86_64.whl

Download URL nbase_converter-0.0.5-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
372caf72e59c102db8b326788a6f9e564fbb8e3fdb0ddea77c320cd097d00a60
BLAKE2b-256 checksum
How to use checksums
86ea987e947fed47a15d763ba86be3f10b37d659e32d16e854b278766713557e
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.5-cp311-abi3-macosx_10_12_x86_64.whl

Download URL nbase_converter-0.0.5-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
d951827aea415fae12b25d53f777ee7327e38d581ec7ad9d10dd4a20c17be77f
BLAKE2b-256 checksum
How to use checksums
de56f6a1cc3cd0de479bb2a7001067ccf1cfee2a3ba807aaec544c21e7cdf8b3
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

This release

0.0.5 This release

4 release files

0.0.4

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