Skip to main content

MDescriptor

MDescriptor is a Python library for computing atomic descriptors over batches of isolated and fully periodic structures. It combines one input/result contract with C++17/OpenMP kernels, an optional CUDA backend, and explicit metadata for applications that need to discover and configure descriptors.

MDescriptor 是面向孤立结构和完整周期结构批量计算原子描述符的 Python 库。 它提供统一的输入/结果契约、C++17/OpenMP 数值核心、可选 CUDA 后端,以及适合 应用程序发现和配置描述符的显式元数据。

Highlights / 特性

  • 28 built-in descriptors covering local, matrix, many-body, rotational, and model-backed families.
  • One validated StructureBatch input and one DescriptorResult output contract for every descriptor.
  • Atom-, structure-, and pair-level results with stable samples, labels, metadata, and feature counts.
  • Dense NumPy output by default, with optional read-only SciPy CSR output.
  • C++17/OpenMP CPU kernels; published Linux and Windows wheels also include the CUDA backend in the same distribution.
  • Explicit, versioned registry metadata for descriptor discovery, GUI forms, validation, and JSON configuration round-tripping.
  • Bundled, checksum-verified NEP, DPA4, and DPA4C model resources. DPA checkpoints are read without importing or installing Torch, and models are never downloaded implicitly.
  • Uniform lifecycle management and cooperative cancellation across the descriptor API.

Installation / 安装

Install the published package with Python 3.10 or newer:

python -m pip install mdescriptor

Optional integrations:

python -m pip install "mdescriptor[ase]"     # ASE input conversion
python -m pip install "mdescriptor[sparse]"   # SciPy CSR output

The base package requires NumPy, array-api-compat, and packaging. ASE is needed only for StructureBatch.from_ase(...) or direct ASE input. DPA4 and DPA4C do not require Torch at runtime.

Platform backends / 平台后端

The CPU backend works on every supported platform. The published wheel layout is:

Platform CPU CUDA
Linux x86_64 Yes Yes
Windows x86_64 Yes Yes
macOS arm64 Yes No

Linux and Windows wheels bundle the CUDA user-space runtime; an NVIDIA driver and a supported GPU are still required. CUDA is selected explicitly with ExecutionOptions(device="cuda") and never silently falls back to CPU. If the driver or GPU is unavailable, computation reports the structured device_unavailable error.

When building from source, a CUDA toolkit is detected automatically. Disable it explicitly when needed:

python -m pip install . --config-settings=cmake.define.MDESCRIPTOR_BUILD_CUDA=OFF

Input contract / 输入契约

Every descriptor accepts a StructureBatch. It can also adapt a single ASE Atoms object or a sequence of ASE objects when ASE is installed. GUI- or application-owned frame records can be packed with StructureBatch.from_frames.

import numpy as np
from mdescriptor import StructureBatch

batch = StructureBatch(
    numbers=np.array([1, 8], dtype=np.int32),
    positions=np.array([[0.0, 0.0, 0.0], [1.0, 0.0, 0.0]]),
    cells=np.eye(3, dtype=np.float64)[None] * 12.0,
    pbc=np.ones((1, 3), dtype=np.int32),
    offsets=np.array([0, 2], dtype=np.int64),
    ids=("water-0",),
)

For S structures and N total atoms, the core fields are:

Field Shape Meaning
numbers (N,) Positive atomic numbers
positions (N, 3) Cartesian coordinates
cells (S, 3, 3) Unit-cell matrices; zero cells are allowed for isolated structures
pbc (S, 3) All zeros for isolated or all ones for fully periodic structures
offsets (S + 1,) Atom boundaries for each structure
ids length S Structure identifiers

StructureBatch owns read-only snapshots of its arrays and validates shapes, finite values, atomic numbers, offsets, cells, and periodicity. A batch may mix isolated and fully periodic structures, but partial periodicity within one structure is not supported. Optional spins and charge_spin fields are available for model descriptors that declare those capabilities.

Basic API / 基本 API

Algorithm classes live in the lazy mdescriptor.descriptors namespace. The root package exposes the stable contracts, errors, and registry functions.

from mdescriptor import ExecutionOptions, OutputOptions
from mdescriptor.descriptors import SOAP

with SOAP(
    species=[1, 8],
    r_cut=4.5,
    n_max=4,
    l_max=3,
    average="off",
    output=OutputOptions(dtype="float32"),
    execution=ExecutionOptions(num_threads=4),
) as descriptor:
    result = descriptor.compute(batch)

print(result.level)                 # DescriptorLevel.ATOM
print(result.values.shape)          # (number of atoms, feature_count)
print(result.labels[:2])
print(result.samples[:2])

All descriptors provide compute(...), close(), closed, configuration, metadata, and (when resolved) feature_count. Computing after close() raises ClosedDescriptorError. Use ComputeControl as the control= argument to cancel a long-running computation cooperatively.

Results / 结果

DescriptorResult.values is a two-dimensional dense NumPy array by default. With OutputOptions(sparse=True), descriptors return a read-only SciPy CSR matrix instead. The common result fields are:

Field Meaning
values Feature matrix with shape (rows, features)
level atom, structure, or pair
structure_ids Identifiers copied from the input batch
row_offsets Structure boundaries for atom- and pair-level rows; None for structure-level output
samples Stable row identities for the selected output level
labels One stable label per feature column
metadata JSON-safe descriptor, execution, output, and model metadata
feature_count Number of feature columns

The sample layouts are:

  • structure level: [structure]
  • atom level: [structure, local_atom]
  • pair level: [structure, local_atom_1, local_atom_2, shift_a, shift_b, shift_c]

Energy and force predictions / 能量与力预测

NEP and DPA4C predictions use a separate namespace so descriptor feature matrices keep their existing meaning. Both predictors accept the same StructureBatch or ASE inputs, and return total energy per structure, atomic energy per atom, and Cartesian forces in eV and eV/angstrom:

from mdescriptor import ExecutionOptions
from mdescriptor.predictors import DPA4C, NEP

with NEP(execution=ExecutionOptions(device="cpu")) as model:
    result = model.predict(batch)

print(result.energy.shape)       # (number of structures,)
print(result.atom_energy.shape)  # (number of atoms,)
print(result.forces.shape)       # (number of atoms, 3)

PredictionResult also carries the input structure_ids, atom offsets, and resolved model metadata. Its arrays are read-only snapshots. Select CUDA with ExecutionOptions(device="cuda"); CUDA initialization remains lazy until the first prediction. NEP prediction supports NEP4/NEP5 models, including ZBL. DPA4C prediction accepts uncompressed, spin-free energy checkpoints supported by the native inference backend. DPA4 descriptors remain available through mdescriptor.descriptors.

Built-in descriptors / 内置描述符

The built-in registry currently contains 28 descriptors:

Family Descriptors
Local SOAP, SOAPTurbo, ACSF, ACE, AtomicComposition, NeighborList, SortedDistances, SphericalExpansion, SphericalExpansionByPair, SoapRadialSpectrum, SoapPowerSpectrum, LodeSphericalExpansion, MTP, C00PSMLFF
Matrix CoulombMatrix, SineMatrix, EwaldSumMatrix
Many-body MBTR, LMBTR, ValleOganov
Rotational EAD, SO3, SO4, SNAP, LBispectrum
Model-backed NEP, DPA4, DPA4C

See the descriptor inventory for the canonical parameters, output levels, periodicity, execution devices, model policies, and GUI-facing descriptions. The inventory is generated from the immutable built-in registry.

Registry and application integration / 注册表与应用集成

The registry is the single discovery source for built-in descriptors. Static metadata can be queried without constructing a descriptor or resolving a model:

import mdescriptor

names = mdescriptor.list_descriptors()
summaries = mdescriptor.list_descriptors(detailed=True)
soap_info = mdescriptor.describe_descriptor("SOAP")
runtime = mdescriptor.get_runtime_info()

describe_descriptor(name) returns JSON-safe parameter schemas, display names, tooltips, execution devices, input periodicity, output options, and model asset policy. DescriptorConfiguration is an immutable, versioned JSON form that can be stored and reconstructed:

from mdescriptor import DescriptorConfiguration, create_descriptor

saved = descriptor.configuration.to_dict()
restored = create_descriptor(DescriptorConfiguration.from_dict(saved))
restored.close()

gui_baseline() returns the packaged GUI adaptation contract, including the error and metadata conventions expected by an application.

Model resources / 模型资源

NEP, DPA4, and DPA4C use local model resources. Each has a bundled, checksum-verified default model:

from mdescriptor import ExecutionOptions
from mdescriptor.descriptors import DPA4, DPA4C, NEP

nep = NEP()
dpa4 = DPA4(execution=ExecutionOptions(device="cpu"))
dpa4c = DPA4C(calibrate=True)

for descriptor in (nep, dpa4, dpa4c):
    descriptor.close()

An explicit compatible local model can be passed with model=/path/to/model. MTP accepts an optional local model for MLIP-2/MLIP-4-compatible features; standalone descriptors do not require model files. No descriptor downloads a model or searches the filesystem implicitly.

DPA4 and DPA4C official .pt checkpoints are parsed by the bundled NumPy reader. The default inference graphs use the native execution backends when available, while compatible specialized configurations retain the NumPy fallback.

Development / 开发

Install the project in editable mode and run the default test suite:

python -m pip install -e . --no-build-isolation
python -m pytest --import-mode=importlib tests -q

Quality and contract checks:

python -m ruff check src tests scripts
python -m mypy
python scripts/check_descriptor_inventory.py --check
python scripts/check_numerical_baselines.py --check

The direct C++ tests can be run independently:

cmake -S cpp/tests -B build/cpp-tests -DCMAKE_BUILD_TYPE=Release
cmake --build build/cpp-tests --config Release
ctest --test-dir build/cpp-tests -C Release --output-on-failure

The controlled CPU benchmark uses the committed golden fixtures:

python scripts/benchmarking/run_descriptor_benchmark.py \
  --output /tmp/mdescriptor-benchmark.json

Pushing a v* tag runs the release workflow. It builds CPython 3.10–3.14 wheels for Linux x86_64, Windows x86_64, and macOS arm64, builds an sdist, and publishes the artifacts to PyPI through GitHub Trusted Publishing.

License / 许可证

MDescriptor is distributed under the GNU General Public License v3.0.

Metadata

Release files for MDescriptor 0.3.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 MDescriptor 0.3.5
File Size Uploaded Provenance Actions
mdescriptor-0.3.5.tar.gz 26.7 MB With provenance Details for mdescriptor-0.3.5.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for MDescriptor 0.3.5
File Actions
mdescriptor-0.3.5-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for mdescriptor-0.3.5-cp314-cp314-win_amd64.whl
mdescriptor-0.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for mdescriptor-0.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
mdescriptor-0.3.5-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for mdescriptor-0.3.5-cp314-cp314-macosx_11_0_arm64.whl
mdescriptor-0.3.5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for mdescriptor-0.3.5-cp313-cp313-win_amd64.whl
mdescriptor-0.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for mdescriptor-0.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
mdescriptor-0.3.5-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for mdescriptor-0.3.5-cp313-cp313-macosx_11_0_arm64.whl
mdescriptor-0.3.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for mdescriptor-0.3.5-cp312-cp312-win_amd64.whl
mdescriptor-0.3.5-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 for mdescriptor-0.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
mdescriptor-0.3.5-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for mdescriptor-0.3.5-cp312-cp312-macosx_11_0_arm64.whl
mdescriptor-0.3.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for mdescriptor-0.3.5-cp311-cp311-win_amd64.whl
mdescriptor-0.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for mdescriptor-0.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
mdescriptor-0.3.5-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for mdescriptor-0.3.5-cp311-cp311-macosx_11_0_arm64.whl
mdescriptor-0.3.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for mdescriptor-0.3.5-cp310-cp310-win_amd64.whl
mdescriptor-0.3.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for mdescriptor-0.3.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
mdescriptor-0.3.5-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for mdescriptor-0.3.5-cp310-cp310-macosx_11_0_arm64.whl

Total release size: 643.2 MB

Release files / mdescriptor-0.3.5.tar.gz

Download URL mdescriptor-0.3.5.tar.gz
Size 26.7 MB
Tags Source
SHA-256 checksum
How to use checksums
2512fffbe062a6f86457ef710ecd929309d857716ffa3e4416ace87b42fbcbe0
BLAKE2b-256 checksum
How to use checksums
24c37cde760985056f70b4f6b9a770f32803227ee1d67e5aae5a68516ff98f6c
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp314-cp314-win_amd64.whl

Download URL mdescriptor-0.3.5-cp314-cp314-win_amd64.whl
Size 44.0 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
0bdead03ec2619a9c98d166307ffcbf44316d3862ed610a6b45455a34e891dd7
BLAKE2b-256 checksum
How to use checksums
63efdd6596301fac6be71ff767dd7decee3d9c892847d033154997456f4ff12b
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL mdescriptor-0.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 46.1 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2ad3a1f95e61a0929c18becb378cea1f5613aaa80c86eb10609d346f2c9179a8
BLAKE2b-256 checksum
How to use checksums
3c7d1cd52618f36f0361a989fe6915719cb3630aeded40559bd9afc147a2112a
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp314-cp314-macosx_11_0_arm64.whl

Download URL mdescriptor-0.3.5-cp314-cp314-macosx_11_0_arm64.whl
Size 33.3 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f4bb935fdf5b9817cf6a5a108bcfe92acab251eeaa6ab93f237e393e1ed5805d
BLAKE2b-256 checksum
How to use checksums
a23d5e91b88f023c75d174b463e059f8f7cc0bd8894d78a43dad57b898428552
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp313-cp313-win_amd64.whl

Download URL mdescriptor-0.3.5-cp313-cp313-win_amd64.whl
Size 43.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e7ae6d4893715334e3b98f8a2aef16981cff54bb410b7fd9600eedb37c2b3a63
BLAKE2b-256 checksum
How to use checksums
60f39e00b916f7ec4beb5565d7948ad23f53e3d4a453f84839a14264f7081548
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL mdescriptor-0.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 46.1 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
646d39a1dd77f997aad4f4cf1d96aea6360df983779035491a6a6c053e238540
BLAKE2b-256 checksum
How to use checksums
5aa5b8acb46de4837bc342fe60819a2da39b7bfb66a63a351ac43ba5314a91e4
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp313-cp313-macosx_11_0_arm64.whl

Download URL mdescriptor-0.3.5-cp313-cp313-macosx_11_0_arm64.whl
Size 33.3 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1b44de0f6ddc71fbd7e5d6a4e8ddd6cafcffaab2c529425d05419e01852cae2f
BLAKE2b-256 checksum
How to use checksums
f5790bee235daba0f41b67e5174ae39c92ca59d88e59103f1899d9bf8356fa7e
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp312-cp312-win_amd64.whl

Download URL mdescriptor-0.3.5-cp312-cp312-win_amd64.whl
Size 43.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
81a8c09a656e2f772065e3134d1d3dd35b13bcfc645e8e6203da59b6978dedda
BLAKE2b-256 checksum
How to use checksums
826d21ba58f034513f8c624ae6e8e9fe377f2de959ba1b9ac06f367927dc1337
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL mdescriptor-0.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 46.1 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ccd832a593c234be21aa4df946855848004ed3d1f7c0a4dc1e1cd4011062ff1e
BLAKE2b-256 checksum
How to use checksums
16b9527bae6f18b0a577c3dc7488dacfd44e6e24fa9b4ccb1b324979e97dd880
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp312-cp312-macosx_11_0_arm64.whl

Download URL mdescriptor-0.3.5-cp312-cp312-macosx_11_0_arm64.whl
Size 33.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
26d47168f34ef5d2b800fc979806a3976f4898ba2945ca0f0f9a614fa917949d
BLAKE2b-256 checksum
How to use checksums
9a55026afd0c8fbd57da6b1a5bdb7d56ef054234c717a3e36604c96299796f70
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp311-cp311-win_amd64.whl

Download URL mdescriptor-0.3.5-cp311-cp311-win_amd64.whl
Size 43.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
9b8aea93a1a99ed8af87b848998c9823e605a1279d455cc8e5721b712911199e
BLAKE2b-256 checksum
How to use checksums
a608803614ab7eebd0c0393535b9b7029a544de31b0c2a3b0ee30011fb85be65
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL mdescriptor-0.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 46.1 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
89ac6b532e9dc8477bf77e00bb2a2c8031f16ce4d06bd39e42de74ba02e5e262
BLAKE2b-256 checksum
How to use checksums
c6ade983f2166655db9daef9e06eb614207e96e3fe06e3e0c2fbbe0c707f1719
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp311-cp311-macosx_11_0_arm64.whl

Download URL mdescriptor-0.3.5-cp311-cp311-macosx_11_0_arm64.whl
Size 33.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
762b946fecd1301d4426e3acad4856b00e0e62c63285d55dfaf6f004c553c3f9
BLAKE2b-256 checksum
How to use checksums
e1f699a7f98a69c275c2b90f59fb75a6ec539010e600958857e45a37815494a2
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp310-cp310-win_amd64.whl

Download URL mdescriptor-0.3.5-cp310-cp310-win_amd64.whl
Size 43.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
4a5d84769693dd0045c4f29dbf0e2a62819dfeaab5035acb3dc46dd62d4dcce4
BLAKE2b-256 checksum
How to use checksums
180d809e0e6c73753ae9b5f01c2b272198c59c2af2fe7d482c7534c541623855
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL mdescriptor-0.3.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 46.1 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
008ac6791d8771c0648cad86a8e3fd357915bd1f28abd160a55e983f6df924dc
BLAKE2b-256 checksum
How to use checksums
58b539372e22f318e15d8140761efdb590f5805861e161d60de792bcc305bd36
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 Sep 30, 2026.

Transparency log

Release files / mdescriptor-0.3.5-cp310-cp310-macosx_11_0_arm64.whl

Download URL mdescriptor-0.3.5-cp310-cp310-macosx_11_0_arm64.whl
Size 33.3 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
19a7c646c3f8631033f5742be1857515e4e83c2bb7b021ec427f1aa7a15276da
BLAKE2b-256 checksum
How to use checksums
4cf0df68dc534f5462d7248fb6b5c38c61571f23c18f1587f9740c88375eda46
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 Sep 30, 2026.

Transparency log

Security for MDescriptor 0.3.5

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 16 files in this release have been uploaded with provenance metadata.

Select from 16 files

Attestation for mdescriptor-0.3.5.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 Sep 30, 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