Skip to main content

chematic

Pure-Rust cheminformatics library for Python — SMILES parsing, descriptors, fingerprints, substructure search, formats, reactions, and bounded 3D tools.

The current published line is 1.1.3. It includes molecule pickling, indexed SDF access, V3000 bond-stereo collections, and reusable Python MMFF94/UFF force fields. Compatibility and performance claims remain operation-, artifact-, and corpus-scoped; see the validation and migration guides before replacing a production RDKit workflow.

Installation

pip install chematic

Quick Start

import chematic

mol = chematic.from_smiles("CC(=O)Oc1ccccc1C(=O)O")  # aspirin

print(mol.mw)      # 180.16
print(mol.logp)    # 1.31
print(mol.tpsa)    # 63.6
print(mol.qed)     # 0.55

# New descriptors
print(mol.vabc)              # van der Waals volume (no 3D needed)
print(mol.schultz_mti)       # Schultz MTI
print(mol.gutman_mti)        # Gutman MTI*
print(mol.gravitational_index)  # gravitational index

# pKa prediction
print(mol.pka())   # {"most_acidic": 3.49, "most_basic": None}

# ADMET profile
print(mol.admet())
# {"bbb": False, "bbb_score": ..., "caco2": ..., "herg_risk": ..., "cyp3a4_risk": ...}

# Fingerprints (bytes, 2048-bit ECFP4)
fp = mol.ecfp4()

# Tanimoto similarity
mol2 = chematic.from_smiles("c1ccccc1")
sim = chematic.tanimoto(mol.ecfp4(), mol2.ecfp4())

# Mol objects can be cached or sent to worker processes with pickle. Graph
# chemistry, stereo, R-groups, source metadata, and SD properties survive.
import pickle
restored = pickle.loads(pickle.dumps(mol))

# Natural-language property summary (for LLM / MCP agents)
print(mol.describe())

# Structural diff between two molecules
ibuprofen = chematic.from_smiles("CC(C)Cc1ccc(CC(C)C(=O)O)cc1")
d = mol.diff(ibuprofen)  # {"summary": "...", "delta_mw": 66.1, "delta_logp": 2.75, ...}

# SVG / PDF / EPS depiction
svg = mol.to_svg()
pdf_bytes = mol.to_pdf()   # bytes; requires pdf feature
eps_str   = mol.to_eps()   # PostScript string

# ChemicalJSON (Avogadro 2 / MolSSI)
cjson_str = mol.to_cjson(coords=[])   # coords: list of (x,y,z) tuples, optional
mol2, coords = chematic.from_cjson(cjson_str)

# Template-based retrosynthesis (60 retro-SMIRKS templates)
mol3 = chematic.from_smiles("CC(=O)Nc1ccccc1")  # acetanilide
results = mol3.retro_disconnect(max_results=5)
for r in results:
    print(r["template"], "→", r["precursors"])
# amide_secondary → ['CC(=O)O', 'Nc1ccccc1']

# Filter by reaction class
amides = mol3.retro_disconnect(reaction_class="AmideBond")

# Bulk substructure match against a pre-parsed Mol list (returns indices)
mols = [chematic.from_smiles(s) for s in ["CCO", "c1ccccc1O", "CC(=O)O"]]
hits = chematic.bulk.substructure_match("[OH]", mols)  # → [0, 1, 2]

# All descriptors as a dict (for Pandas)
import pandas as pd
smiles = ["CCO", "c1ccccc1", "CC(=O)O"]
df = pd.DataFrame([chematic.from_smiles(s).descriptors() for s in smiles])

# Opt-in v2 embedding pipeline: torsion-knowledge-aware distance geometry +
# stereo verification/repair + policy-gated force field, with full per-stage
# evidence (never just final coordinates)
config = chematic.PipelineV2Config.safe(
    force_field="mmff94_with_uff_fallback",
    stereo_policy="repair_and_verify",
    ring_torsion_policy="fail_closed",
)
try:
    result = mol.embed_pipeline_v2(config)
    coords = result["coords"]                       # same atom order as mol
    print(result["force_field"]["actual_force_field_used"])  # fallback if MMFF94 lacked params
    print(result["final_validation"]["sound"])
except chematic.PipelineV2Error as e:
    print(e.diagnostics["stage"], e.diagnostics["cause"])   # structured, not just a message

# Reuse prepared MMFF94 terms across iterative energy/gradient calls
field = mol.mmff_force_field(coords)
energy, gradient = field.energy_gradient()
field.set_position_(0, [coords[0][0] + 0.01, *coords[0][1:]])
status, optimized_energy = field.minimize_()

Molecular GNN input

Mol.ogb_graph_features() returns the OGB categorical graph schema as NumPy int64 arrays. It works with molecules from SMILES, SDF records, and MOL2. The keys are node_feat (N, 9), edge_index (2, 2E), edge_feat (2E, 3), and num_nodes. The edges and their features have the same order, with one edge in each direction per bond. PyTorch and PyG are optional:

import chematic

for source_index, record, error in chematic.iter_sdf_checked("ligands.sdf"):
    if error is not None:
        print(f"Rejected SDF record {source_index}: {error}")
        continue
    assert record is not None
    graph = record.ogb_graph_features()
    # Attach record.name and record.properties() as labels or IDs as needed.
    # With PyTorch Geometric installed:
    # import torch
    # from torch_geometric.data import Data
    # data = Data(
    #     x=torch.from_numpy(graph["node_feat"]),
    #     edge_index=torch.from_numpy(graph["edge_index"]),
    #     edge_attr=torch.from_numpy(graph["edge_feat"]),
    #     num_nodes=graph["num_nodes"],
    # )

The default removes RDKit-removable hydrogen graph atoms, following OGB's default SMILES conversion. Pass remove_hs=False to retain the atoms already present in the molecule; this option does not add hydrogens. Unsupported chemistry raises ValueError. This export contains categorical graph features, not coordinates or SD properties. iter_sdf_checked reports a rejected record at its source index. Its default reader limits are 1 GiB and 100,000 records; pass positive max_input_bytes and max_records overrides for larger files. Use SdfRecord.ogb_graph_features() for V2000 or V3000 SDF input: it retains explicitly unknown double-bond stereo (V2000 code 3 or V3000 CFG=2). The generic Mol.ogb_graph_features() has no record-level stereo diagnostic to read. For a 3D SDF, chirality inferred by RDKit from coordinates can differ from the chirality retained in record.mol from the CTAB wedge representation.

Features

  • Zero C/C++ dependencies — pure Rust, no RDKit or OpenBabel required
  • SMILES / MOL / SDF / ChemicalJSON parsing and writing
  • Indexed SDF datasets — SdfDataset provides cheap record counts, metadata, random access, and bounded range reads without materializing every molecule
  • 190+ descriptor values (70+ functions; several return vectors): MW, LogP, TPSA, QED, Fsp3, SA Score, HBD, vabc, schultz_mti, gutman_mti, and gravitational_index. RDKit agreement is metric-specific; see the validation report.
  • 14 fingerprint algorithms: ECFP2/4/6, FCFP4/6, MACCS, AtomPair, Torsion, …
  • pKa prediction (15 SMARTS rules — unique to chematic)
  • ADMET profile: BBB, Caco-2, hERG, CYP3A4
  • Template-based retrosynthesis: mol.retro_disconnect() — 60 retro-SMIRKS templates, SA Score ranked
  • SMARTS substructure search — chematic.smarts_match() and bulk.substructure_match(smarts, mols) (pre-parsed Mol list, returns indices)
  • SVG / PDF / EPS depiction: mol.to_svg(), mol.to_pdf(), mol.to_eps()
  • ChemicalJSON: mol.to_cjson(coords=[]), chematic.from_cjson(s) — Avogadro 2 / MolSSI compatible
  • Opt-in v2 embedding pipeline: mol.embed_pipeline_v2(config) — torsion-knowledge-aware distance geometry, stereo verify/repair, and policy-gated force field (PipelineV2Config), returning full per-stage evidence (embed stats, torsion knowledge/optimization reports, stereo before/after, force-field actual policy and fallback, final geometry validation, stage timings) instead of just coordinates; raises chematic.PipelineV2Error with structured .diagnostics on failure
  • Reusable MMFF94/UFF objects: mol.mmff_force_field(coords) and mol.uff_force_field(coords) retain prepared terms across energy, gradient, coordinate-update, and in-place minimization calls
  • Charge-conserving EEM: mol.eem_charges(coords) uses the published NEEMP model and preserves the formal-charge sum for ions

RDKit compatibility

The operation/profile boundaries and measured oracle lanes are listed in the Compatibility Contract dashboard. For persisted fingerprints, saved indices, canonical identity, stereo, and browser/Worker migration decisions, read the RDKit migration guide before changing a production workflow. Native ECFP and RDKit-compatible Morgan are separate profiles; rebuild stored fingerprints and indices under the chosen profile.

chematic.rdkit_compat provides a lightweight RDKit-compatible subset for environments where RDKit is unavailable (WASM, serverless, conda-free CI):

from chematic import rdkit_compat as Chem
from chematic.rdkit_compat import Descriptors, rdMolDescriptors, DataStructs

mol = Chem.MolFromSmiles("CC(=O)Oc1ccccc1C(=O)O")

# Descriptors
Descriptors.MolWt(mol)          # 180.16
rdMolDescriptors.CalcTPSA(mol)  # 63.6

# Fingerprint (ExplicitBitVect) with bitInfo
bitInfo = {}
fp = rdMolDescriptors.GetMorganFingerprintAsBitVect(mol, 2, nBits=2048, bitInfo=bitInfo)
fp.GetNumBits()                         # 2048
bitInfo                                 # {bit: ((atom_idx, radius), ...)}
DataStructs.TanimotoSimilarity(fp, fp)  # 1.0
DataStructs.BulkTanimotoSimilarity(fp, [fp])  # [1.0]

import numpy as np
arr = DataStructs.ConvertToNumpyArray(fp)  # (2048,) int8 for sklearn / PyTorch

# Explain RDKit atom-pair / topological-torsion codes
code = mol.rdkit_atom_code(0)
chematic.explain_rdkit_atom_code(code)  # (symbol, branches, pi_electrons)
path_code = mol.rdkit_topological_torsion_path_code([0, 1, 2, 3])
chematic.explain_rdkit_topological_torsion_code(path_code)

# Atom / Bond traversal
for atom in mol.GetAtoms():
    atom.GetSymbol(), atom.GetAtomicNum(), atom.IsInRing()
for bond in mol.GetBonds():
    bond.GetBondType(), bond.GetBondTypeAsDouble(), bond.IsInRing()

# Ring information
ri = mol.GetRingInfo()
ri.NumRings()       # 1
ri.AtomRings()      # tuple of tuples of atom indices
ri.NumAtomRings(0)  # rings containing atom 0

# SDF I/O with SD properties
with Chem.SDWriter("out.sdf") as w:
    mol.SetProp("ID", "aspirin")
    w.write(mol)
for m in Chem.SDMolSupplier("out.sdf"):
    print(m.GetProp("ID"))

# Large seekable SDF: index once, parse records only when requested
from chematic import SdfDataset
dataset = SdfDataset.open("out.sdf")
print(len(dataset), dataset.metadata(0).title)
print(dataset[-1].smiles)

Unsupported options raise NotImplementedError or TypeError — they are never silently ignored.

Compatibility matrix

Area Status Notes
SMILES I/O ✅ Supported MolFromSmiles (aromaticity perceived when sanitize=True) / MolToSmiles
SDF I/O ✅ Supported SDMolSupplier / SDWriter + SD properties
Mol properties ✅ Supported GetProp(..., default=...), Set/Has/ClearProp, typed getters/setters, GetPropsAsDict
Mol / Atom / Bond ✅ Supported read-only traversal (GetAtoms/GetBonds/GetAtomWithIdx/…)
RingInfo ✅ Supported SSSR-based; NumRings/AtomRings/BondRings/NumAtomRings/NumBondRings
Substructure 🟡 Partial SMARTS via chematic; match order may differ from RDKit (use set comparison)
Descriptors ✅ Supported MW/HBA/HBD exact, TPSA ±1.0, LogP ±0.5 vs RDKit (differential-tested)
Morgan fingerprint 🟡 Partial nBits folding + bitInfo shape-/origin-consistent, not RDKit bit-identical (FNV-1a vs MurmurHash)
DataStructs ✅ Supported TanimotoSimilarity/DiceSimilarity/BulkTanimotoSimilarity/ConvertToNumpyArray
RWMol / editing ❌ Unsupported read-only layer
useFeatures, useBondTypes=False 🔊 Fails loudly raise NotImplementedError instead of silently ignoring

A live differential suite (tests/test_rdkit_diff.py, auto-skipped when RDKit is absent) compares chematic against RDKit across descriptors, ring counts, SMARTS match counts, SDF round-trips, and Morgan self-similarity, writing an explainable diff to validation/results/rdkit_diff.jsonl.

chematic.rdkit_compat is not a full RDKit clone — it is a lightweight RDKit-compatible subset for common 2D cheminformatics workflows. See the full RDKit migration guide (compatibility matrix, differential-validation results, known divergences, and runnable examples).

License

MIT OR Apache-2.0

Metadata

Release files for chematic 1.2.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 chematic 1.2.1
File Size Uploaded Provenance Actions
chematic-1.2.1.tar.gz 5.9 MB With provenance Details for chematic-1.2.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for chematic 1.2.1
File Actions
chematic-1.2.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for chematic-1.2.1-cp313-cp313-win_amd64.whl
chematic-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for chematic-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
chematic-1.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details for chematic-1.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
chematic-1.2.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for chematic-1.2.1-cp313-cp313-macosx_11_0_arm64.whl
chematic-1.2.1-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details for chematic-1.2.1-cp313-cp313-macosx_10_12_x86_64.whl
chematic-1.2.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for chematic-1.2.1-cp312-cp312-win_amd64.whl
chematic-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for chematic-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
chematic-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details for chematic-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
chematic-1.2.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for chematic-1.2.1-cp312-cp312-macosx_11_0_arm64.whl
chematic-1.2.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details for chematic-1.2.1-cp312-cp312-macosx_10_12_x86_64.whl
chematic-1.2.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for chematic-1.2.1-cp311-cp311-win_amd64.whl
chematic-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for chematic-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
chematic-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details for chematic-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
chematic-1.2.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for chematic-1.2.1-cp311-cp311-macosx_11_0_arm64.whl
chematic-1.2.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details for chematic-1.2.1-cp311-cp311-macosx_10_12_x86_64.whl
chematic-1.2.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for chematic-1.2.1-cp310-cp310-win_amd64.whl
chematic-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for chematic-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
chematic-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details for chematic-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
chematic-1.2.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for chematic-1.2.1-cp310-cp310-macosx_11_0_arm64.whl
chematic-1.2.1-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details for chematic-1.2.1-cp310-cp310-macosx_10_12_x86_64.whl
chematic-1.2.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for chematic-1.2.1-cp39-cp39-win_amd64.whl
chematic-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details for chematic-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
chematic-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details for chematic-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
chematic-1.2.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for chematic-1.2.1-cp39-cp39-macosx_11_0_arm64.whl
chematic-1.2.1-cp39-cp39-macosx_10_12_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.12+ x86-64 Details for chematic-1.2.1-cp39-cp39-macosx_10_12_x86_64.whl

Total release size: 232.8 MB

Release files / chematic-1.2.1.tar.gz

Download URL chematic-1.2.1.tar.gz
Size 5.9 MB
Tags Source
SHA-256 checksum
How to use checksums
6219b7483c9841cea806ae63db8ba114532ac1bd0fc72782640e4aa4fb9d7542
BLAKE2b-256 checksum
How to use checksums
dcec8ed2fdfd6fbc1b0d71a288114c7cd67f3205ce51a1b21b4625a9712d0b08
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp313-cp313-win_amd64.whl

Download URL chematic-1.2.1-cp313-cp313-win_amd64.whl
Size 9.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e99a81a550045c56873ffcd453eb6e968d954efff009b16abfeeea1474d6eeb5
BLAKE2b-256 checksum
How to use checksums
e0d9e1be59ba82ddfae04f7456ec9b7d7263fa58a50a47c4a54d432a0559210a
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL chematic-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.4 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c24fbd63da52a6a0c6a925ba66eb48bd4be64d36354c74440e016a0ccf3f61b7
BLAKE2b-256 checksum
How to use checksums
4350edc88c3e7dc5924e8804af0461b711591ff6435a78ab53baa81a96906cb6
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL chematic-1.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.9 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
242ad632a8aa5d1494089c30b51b85f78d38b810ff8e6b9681e1389ae5bf7c44
BLAKE2b-256 checksum
How to use checksums
d4ea8ed033a358946983ed8a1ae86010fac3c032dfa5d148ea18277d921dad53
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL chematic-1.2.1-cp313-cp313-macosx_11_0_arm64.whl
Size 8.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b6fb1f43defeb1d4f9f93b61107c3015abfbe6bf66dcf934d0a572c302f5e9e6
BLAKE2b-256 checksum
How to use checksums
0bae5b488852c939d9462485054b09f335a2ed047b18fc5bad2ec6f940bb7dd3
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp313-cp313-macosx_10_12_x86_64.whl

Download URL chematic-1.2.1-cp313-cp313-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0d09393cf21ef3eacc54ae61d865b900b2ca07a11a63e9a65995c47e8f831e27
BLAKE2b-256 checksum
How to use checksums
d6625e3a8b4d6e6add136353cbe15775f6ce248564f5604f0482ce9862192b2c
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp312-cp312-win_amd64.whl

Download URL chematic-1.2.1-cp312-cp312-win_amd64.whl
Size 9.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
7491665c64a61454a6c40ce13dea91b449682f3722a12d3cbb3c551059f7ba3e
BLAKE2b-256 checksum
How to use checksums
c5381b82d93a801917b242a1218703fb865d850970502322108c6cd269cf12be
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL chematic-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.4 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
db0792accea0f7fe2a92e73f76f9d5e4b10f9a5bf04d6c89ad5ba34549a95ff1
BLAKE2b-256 checksum
How to use checksums
ff29affd36dcbc312495cc35da5d8ff436ed1e10faaaa912c082d3a626f3a4b8
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL chematic-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.9 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2630061b6e33b12b4ed22102b65e05843320b87343ca2d2b3448c7c0d034e8a5
BLAKE2b-256 checksum
How to use checksums
70f064426c857ad30fa63bec75c384c2062f31f3f18a650e356f71460a314666
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL chematic-1.2.1-cp312-cp312-macosx_11_0_arm64.whl
Size 8.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
86a3592ba74301823826d2a3c26bc0ed2f27d1ad29e3d2ecf84b593a4f483bc0
BLAKE2b-256 checksum
How to use checksums
5bb851f4cc1c28d5341c1be18ff392c9040c879bb34611adc4bd8e1f93a1a3c5
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp312-cp312-macosx_10_12_x86_64.whl

Download URL chematic-1.2.1-cp312-cp312-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4a06f90e68a24ec18d47c8d0a2ea3628afc0440a04f6ad660b7f1912e2214410
BLAKE2b-256 checksum
How to use checksums
24217148602b751882216413ef510b13d2d5f063ce193fb7ab23061d608a1fdb
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp311-cp311-win_amd64.whl

Download URL chematic-1.2.1-cp311-cp311-win_amd64.whl
Size 9.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6b21a16fc6be76fa112135c8856052d5b54486b25e5244ada00056f4686738ae
BLAKE2b-256 checksum
How to use checksums
78173f35d0e6db43bdc94088fef0517bd0caeb46257188754b7fb2892c51887b
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL chematic-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
176bd08795adf86e79aab3a01f1055ee674745473ed75c363efef8a5038e821f
BLAKE2b-256 checksum
How to use checksums
ce58b544f068937a958d80a81362817f7067d4c7a6efd1f7a870810da0aff59a
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL chematic-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.9 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
4a096a7dbfadbe354d5a78d9dfde29863010dc8c8f8c0d5632f3e8cac561a8ae
BLAKE2b-256 checksum
How to use checksums
758f6420246f5d3977ee4735bc30a7584911fb85257d8ca9735ba52ec562dfd1
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL chematic-1.2.1-cp311-cp311-macosx_11_0_arm64.whl
Size 8.7 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d0de319cef2e9d7aa235a6d3bcaebc5ec0121d325003ee73ebe3220ccc7c02d7
BLAKE2b-256 checksum
How to use checksums
6a51c6635bdff9218594cc765ae66160eaeb1a98d81a880b42270f7dd3d5d00a
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp311-cp311-macosx_10_12_x86_64.whl

Download URL chematic-1.2.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 9.1 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f2c032644b4f56a5bff4d8b363d2fa81ef55af9971e491019e5932bbe34b980f
BLAKE2b-256 checksum
How to use checksums
3d6f805f3bd5eb649a81314634abb63c5154f5c129a4b6bcbabe2e4184432b81
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp310-cp310-win_amd64.whl

Download URL chematic-1.2.1-cp310-cp310-win_amd64.whl
Size 9.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
8ab65bf67b6b729688909d0e5fe15eed7adac80342f0276e1ecdd480bad3845d
BLAKE2b-256 checksum
How to use checksums
054277e28d4b2f8dd47c14eaeaf57359005cb406571165d8119f9a0f85805d12
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL chematic-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
785721e5dc73772c57746da9cf23d76d4d17924292ccfb3e0f84367ffaf20a0c
BLAKE2b-256 checksum
How to use checksums
2744bc013d83b8556a8635e9acb0dbadbaa963d898482b7390ed998aee2053a4
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL chematic-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.9 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
48eea79a1511cb3736d128eabdc887f38132582b0ae625489d7f07c190f9de27
BLAKE2b-256 checksum
How to use checksums
05d6497ff803ccd11fb4f76cd60bfbefa420b25230f55603ba95a046030865ba
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL chematic-1.2.1-cp310-cp310-macosx_11_0_arm64.whl
Size 8.7 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2f68d047dda1e1f818fd42f91ef56a3937e83945bba0093e5d62ab61558ffb44
BLAKE2b-256 checksum
How to use checksums
1039a088646434c85d84c9f5da3f05f360a25106ccd62521941163f3d0bd66e9
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp310-cp310-macosx_10_12_x86_64.whl

Download URL chematic-1.2.1-cp310-cp310-macosx_10_12_x86_64.whl
Size 9.1 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ed478ab2cd645f0bd2e98ecc5d3e53858e1bc87475b95bd7a8c8c73aa0e3ee03
BLAKE2b-256 checksum
How to use checksums
fe71a6b1c8597e2a4c9e24577392130c5e7422d96b5af49e28ad128d93728589
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp39-cp39-win_amd64.whl

Download URL chematic-1.2.1-cp39-cp39-win_amd64.whl
Size 9.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
345310819f49207ba29063d2619783246548b2f38554b992553527a472a9bb92
BLAKE2b-256 checksum
How to use checksums
6da89425cbb2c13415b94a41c7af55a63d0a7da790e140e1fd6036496b65d69a
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL chematic-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ba92f09e4c6d32f6e6ad893284f9da715dec87ebd347fa54c310a374d097d7dd
BLAKE2b-256 checksum
How to use checksums
a3fbad59d91a3622fba7c6993835d4e7b4006b639215a1074d4a797e24c26b2d
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL chematic-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.9 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d43b1fa71f4ebe20d1bd9a919e74b8eae3935f1d878e523dc81c51f040372797
BLAKE2b-256 checksum
How to use checksums
f4c2bdceb4be91b48ab54f4a83be733d0842dcc66f20bdfbcdfcb882c56cf61e
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL chematic-1.2.1-cp39-cp39-macosx_11_0_arm64.whl
Size 8.7 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8328fa89ecf8f8a2429832a1833ddf38a82a65b41da753425d40f8971185e178
BLAKE2b-256 checksum
How to use checksums
f29593f831d55fc12bfeed965096bfc70a740abbf26b39be99796a5fbf0e70f9
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 Oct 23, 2026.

Transparency log

Release files / chematic-1.2.1-cp39-cp39-macosx_10_12_x86_64.whl

Download URL chematic-1.2.1-cp39-cp39-macosx_10_12_x86_64.whl
Size 9.1 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9cd88ca01c024a43ae24d61dddb18e9014fd010e6166daff07702b4e3f5da376
BLAKE2b-256 checksum
How to use checksums
9be362f3711d3941fefcbb20d1301be186c31a53112598e391f51c4944b0811c
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 Oct 23, 2026.

Transparency log

Security for chematic 1.2.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 26 files in this release have been uploaded with provenance metadata.

Select from 26 files

Attestation for chematic-1.2.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 Oct 23, 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.

Release history Release notifications | RSS feed

This release

1.2.1 This release

26 release files Full provenance

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