Skip to main content

SciNumTools3 for Python

PyPI version Python License: MIT

Unit-safe quantities, runtime expressions, and validated scientific parameters for Python.

SciNumTools3 helps eliminate hidden assumptions in scientific software by providing:

  • ✅ Physical quantities with units
  • ✅ Automatic unit conversion
  • ✅ Runtime expression evaluation
  • ✅ Validated input parameters
  • ✅ Structured scientific configuration files
  • ✅ Consistent parameter handling across simulation and analysis workflows

Relationship to the C++ Core

scinumtools3 is the official Python binding for the SciNumTools3 C++ project.

The Python package exposes the same core concepts used by the C++ implementation, including:

  • Physical Units & Quantities (PUQ)
  • Dimensional Input Parameters (DIP)
  • Runtime expression evaluation
  • Unit-aware validation and conversion

This enables consistent parameter definitions and unit handling across Python analysis workflows and C++ simulation codebases.

C++ Project

The underlying C++ implementation is available on GitHub:

https://github.com/vrtulka23/scinumtools3

The C++ project serves as the reference implementation and provides high-performance support for scientific computing, numerical simulations, and HPC workflows.


Installation

Install directly from PyPI:

pip install scinumtools3

PyPI package:

https://pypi.org/project/scinumtools3/


Why SciNumTools3?

Scientific workflows frequently suffer from:

  • inconsistent unit handling
  • manual conversion mistakes
  • duplicated parameter definitions
  • missing validation
  • configuration drift between simulation and analysis code

SciNumTools3 provides a unified framework for defining, validating, and evaluating scientific parameters while preserving physical units throughout calculations.


Core Features

Physical Quantities

Create quantities with physical units and perform automatic conversions:

from scinumtools3.puq import Quantity

length = Quantity("1*m")
length = length.convert("km")

print(length)
# 1e-3*km

Unit-Aware Arithmetic

from scinumtools3.puq import Quantity

distance = Quantity("1000*m")
time = Quantity("100*s")

velocity = distance / time

print(velocity)
# 10*m*s-1

Validated Parameters (DIP)

Define scientific parameters with units, constraints, and dependencies.

from scinumtools3.dip import DIP

dip = DIP()

dip.add_string("temperature float = 300 K")
dip.add_string("pressure float = 1 atm")

env = dip.parse()

Example parameter specification:

simulation

  timestep float = 0.5 fs
    !condition ({?} > 0.0 fs)

  temperature float = 300 K
    !condition ({?} > 0 K)

  pressure float = 1 atm

  steps int = 1000000
    !condition ({?} > 1)

  duration float = ( {?simulation.timestep} * {?simulation.steps} )

  ensemble string = "NPT"
    !options ["NVE", "NVT", "NPT"]

Domain-Specific Languages

SciNumTools3 is built around two scientific DSLs.

PUEL — Physical Units Expression Language

A concise language for representing physical quantities, units, dimensions, uncertainties, and arrays.

Examples:

ESU_erg
m2*kg*s-2
kg2*ms3:2*cm
1.346591(30)e27*kg
[2,3,4,5]*km

PUEL powers:

  • quantity parsing
  • dimensional analysis
  • unit conversions
  • unit-aware calculations

DIPL — Dimensional Input Parameter Language

A declarative language for defining scientific parameters with:

  • types
  • units
  • constraints
  • dependencies
  • validation rules

This allows scientific applications to maintain a single source of truth for configuration and input validation.


Quick Example

from scinumtools3.puq import Quantity
from scinumtools3.dip import DIP

# Unit conversion
length = Quantity("1*m")
length = length.convert("km")

print(length)
# 1e-3*km

# Validated parameters
dip = DIP()

dip.add_string("foo int m")
dip.add_string("foo = 3 km")

env = dip.parse()

print(env.nodes[0])
# 3000 m

Documentation

Full documentation, API reference, language specifications, and examples:

https://vrtulka23.github.io/scinumtools3/

Documentation includes:

  • Python API reference
  • PUEL specification
  • DIPL specification
  • Tutorials and examples

Typical Use Cases

  • Scientific computing
  • Physics simulations
  • Engineering applications
  • Data analysis pipelines
  • Research software
  • Hybrid Python/C++ workflows
  • Unit-safe parameter management

Contributing

Contributions are welcome.

git clone https://github.com/vrtulka23/scinumtools3.git
cd scinumtools3

Please open an issue or pull request for bug fixes, improvements, or new features.


License

SciNumTools3 is released under the MIT License.

See the LICENSE file for details.


Links

Metadata

Release files for scinumtools3 0.6.3

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

Source distribution (sdist)

Source distribution for scinumtools3 0.6.3
File Size Uploaded
scinumtools3-0.6.3.tar.gz 293.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for scinumtools3 0.6.3
File
scinumtools3-0.6.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
scinumtools3-0.6.3-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
scinumtools3-0.6.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
scinumtools3-0.6.3-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
scinumtools3-0.6.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
scinumtools3-0.6.3-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
scinumtools3-0.6.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
scinumtools3-0.6.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
scinumtools3-0.6.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
scinumtools3-0.6.3-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
scinumtools3-0.6.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
scinumtools3-0.6.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 180.4 MB

Release files / scinumtools3-0.6.3.tar.gz

Download URL scinumtools3-0.6.3.tar.gz
Size 293.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b837677044016a7c2acf06b2a87dff1fc2179e22f62d1d2bc9977b8075bbd726
BLAKE2b-256 checksum
How to use checksums
1a3d26f681a6415f365bda29e2d4db1edfd2339e686774076800fd1bc80a21fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp313-cp313-win_amd64.whl

Download URL scinumtools3-0.6.3-cp313-cp313-win_amd64.whl
Size 25.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4051797fe594b2dd146461f09bd04593723ba674a81b586e5176eb5f362b2f35
BLAKE2b-256 checksum
How to use checksums
05f2f535f06240aa3d68bc6b9772e977f6cfe903669b20a731152493fb376a7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL scinumtools3-0.6.3-cp313-cp313-musllinux_1_2_x86_64.whl
Size 13.5 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
568350664a5ee0d61fedc85be64bdabf9d8b9d266abd83b5d41f0384c19b686b
BLAKE2b-256 checksum
How to use checksums
c487ba856f0dd412c79704b5c70c28541fed105b2bd58c4ebaf3b8a964cfd5c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL scinumtools3-0.6.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 12.3 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
81f2ed889b67e32cefc121dc523f3b7a99a1d5460d1caea9fe7028e1b0638ea3
BLAKE2b-256 checksum
How to use checksums
3c4d13f1b3d39d2ecd7728a7e2c138942b2c035104f04e4bf174f60d6f92ebfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL scinumtools3-0.6.3-cp313-cp313-macosx_11_0_arm64.whl
Size 8.9 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
20099853671cfa2efe115da38bb135754e088bb6d7dedd6c4843ba6c33f889dd
BLAKE2b-256 checksum
How to use checksums
566c52a06e1e6c8cfa66d84b0c0f23e4bd9b6146d49886aa627ce0229570c54a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp312-cp312-win_amd64.whl

Download URL scinumtools3-0.6.3-cp312-cp312-win_amd64.whl
Size 25.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2a9fd184d9cd64521a19b77d5e01355c4a5240fdfa238464edad572bbb678922
BLAKE2b-256 checksum
How to use checksums
4defc76476787b86304b546c65279e4e07b7f4d1d567e17bee9a411891125f7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL scinumtools3-0.6.3-cp312-cp312-musllinux_1_2_x86_64.whl
Size 13.5 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
bf2aa4b8761a5a19613c6b67f000dded16410f5b5ad9dde353f831ccef14b5e9
BLAKE2b-256 checksum
How to use checksums
86a33401aed07a13b1c1d311c2e0510d7bff6d0bb25196d36d48feec0501037a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL scinumtools3-0.6.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 12.3 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dd9b3b33b272473f573bbbd7003e60499486ddf03db65a987ff9adc10f0686c0
BLAKE2b-256 checksum
How to use checksums
07bd944606b72fe6a14032a7c9cb5e2498fc9a5eb6230837e98553aca076d1f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL scinumtools3-0.6.3-cp312-cp312-macosx_11_0_arm64.whl
Size 8.9 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b5791e7d3f21f0eae30826c9be98e6fd6fbe3d9e8a3aea87681135a2a04d52d4
BLAKE2b-256 checksum
How to use checksums
e479d8dd6e4d991d10cd993c572a1e6b2f0a220f2858793699f22ca7226e3bc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp311-cp311-win_amd64.whl

Download URL scinumtools3-0.6.3-cp311-cp311-win_amd64.whl
Size 25.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c2a3a61da12aff2a95aa246d24f4dae0947cb7a5da7b8152aabf44966760ad74
BLAKE2b-256 checksum
How to use checksums
adf1ddd7ca0a5539b8dfec7c591789fa889a51efa3f212db0fed355845190956
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL scinumtools3-0.6.3-cp311-cp311-musllinux_1_2_x86_64.whl
Size 13.5 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a51a43f1c0c8a44c2da08aa9b0339d89caa5640646ac376cc3e2fe9cbb8cb83a
BLAKE2b-256 checksum
How to use checksums
84f33d57ffe29863860e06bf00985f12e7d7f2ec823edc5472e2b371c4c5888e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL scinumtools3-0.6.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 12.2 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6c52d0762365dbc41dca2059a759891ca2cff8cf1e8614c92aa9ddda3ee5cd18
BLAKE2b-256 checksum
How to use checksums
b883f4fa968506905cbfe7bb423b6353750fc5a171526d3f433769a65b7eef99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / scinumtools3-0.6.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL scinumtools3-0.6.3-cp311-cp311-macosx_11_0_arm64.whl
Size 8.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0e38d15cbf71808eae8711c9f38821da2a965abdf03dcf924f3349e4499a811e
BLAKE2b-256 checksum
How to use checksums
e33f4b4a309161825629ed1c033c413aeb792b4069cb135c02471a422e0c4b36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log
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