Skip to main content

py-janaf: Python wrapper for NIST-JANAF Thermochemical Tables

pypi version Python Versions

Features

  • Search compounds
  • Parse a table as polars.DataFrame
  • Fix some data
    • Fix missing sign
    • Fix missing tab
    • Ignore comment-like lines

Known issues

  • Some tables have inconsistencies #13
  • A few rows break thermodynamic identities #71

Usage

pip install janaf
>>> import polars as pl
>>> import janaf
>>> table = janaf.search(formula="CO2$")
>>> table.name
'Carbon Dioxide (CO2)'
>>> table.formula
'C1O2(g)'
>>> table.df
shape: (62, 9)
┌────────┬────────┬─────────┬──────────────┬───┬───────────┬───────────┬─────────┬──────┐
│ T(K)   ┆ Cp     ┆ S       ┆ -[G-H(Tr)]/T ┆ … ┆ delta-f H ┆ delta-f G ┆ log Kf  ┆ Note │
│ ---    ┆ ---    ┆ ---     ┆ ---          ┆   ┆ ---       ┆ ---       ┆ ---     ┆ ---  │
│ f64    ┆ f64    ┆ f64     ┆ f64          ┆   ┆ f64       ┆ f64       ┆ f64     ┆ str  │
╞════════╪════════╪═════════╪══════════════╪═══╪═══════════╪═══════════╪═════════╪══════╡
│ 0.0    ┆ 0.0    ┆ 0.0     ┆ inf          ┆ … ┆ -393.151  ┆ -393.151  ┆ inf     ┆ null │
│ 100.0  ┆ 29.208 ┆ 179.009 ┆ 243.568      ┆ … ┆ -393.208  ┆ -393.683  ┆ 205.639 ┆ null │
│ 200.0  ┆ 32.359 ┆ 199.975 ┆ 217.046      ┆ … ┆ -393.404  ┆ -394.085  ┆ 102.924 ┆ null │
│ 298.15 ┆ 37.129 ┆ 213.795 ┆ 213.795      ┆ … ┆ -393.522  ┆ -394.389  ┆ 69.095  ┆ null │
│ 300.0  ┆ 37.221 ┆ 214.025 ┆ 213.795      ┆ … ┆ -393.523  ┆ -394.394  ┆ 68.67   ┆ null │
│ …      ┆ …      ┆ …       ┆ …            ┆ … ┆ …         ┆ …         ┆ …       ┆ …    │
│ 5600.0 ┆ 64.588 ┆ 373.709 ┆ 316.947      ┆ … ┆ -416.794  ┆ -386.439  ┆ 3.605   ┆ null │
│ 5700.0 ┆ 64.68  ┆ 374.853 ┆ 317.953      ┆ … ┆ -417.658  ┆ -385.89   ┆ 3.536   ┆ null │
│ 5800.0 ┆ 64.772 ┆ 375.979 ┆ 318.944      ┆ … ┆ -418.541  ┆ -385.324  ┆ 3.47    ┆ null │
│ 5900.0 ┆ 64.865 ┆ 377.087 ┆ 319.92       ┆ … ┆ -419.445  ┆ -384.745  ┆ 3.406   ┆ null │
│ 6000.0 ┆ 64.957 ┆ 378.178 ┆ 320.882      ┆ … ┆ -420.372  ┆ -384.148  ┆ 3.344   ┆ null │
└────────┴────────┴─────────┴──────────────┴───┴───────────┴───────────┴─────────┴──────┘
>>> table.df.filter(pl.col("T(K)").is_close(298.15)).item(0, "delta-f H")  # kJ/mol
-393.522

Credit

Following files are distributed in NIST-JANAF Tables:

NIST-JANAF Tables - Credits

NIST Standard Reference Database 13

NIST JANAF THERMOCHEMICAL TABLES 1985
Version 1.0

Data compiled and evaluated by
M.W. Chase, Jr., C.A. Davies, J.R. Downey, Jr.
D.J. Frurip, R.A. McDonald, and A.N. Syverud

Distributed by
Standard Reference Data Program
National Institute of Standards and Technology
Gaithersburg, MD 20899

Copyright 1986 by
the U.S. Department of Commerce
on behalf of the United States. All rights reserved.

DISCLAIMER: NIST uses its best efforts to deliver a high quality copy of
the Database and to verify that the data contained therein have been
selected on the basis of sound scientific judgement. However, NIST makes
no warranties to that effect, and NIST shall not be liable for any damage
that may result from errors or omissions in the Database.

Metadata

Release files for janaf 1.4.1

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

Source distribution (sdist)

Source distribution for janaf 1.4.1
File Size Uploaded Provenance Actions
janaf-1.4.1.tar.gz 2.1 MB With provenance Details for janaf-1.4.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for janaf 1.4.1
File Interpreter ABI Platform Actions
janaf-1.4.1-py3-none-any.whl Python 3 none any Details for janaf-1.4.1-py3-none-any.whl

Total release size: 4.9 MB

Release files / janaf-1.4.1.tar.gz

Download URL janaf-1.4.1.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
687a8351d8da8327de87bf5a8865be645263e9683f4bc593a1a63e35236f283a
BLAKE2b-256 checksum
How to use checksums
c2872506a72461226f9732f3d34159697b99c38bb89204a922be64edebb70937
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 6, 2026.

Transparency log

Release files / janaf-1.4.1-py3-none-any.whl

Download URL janaf-1.4.1-py3-none-any.whl
Size 2.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
bf36b494889a893eab7b6849010b6537587bf6d7a19caa05d05b969808f06877
BLAKE2b-256 checksum
How to use checksums
b6df79af7108e32f5246b1740286e3d45c826f870af09616c7fd091742dfadd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 6, 2026.

Transparency log

Security for janaf 1.4.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for janaf-1.4.1.tar.gz

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 Nov 6, 2026.

Transparency log

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