Skip to main content

MDescriptor

MDescriptor is a batch-oriented periodic atomic-descriptor library. The numerical kernels are implemented in C++17 and all Python descriptors share one input/result/lifecycle contract.

MDescriptor 是面向批量周期结构的原子描述符库。数值核心使用 C++17;所有 Python 描述符共享统一的输入、结果和生命周期契约。

Layout / 布局

The public namespace is intentionally small:

src/mdescriptor/             installable package
src/mdescriptor/core/         Descriptor, StructureBatch, DescriptorResult
src/mdescriptor/descriptors/
  standalone/                 no model required (ACE, matrices/, many_body/, local/, rotational/)
  model_backed/               graph seam plus NEP, DPA4, DPA4C
src/mdescriptor/models/assets/ packaged, hash-verified model resources
tests/golden/              descriptor-owned, benchmark-independent accuracy fixtures
docs/numerical-baselines.md  static-golden and external-runtime oracle inventory
scripts/benchmarking/      controlled local benchmark runners
benchmarks/                local benchmark snapshots (ignored except for tracked oracles)
benchmarks/_legacy_oracles/ pinned independent upstream oracle adapters

standalone descriptors never require a model file. model_backed descriptors always resolve a model resource (a packaged default or an explicit model= path). There are no network downloads or implicit model discovery.

standalone 中的描述符不需要模型文件;model_backed 中的 NEP、DPA4、DPA4C 始终解析模型资源(内置默认模型或显式 model= 路径)。不会联网下载,也不会 扫描目录自动发现模型。

Installation / 安装

The base package requires Python 3.10+, NumPy and array-api-compat. ASE is optional and is only needed for StructureBatch.from_ase or direct ASE input. GUI/native frame records can use StructureBatch.from_frames without ASE. Sparse output is provided as SciPy CSR by the optional sparse extra.

基础包需要 Python 3.10+、NumPy 和 array-api-compat。ASE 只在使用 StructureBatch.from_ase 或直接传入 ASE 对象时需要;稀疏输出由可选的 sparse extra 提供。GUI/原生帧记录可使用 StructureBatch.from_frames,不依赖 ASE。

python -m pip install .
python -m pip install ".[ase]"
python -m pip install ".[sparse]"

DPA4 and DPA4C also expose CUDA execution. Their official .pt checkpoints are parsed by the bundled restricted NumPy reader without importing or installing Torch; the supported default graphs run through the C++17/OpenMP backend or the custom CUDA backend, while specialised configurations retain the NumPy fallback. No network model download is performed.

Prebuilt wheels ship one package with both backends built in: the CPU backend works everywhere and the CUDA backend activates on demand. All 28 built-in descriptors advertise both CPU and CUDA in the registry and never silently fall back to CPU; without a usable CUDA driver, a CUDA computation reports the structured device_unavailable error. The CUDA-capable set includes the local, matrix, many-body, rotational, NEP, DPA4, and DPA4C families listed in docs/descriptor-inventory.md.

Platform Wheel backends Runtime requirements
Linux x86_64 CPU + CUDA CPU works out of the box; CUDA needs an NVIDIA driver (≥ 525.60.13) and a supported GPU
Windows x86_64 CPU + CUDA CPU works out of the box; CUDA needs an NVIDIA driver (≥ 528.33) and a supported GPU
macOS arm64 CPU No CUDA backend

The CUDA backend embeds SASS for sm_75 through sm_90; newer architectures (Blackwell and later) run through the embedded compute_90 PTX, which the driver JIT-compiles on first use. The CUDA user-space runtime is bundled with the wheel, so the target machine needs only the NVIDIA driver — no CUDA Toolkit.

Building from source auto-detects a CUDA toolkit (CUDACXX, CUDA_HOME, or nvcc on PATH) and enables the CUDA backend when one is found. Pass -DMDESCRIPTOR_BUILD_CUDA=OFF to opt out or -DCMAKE_CUDA_ARCHITECTURES=... to target specific GPUs:

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

预编译 wheel 在同一个包里内置 CPU 与 CUDA 两个后端:CPU 开箱即用,CUDA 按 需激活。注册表中的 28 个内置描述符全部声明同时支持 CPU 和 CUDA,覆盖 local、matrix、many-body、rotational、NEP、DPA4 和 DPA4C 家族,完整清单见 docs/descriptor-inventory.md;CUDA 不会静默回退到 CPU,驱动不可用时返回 结构化的 device_unavailable 错误。CUDA 后端预编译 sm_75–sm_90 的 SASS, 更新的架构通过内嵌的 compute_90 PTX 由驱动首次使用时 JIT 编译;CUDA 用户态 运行时已随 wheel 捆绑,目标机只需 NVIDIA 驱动,无需完整 CUDA Toolkit。

源码构建会自动探测 CUDA 工具链(CUDACXXCUDA_HOMEPATH 中的 nvcc),探测到即同时构建 CUDA 后端;用 -DMDESCRIPTOR_BUILD_CUDA=OFF 关闭,或用 -DCMAKE_CUDA_ARCHITECTURES=... 指定目标 GPU 架构。

可选的外部数值对照固定使用 deepmd-kit==3.2.0

python -m pip install ".[reference-deepmd]"
python -m pytest -m deepmd tests/external_reference/test_deepmd.py

该对照同时覆盖周期和非周期输入;非周期帧按 DeepMD 的 cells=None 语义传入。 tests/golden/dpa4* 的 expected output(包括非周期行)也由该外部 evaluator 生成, manifest 记录了 evaluator 脚本、模型 hash 和 deepmd-kit 版本;运行时仍只加载已 提交的 NPZ,不要求安装 DeepMD。

所有 28 个描述符都登记在数值基线清单,并都有外部 静态 golden:7 个沿用独立上游/source NPZ,另外 21 个在对应目录的 external_manifest.json 中保存固定版本 provider 生成的数值。默认测试只依赖提交的 fixture;外部 provider 缺失或版本漂移会使 reference job 失败,而不会静默跳过。

性能说明:DPA4 native 路径现在使用固定大小分块的 SGEMM、可复用的计算工作区, 并只为每条边计算一次 attention logit;DPA4C 的类型对 MLP 采用每个 calculator 实例独立的惰性缓存。OpenBLAS 仅作为构建依赖,官方 wheel 会内置 prefixed 的 OpenBLAS 及其运行时闭包和许可文件,安装后不需要 scipy-openblas32、Torch 或其他新增运行时依赖。大批量独立结构按结构分块消费,以控制峰值内存。

本地可复现实测(脚本默认 2 次预热、5 次稳态;基线为提交 334e159)可用 以下命令生成完整 JSON 报告;报告同时记录构造、首次调用、p95、线程扫描、RSS 和 profiling 构建中的私有阶段计时:

python scripts/benchmark_dpa_native.py \
  --descriptor DPA4 --dataset carbon_dataset_pbc --limit-frames 50 \
  --threads 1,4,32 --output /tmp/dpa4-native.json

当前 Linux 主机的候选测量中,DPA4 的 41 原子小批 median 约为 0.47 s(1 线程)和 0.30 s(32 线程);50 帧/3200 原子单次吞吐约为 57.8 s(1 线程) 和 21.6 s(32 线程)。这些数字用于同机 A/B 门禁,不代表跨机器性能保证。

Input contract / 输入契约

import numpy as np
from mdescriptor import StructureBatch

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

StructureBatch takes an owned, read-only snapshot of its contiguous arrays and validates integer fields before narrowing, finite positions/cells, nonsingular cells, positive atomic numbers, monotonic offsets and fully periodic pbc == (1, 1, 1). ASE conversion is available through StructureBatch.from_ase(...); GUI-style mappings or objects exposing numbers, positions, cell, pbc and id can use StructureBatch.from_frames(...).

Descriptor API / 描述符 API

Algorithm classes live under mdescriptor.descriptors and use canonical names:

from mdescriptor.descriptors import SOAP

soap = SOAP(species=[1, 8], r_cut=4.5, n_max=4, l_max=3, average="off")
result = soap.compute(batch)

assert result.level == "atom"
assert result.values.shape == (batch.atoms, soap.feature_count)
assert len(result.labels) == result.values.shape[1]

with SOAP(species=[1, 8], r_cut=4.5, n_max=2, l_max=2) as descriptor:
    result = descriptor.compute(batch)

ACE (Atomic Cluster Expansion) is available as a standalone atom-level descriptor. Its public options mirror the standard ACE1.jl Utils.rpi_basis path and accept atomic numbers or chemical symbols:

from mdescriptor.descriptors import ACE

ace = ACE(species=["H", "O"], N=3, maxdeg=8, rcut=5.0)
result = ace.compute(batch)

Every descriptor has idempotent close(), a closed property and synchronous context-manager support. Computing after close raises ClosedDescriptorError. Instances are synchronous and not promised to be thread-safe.

每个描述符都提供幂等 close()closed 属性和同步上下文管理器;关闭后计算 会抛出 ClosedDescriptorError。实例是同步的,不承诺线程安全。

DescriptorResult contains values, level (atom, structure, or pair), structure_ids, row offsets, stable labels, JSON-safe metadata, per-row samples, and feature_count. The descriptor itself also retains the latest JSON-safe metadata and its configuration after close(). The standard shapes are (N, F), (S, F), and (P, F) for atom, structure and pair outputs respectively. Result arrays are owned snapshots and exposed read-only.

Supported descriptors / 支持的描述符

The built-in registry currently provides 28 descriptors. None means no model file is needed; Optional means a model can be supplied (as with MTP); and Required means the descriptor always resolves a local model resource. See the full descriptor inventory for parameters, capabilities and backend details.

内置注册表目前提供 28 个描述符。None 表示不需要模型文件;Optional 表示 可以提供模型(例如 MTP);Required 表示描述符始终解析本地模型资源。参数、 能力和后端详情请参阅完整描述符清单

Descriptor / 描述符 Category / 类型 Output / 输出 Model / 模型
SOAP Local / 局部 Structure / 结构 None
SOAPTurbo Local / 局部 Atom / 原子 None
ACSF Local / 局部 Atom / 原子 None
ACE Local / 局部 Atom / 原子 None
CoulombMatrix Matrix / 矩阵 Structure / 结构 None
SineMatrix Matrix / 矩阵 Structure / 结构 None
EwaldSumMatrix Matrix / 矩阵 Structure / 结构 None
MBTR Many-body / 多体 Structure / 结构 None
LMBTR Many-body / 多体 Atom / 原子 None
ValleOganov Many-body / 多体 Structure / 结构 None
AtomicComposition Local / 局部 Structure / 结构 None
NeighborList Local / 局部 Pair / 原子对 None
SortedDistances Local / 局部 Atom / 原子 None
SphericalExpansion Local / 局部 Atom / 原子 None
SphericalExpansionByPair Local / 局部 Pair / 原子对 None
SoapRadialSpectrum Local / 局部 Atom / 原子 None
SoapPowerSpectrum Local / 局部 Atom / 原子 None
LodeSphericalExpansion Local / 局部 Atom / 原子 None
EAD Rotational / 旋转 Atom / 原子 None
SO3 Rotational / 旋转 Atom / 原子 None
SO4 Rotational / 旋转 Atom / 原子 None
SNAP Rotational / 旋转 Atom / 原子 None
LBispectrum Rotational / 旋转 Atom / 原子 None
MTP Local / 局部 Atom / 原子 Optional
C00PSMLFF Local / 局部 Atom / 原子 None
NEP Model-backed / 模型 Atom / 原子 Required
DPA4 Model-backed / 模型 Atom / 原子 Required
DPA4C Model-backed / 模型 Atom / 原子 Required

Registry / 注册表

Built-ins come from one explicit immutable specification list. Imports are lazy and no decorator or filesystem scan is used.

import mdescriptor
from mdescriptor.descriptors import SOAP

print(mdescriptor.list_descriptors())
summaries = mdescriptor.list_descriptors(detailed=True)
metadata = mdescriptor.describe_descriptor("SOAP")
runtime = mdescriptor.get_runtime_info()
baseline = mdescriptor.gui_baseline()
soap = SOAP(species=[1, 8], r_cut=4.5, n_max=2, l_max=2)
rebuilt = mdescriptor.create_descriptor(soap.configuration)

child = mdescriptor.DescriptorRegistry(parent=mdescriptor.builtin_registry)
child.register(my_spec)

The built-in list separates AssetPolicy.NONE, OPTIONAL (for example MTP potentials), and REQUIRED (NEP/DPA4/DPA4C). The root package exposes stable contracts, registry functions and errors only; algorithm implementations are not re-exported from the root. describe_descriptor(name) reads static, JSON-safe GUI metadata from the registry without constructing a descriptor or resolving a model. list_descriptors(detailed=True) returns the name, version, display name, category and level for every descriptor in one call. gui_baseline() returns the packaged GUI contract document, and get_runtime_info() reports its baseline_version alongside the package and schema versions.

The keys in metadata["parameters"] are the unchanged constructor and configuration names. Each parameter schema also contains a GUI-facing display_name and description; use the former as the field label and the latter as the tooltip, while submitting the value under the mapping key:

metadata = mdescriptor.describe_descriptor("SOAP")
for parameter_name, schema in metadata["parameters"].items():
    label = schema["display_name"]
    tooltip = schema["description"]
    # Render `label` and `tooltip`, then serialize the value as `parameter_name`.

On Windows, import mdescriptor during single-threaded startup, before an embedding host starts background stdin/stdio readers. The package preloads the packaged native binary at that point; a host that controls startup explicitly may also call mdescriptor.preload_native().

Model resources / 模型资源

ModelResource, ModelResolver, LoadedModel and ModelSession are the shared model-resource seam. Resolution is explicit, local and checksum-aware:

from pathlib import Path
from mdescriptor.descriptors import DPA4
from mdescriptor import ExecutionOptions

dpa4 = DPA4(
    model=Path("/path/to/official-checkpoint.pt"),
    execution=ExecutionOptions(device="cpu"),
)
result = dpa4.compute(batch)

For GUI configuration JSON, a model parameter may be an explicit path string or the tagged object returned by ModelResource.to_dict(); the latter is used for named/checksummed resources.

The DPA4/DPA4C checkpoint readers and NumPy fallback path remain isolated vendor adapters. The default inference graphs are lowered into the private mdescriptor._native C++17/OpenMP extension.

Development / 开发

.venv/bin/python -m pip install -e . --no-build-isolation
.venv/bin/python -m pytest --import-mode=importlib tests -q
.venv/bin/python -m pytest --cov=mdescriptor --cov-report=term-missing tests

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

Coverage excludes the isolated vendored DPA implementation and enforces 75% branch coverage for project-owned Python code. Tests marked timing record repeatable timing samples but intentionally do not impose a runner-dependent speedup threshold; controlled performance reports are produced by scripts/run_benchmark.py.

The extension is private (mdescriptor._native). C++ shared math and batch helpers live in named headers under cpp/include/mdescriptor/detail/.

MDescriptor is licensed under the GNU General Public License v3.0; see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mdescriptor-0.3.2.tar.gz (26.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mdescriptor-0.3.2-cp314-cp314-win_amd64.whl (48.8 MB view details)

Uploaded CPython 3.14Windows x86-64

mdescriptor-0.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (51.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mdescriptor-0.3.2-cp314-cp314-macosx_11_0_arm64.whl (33.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mdescriptor-0.3.2-cp313-cp313-win_amd64.whl (48.6 MB view details)

Uploaded CPython 3.13Windows x86-64

mdescriptor-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (51.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mdescriptor-0.3.2-cp313-cp313-macosx_11_0_arm64.whl (33.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mdescriptor-0.3.2-cp312-cp312-win_amd64.whl (48.6 MB view details)

Uploaded CPython 3.12Windows x86-64

mdescriptor-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (51.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mdescriptor-0.3.2-cp312-cp312-macosx_11_0_arm64.whl (33.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mdescriptor-0.3.2-cp311-cp311-win_amd64.whl (48.6 MB view details)

Uploaded CPython 3.11Windows x86-64

mdescriptor-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (51.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mdescriptor-0.3.2-cp311-cp311-macosx_11_0_arm64.whl (33.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mdescriptor-0.3.2-cp310-cp310-win_amd64.whl (48.6 MB view details)

Uploaded CPython 3.10Windows x86-64

mdescriptor-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (51.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mdescriptor-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (33.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file mdescriptor-0.3.2.tar.gz.

File metadata

  • Download URL: mdescriptor-0.3.2.tar.gz
  • Upload date:
  • Size: 26.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mdescriptor-0.3.2.tar.gz
Algorithm Hash digest
SHA256 8bd41a721e4f1f1fe51bb94bc9e066aa4e9faa2ce87d678d950dc50f533da649
MD5 b1dbc082a51036cce76e2cb7f0c67971
BLAKE2b-256 9526d234cb86e775e43c7fd88f2e4a49960301c52ce59eb0307f22ae5a6f29f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2.tar.gz:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: mdescriptor-0.3.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 48.8 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mdescriptor-0.3.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8cf305181ac384b0c79bded5d9eb4e5c2b815b83e144ac152bee333021c62b9c
MD5 4ca2a16d836cab106dcade3e2e9e5808
BLAKE2b-256 edbd5c59bddedb4b1f7e8802e3271d3db64ae18399d6780047d9290e125cefba

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp314-cp314-win_amd64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ced087b77f6fafbd3ba679225fe2675c9a57129c602091079726a135ae4d2bce
MD5 b47cdfde5becefce25eab5c088372238
BLAKE2b-256 6a251622384c6b7a72232f18e82abe5dae8b622791dc93fedc182e2f046f4be6

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 452d8b8ac3b5e279c6d4dccf35e4fa19e51769a9056d2c23b2307deaeefc6c0d
MD5 f0a0e46dfe05950ece7877e49cbd6125
BLAKE2b-256 76c956ba90021fb3d27bd279906e23618523e4aa58756cc16964ce2fe41b73bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: mdescriptor-0.3.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 48.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mdescriptor-0.3.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 14acba118589a87a90f3228cab7fb35201fc42124e4ed8fd596168c3c67b1f7a
MD5 d60aebafa969c0a7e8b9255c1ecfe246
BLAKE2b-256 90cfb6f113799cb9fe98c954a21c741ff38f2208f660b3981f03e6749854ac83

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp313-cp313-win_amd64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ecceda97a2e2f78ff4a6229f26fb3ca34187732212e9f92927ce0a59bda6da74
MD5 a982e656a937e2b408d4a89b6cc2e83a
BLAKE2b-256 1de2830dde23e8ca8e14654dc8288796b5726dc14cb48e77f7032c9e5be126db

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b46467c165b9e38ff1f7b480ac196826e06155c8e4928745f5fd0bc70dc8630f
MD5 973b42ca35e3fd190dcddeea049b44d2
BLAKE2b-256 3761ea8b35968d2850c8b9871e905316237b586e029e4f7c5ac7f5f39b95d059

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mdescriptor-0.3.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 48.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mdescriptor-0.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 144fda0e2621597338e5be44f5fc223a6602c6dc5e14f3e42d760172874a5ca7
MD5 a21669872030f4eb7192950d10a83aa6
BLAKE2b-256 fdbb91ea83c7777c040e3372085f5b712c97c95d297fdc308d1b585ea4950469

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp312-cp312-win_amd64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7dd46fd0cb177f5544deeac128894f36d6ee5742d45759dcf86c890c051c4a73
MD5 206fb6f733c5d74bb7325304b69782ac
BLAKE2b-256 ea277fe0a9b7555d9a888e97d198ea44934ae4752b06b67724ac0b7df3194f3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 452f6532067287c976a5d6938b95ec307a5e78dd5cfde255d2e18d61675231ad
MD5 90c4ffafe946e03d4493bf3dbf8caa05
BLAKE2b-256 bdf3594775eea7e4f05b4acd63256a281d63863e0c8f45d6bc0803b103c3702c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mdescriptor-0.3.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 48.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mdescriptor-0.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a85281547a2a8588509c15acaf4d201cbbdca8b786d55fbab0e586c1ba1d0a65
MD5 d2fb6a66196e0d3637333375848eadaa
BLAKE2b-256 eba7d27a4b00065c86cc2514779fbcf9d014e1b61c1d6217be37e9962947d471

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp311-cp311-win_amd64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dbf604c839820a9bef7719384f10eff6941189a67c69dc54ec1bcf35cd66cda1
MD5 5a08b8f4ea58724acb35518fedd08af0
BLAKE2b-256 9a480add1fbb4bb99ddafd9c4f9c68c8656d5ba03b4c112aed8a34c9c20b6461

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 efee7c0ccc7b14043bd52054f6ee84b18489a6b46e6fc2b8d40c8b760b7457c3
MD5 f9b138e20e27010f3c14298830137789
BLAKE2b-256 57b816743b788b291896c6b26683ca28d8b9ce556ec8c61109864220c64ee1c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mdescriptor-0.3.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 48.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mdescriptor-0.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 41411d8d7671a823032e107a4fbe1a22d58c64f1f0fb32b550501e04401be166
MD5 c6fbf2dac6a9e9d23fedd7d1e3b6d66c
BLAKE2b-256 2488b57e383afb25dbb4962f0ef8070deade0831af37f9bae4ea25dd1a05cd35

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp310-cp310-win_amd64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6a43cb0cdd4a653aab62e1341a30568c6f7a0ac3bb916d4f7e197d9ff70c634
MD5 5a1e5d2993fcd85530b40519d8209ae4
BLAKE2b-256 c87a16ca85cd1db1b17b33a08c388769b87c75a096fdf44e4717fea6878f9344

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdescriptor-0.3.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mdescriptor-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b39ca0f767353ebe987e167b0fa2bfefeffa4a6e81a4d215599bf5073992158
MD5 4be67b29b21d5afa8fd74160fe219308
BLAKE2b-256 4bf3644fcc3ceb4a335e813872658ad59b4d509dfa6d6b2e292803a38ee3e7be

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdescriptor-0.3.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on nicheal/MDescriptor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.3

16 files

This release

0.3.2 This release

16 files

0.3.1

16 files

0.3.0

16 files

0.2.8

16 files

0.2.7

16 files

0.2.6

16 files

0.2.5

16 files

0.2.4

16 files

0.2.3

16 files

0.2.2

16 files

0.2.1

16 files

0.1.0

21 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page