PDFxTMDLib Python API
PDFxTMDLib provides a powerful and easy-to-use Python interface for high-performance Parton Distribution Function (PDF) calculations. It offers unified access to collinear PDFs (cPDFs), Transverse Momentum-Dependent PDFs (TMDs), double parton distributions (DPDs), uncertainty analysis, and QCD coupling calculations.
This guide covers the installation and usage of the Python bindings.
Installation
You can install the package directly from PyPI:
pip install pdfxtmd
High-Level API: PDFSet
The PDFSet interface is the recommended way to work with PDF sets. It handles the entire collection of PDF members (central value and error sets) and provides a simple API for calculating uncertainties and correlations.
1. Collinear PDF (cPDF) Uncertainty
import pdfxtmd
# 1. Initialize a CPDFSet for a given PDF set name
cpdf_set = pdfxtmd.CPDFSet("CT18NLO")
print(f"Loaded CPDF Set: CT18NLO with {len(cpdf_set)} members.")
# 2. Define kinematics
x = 0.01
mu2 = 100
# 3. Get the central value PDF from member 0
central_cpdf = cpdf_set[0]
up_pdf_central = central_cpdf.pdf(pdfxtmd.PartonFlavor.u, x, mu2)
print(f"Central Up Quark PDF: {up_pdf_central:.6f}")
# 4. Calculate the PDF uncertainty (the result is a PDFUncertainty object)
uncertainty = cpdf_set.Uncertainty(pdfxtmd.PartonFlavor.u, x, mu2)
print(f"Uncertainty: central={uncertainty.central:.6f}, +{uncertainty.errplus:.6f}, -{uncertainty.errminus:.6f}")
# 5. Calculate the correlation between two different partons
correlation = cpdf_set.Correlation(
pdfxtmd.PartonFlavor.u, x, mu2, # PDF A
pdfxtmd.PartonFlavor.d, x, mu2 # PDF B
)
print(f"Correlation between u and d quarks: {correlation:.4f}")
2. TMD Uncertainty
The interface for TMDs is analogous. Just use TMDSet and include the transverse momentum kt2.
import pdfxtmd
# 1. Initialize a TMDSet
tmd_set = pdfxtmd.TMDSet("PB-NLO-HERAI+II-2018-set2")
print(f"\nLoaded TMD Set: {tmd_set.getStdPDFInfo().SetDesc} with {len(tmd_set)} members.")
# 2. Define kinematics
x = 0.01
mu2 = 100
kt2 = 10
# 3. Calculate the TMD uncertainty
uncertainty_tmd = tmd_set.Uncertainty(pdfxtmd.PartonFlavor.g, x, kt2, mu2)
print(f"Gluon TMD Uncertainty: central={uncertainty_tmd.central:.6f}, +{uncertainty_tmd.errplus:.6f}, -{uncertainty_tmd.errminus:.6f}")
Low-Level API: Factories
For applications where you only need to evaluate a single PDF member and do not require uncertainty analysis, the factory interface offers a more direct approach.
import pdfxtmd
x = 0.01
mu2 = 100
kt2 = 10
# --- Collinear PDFs (cPDF) using Factory ---
cpdf_factory = pdfxtmd.GenericCPDFFactory()
cpdf = cpdf_factory.mkCPDF("CT18NLO", 0) # Get member 0
# Evaluate a single flavor
up_pdf = cpdf.pdf(pdfxtmd.PartonFlavor.u, x, mu2)
print(f"CPDF (Up Quark) from Factory: {up_pdf:.6f}")
# Evaluate all flavors at once (returns a list)
all_flavors_cpdf = cpdf.pdf_all(x, mu2)
print(f"All CPDF Flavors from Factory: {all_flavors_cpdf}")
# --- TMDs using Factory ---
tmd_factory = pdfxtmd.GenericTMDFactory()
tmd = tmd_factory.mkTMD("PB-NLO-HERAI+II-2018-set2", 0) # Get member 0
# Evaluate a single flavor
gluon_tmd = tmd.tmd(pdfxtmd.PartonFlavor.g, x, kt2, mu2)
print(f"\nTMD (Gluon) from Factory: {gluon_tmd:.6f}")
# Evaluate all TMD flavors at once (returns a list)
all_flavors_tmd = tmd.tmd_all(x, kt2, mu2)
print(f"All TMD Flavors from Factory: {all_flavors_tmd}")
Double Parton Distributions (DPDs)
DPDs are available when the package is built with DPD support. The same Python
API handles dense PDFxTMD-DPDB1 and hybrid PDFxTMD-DPDH1 sets.
import numpy as np
import pdfxtmd
print("DPD support:", pdfxtmd.__has_dpd__)
dpd = pdfxtmd.GenericCDPDFactory().mkCDPD(
"MSTW2008lo68cl_GSDPDF_PDFxTMD", 0
)
value = dpd.dpd(
pdfxtmd.PartonFlavor.g,
pdfxtmd.PartonFlavor.g,
1e-2, 100.0,
2e-2, 400.0,
)
print("g-g DPD:", value)
x1 = np.array([1e-3, 1e-2, 5e-2])
x2 = np.array([2e-3, 2e-2, 1e-1])
mu1_2 = np.full_like(x1, 100.0)
mu2_2 = np.full_like(x2, 400.0)
values = dpd.dpd_batch(
pdfxtmd.PartonFlavor.g,
pdfxtmd.PartonFlavor.g,
x1, mu1_2, x2, mu2_2,
)
print(values)
The NumPy batch overload accepts arrays with matching shapes and releases the Python GIL during native evaluation.
QCD Coupling ($\alpha_s$) Calculations
You can calculate the strong coupling constant $\alpha_s$ in two ways.
import pdfxtmd
cpdf_set = pdfxtmd.CPDFSet("CT18NLO")
# Method A: Directly from the PDFSet object (Recommended)
print("--- Method A: From PDFSet ---")
alpha_s_from_set = cpdf_set.alphasQ2(10000)
print(f"Alpha_s at mu2=10000: {alpha_s_from_set:.5f}")
# Method B: Using the low-level CouplingFactory
print("\n--- Method B: From CouplingFactory ---")
coupling_factory = pdfxtmd.CouplingFactory()
coupling = coupling_factory.mkCoupling("CT18NLO")
alpha_s_from_factory = coupling.AlphaQCDMu2(10000)
print(f"Alpha_s at mu2=10000: {alpha_s_from_factory:.5f}")
Complete Example: Plotting PDFs with Uncertainties
This example demonstrates a complete workflow: loading PDF/TMD sets, calculating values and uncertainties over a range of x, and plotting the results using matplotlib.
import pdfxtmd
import numpy as np
import matplotlib.pyplot as plt
# --- Part 1: Collinear PDF (cPDF) ---
cpdf_set = pdfxtmd.CPDFSet("CT18NLO")
print(f"Loaded cPDF set: {cpdf_set.getStdPDFInfo().SetDesc}")
x_values = np.logspace(-4, -1, 100)
mu2 = 1000
# Calculate central values and uncertainties
uncertainties = [cpdf_set.Uncertainty(pdfxtmd.PartonFlavor.g, x, mu2) for x in x_values]
central_pdfs = [u.central for u in uncertainties]
upper_band = [u.central + u.errplus for u in uncertainties]
lower_band = [u.central - u.errminus for u in uncertainties]
# Plot the cPDF
plt.figure(figsize=(10, 6))
plt.plot(x_values, central_pdfs, label='Gluon PDF (CT18NLO)', color='blue')
plt.fill_between(x_values, lower_band, upper_band, color='blue', alpha=0.2, label='Native CL Uncertainty')
plt.xscale('log')
plt.xlabel('$x$')
plt.ylabel('$xg(x, \mu^2)$')
plt.title(f'Gluon PDF with Uncertainty at $\mu^2 = {mu2} \ GeV^2$')
plt.legend()
plt.grid(True, which="both", ls="--")
plt.savefig('gluon_pdf_plot.png')
print("Saved plot to gluon_pdf_plot.png")
plt.close()
# --- Part 2: Transverse Momentum-Dependent PDF (TMD) ---
tmd_set = pdfxtmd.TMDSet("PB-LO-HERAI+II-2020-set2")
print(f"Loaded TMD set: {tmd_set.getStdPDFInfo().SetDesc}")
kt2 = 1
# Calculate central values and uncertainties
tmd_uncertainties = [tmd_set.Uncertainty(pdfxtmd.PartonFlavor.g, x, kt2, mu2) for x in x_values]
central_tmds = [u.central for u in tmd_uncertainties]
tmd_upper_band = [u.central + u.errplus for u in tmd_uncertainties]
tmd_lower_band = [u.central - u.errminus for u in tmd_uncertainties]
# Plot the TMD
plt.figure(figsize=(10, 6))
plt.plot(x_values, central_tmds, label='Gluon TMD (PB-LO-2020)', color='green')
plt.fill_between(x_values, tmd_lower_band, tmd_upper_band, color='green', alpha=0.2, label='Native CL Uncertainty')
plt.xscale('log')
plt.xlabel('$x$')
plt.ylabel('$xg(x, k_t^2, \mu^2)$')
plt.title(f'Gluon TMD with Uncertainty at $k_t^2 = {kt2} \ GeV^2, \mu^2 = {mu2} \ GeV^2$')
plt.legend()
plt.grid(True, which="both", ls="--")
plt.savefig('gluon_tmd_plot.png')
print("Saved plot to gluon_tmd_plot.png")
plt.close()
Additional Information
Error Handling
The API raises a RuntimeError for invalid kinematic inputs.
try:
cpdf.pdf(pdfxtmd.PartonFlavor.u, -0.1, mu2) # Invalid x
except RuntimeError as e:
print(f"Caught expected error for invalid x: {e}")
Enumerating Parton Flavors
You can inspect all available parton flavors and their integer codes.
print("\n--- All PartonFlavor enum values ---")
for name, flavor in pdfxtmd.PartonFlavor.__members__.items():
print(f" {name}: {flavor.value}")
Full Code Examples
For more detailed examples, see the full tutorials in the project repository:
License
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Contact
For questions or contributions, please contact raminkord92@gmail.com.
High-level set API and source builds
CPDFSet(pdfSetName, alternativeReplicaUncertainty=False) and
TMDSet(pdfSetName, alternativeReplicaUncertainty=False) expose the existing
C++ PDFSet specializations. len(pdf_set) gives the member count;
pdf_set[i] returns an ICPDF or ITMD with the same evaluation methods as
factory-created members. Indices must satisfy 0 <= i < len(pdf_set);
negative and out-of-range indices raise IndexError.
A returned member keeps its owning set alive, including with temporary sets:
import gc
central = pdfxtmd.CPDFSet("CT18NLO")[0]
gc.collect()
print(central.pdf(pdfxtmd.PartonFlavor.g, 0.01, 100.0))
Uncertainty(flavor, x, mu2, cl=-1) for collinear sets and
Uncertainty(flavor, x, kt2, mu2, cl=-1) for TMD sets return a
PDFUncertainty. The default cl=-1 uses the set's native confidence level;
pass cl=68.0 explicitly to request 68 percent. Uncertainty(values, cl=-1)
accepts one value per member. Results expose central, errplus, errminus,
errsymm, scale, the errplus_pdf/errminus_pdf/errsymm_pdf and
errplus_par/errminus_par/errsymm_par components, and errparts.
Their definitions and scaling are those of the C++ implementation.
Correlation(flavorA, xA, mu2A, flavorB, xB, mu2B) has additional kt2A
and kt2B arguments before the corresponding scales for TMDs.
Correlation(valuesA, valuesB) accepts two full member vectors.
alphasQ(q) and alphasQ2(q2) evaluate the set's coupling.
getStdPDFInfo() and getPDFErrorInfo() return metadata snapshots with the
C++ field names. Use getStdPDFInfo().SetDesc for the description.
All-flavor evaluation uses member.pdf_all(x, mu2) or
member.tmd_all(x, kt2, mu2) and returns a list; the existing overloads
accepting an output list are also supported.
To install these bindings from a patched source checkout on Linux:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
# Install libzstd-dev and libdnnl-dev for the default DPD-enabled build.
CMAKE_BUILD_PARALLEL_LEVEL=2 python -m pip install .
# Or build without DPD dependencies:
# PDFXTMD_ENABLE_DPD=OFF CMAKE_BUILD_PARALLEL_LEVEL=2 python -m pip install .
PDF grid data must be installed separately. For development builds and tests
against the freshly compiled extension, see tests/python/README.md.
Metadata
Release files for pdfxtmd 2.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 200.5 MB
Release files / pdfxtmd-2.0.2-cp313-cp313-win_amd64.whl
| Download URL | pdfxtmd-2.0.2-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4019be01b3d2f24984daa8c719fe3e439afadae075bd64c48617f1c781b4121d
|
|
BLAKE2b-256 checksum How to use checksums |
ce58ff8c0fd6a9e0ef197cd48c5ffb2c5a490eb93979b99d57159feb57f324c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 17.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 |
da5824f3c1c41d8a2847a1f9ae19a6a3c0ad80daa5fb28d77d2e101405247588
|
|
BLAKE2b-256 checksum How to use checksums |
5e46cb87e1e7ab911fc61758730d87f2d3d080e765267e885af037dd1b5f6f0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp313-cp313-macosx_10_15_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp313-cp313-macosx_10_15_x86_64.whl |
|---|---|
| Size | 13.4 MB |
| Tags | CPython 3.13 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
7e38e0aea178f286fa9ddd47f27baf7a467086b019eb70485674ecfe32dbefcf
|
|
BLAKE2b-256 checksum How to use checksums |
85c628c7576407f866a76ed5b58c5d9a466d2be183adb31c5ad0e90c9ae5c196
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp312-cp312-win_amd64.whl
| Download URL | pdfxtmd-2.0.2-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a5521c1b6647ccda8d377b1afc17ed005b985f7c351235befaccf5184826a246
|
|
BLAKE2b-256 checksum How to use checksums |
bba29c1a89867fceb877a08a5ce7aa884e2a189a7f0b3d39f7551c79383646d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 17.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 |
3ca85a846c2d00826a70034f288bd1a82979b52c49e03fa44fbb25665b185e60
|
|
BLAKE2b-256 checksum How to use checksums |
9bcb482cea9f9f46ed409eb9eda369fc7d2016e03b47eba33bc441ae6db2f927
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp312-cp312-macosx_10_15_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp312-cp312-macosx_10_15_x86_64.whl |
|---|---|
| Size | 13.4 MB |
| Tags | CPython 3.12 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
47648a0a33355e33edc3af02c36ca14e0b1af8b9cb50ef95e62e2cf3bd931fe8
|
|
BLAKE2b-256 checksum How to use checksums |
8161f430105ba439d6ae87a51febb6e47277086b58ce2f4be268b9168c7ab4b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp311-cp311-win_amd64.whl
| Download URL | pdfxtmd-2.0.2-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a1b9841294ab6dc75819c4930456a4686ceee30e9f0e8cf1994e7a1c904f75d6
|
|
BLAKE2b-256 checksum How to use checksums |
3f27d867ccb1a3d64443c7be97ab701de32ba992b1fd11eb62a26ec5d958f979
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 17.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 |
e4c6eccbf8a83ecae3a26c3a91b9dcd97c5a1bebec41b446652e5e2071d36541
|
|
BLAKE2b-256 checksum How to use checksums |
0c26c077bca44d366bbdc5f6c678562ae1a6c7745859f38c9422fd5231793b1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp311-cp311-macosx_10_15_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp311-cp311-macosx_10_15_x86_64.whl |
|---|---|
| Size | 13.4 MB |
| Tags | CPython 3.11 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
6ec7f1c00ea055b9f8b01d8cb38ea756daff1ed6aab585217de55dce601e4396
|
|
BLAKE2b-256 checksum How to use checksums |
4b21f4ca63932c5a82ce31e0285f8ecfb1fa8e74c44fd335e18b2028b1b2195b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp310-cp310-win_amd64.whl
| Download URL | pdfxtmd-2.0.2-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
44bcf556308a83c09713df8ac8a899eeddaeee23b4f21977422ae967d83fbc36
|
|
BLAKE2b-256 checksum How to use checksums |
20f00694f58621da7d0307448b34ced96b6e54622610726ef28526e3f3ad81a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 17.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 |
cad40b79345fd0d85af9f6423dab1554dee10da691bf8e37f43387221d7f2c29
|
|
BLAKE2b-256 checksum How to use checksums |
cbac58b33a7da1f5b4219e47b210f77f6baf9789d6d1edadd93a7018fb429ad0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp310-cp310-macosx_10_15_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp310-cp310-macosx_10_15_x86_64.whl |
|---|---|
| Size | 13.4 MB |
| Tags | CPython 3.10 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
bb2b3737086384e6996efb5425b65a9046e12c4dd7d598370db853ebd3d58e31
|
|
BLAKE2b-256 checksum How to use checksums |
38f5d4d984ec7914a8d708357e9f5c3ddb6a4f8e0730aa42c178daa7a2aa911f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp39-cp39-win_amd64.whl
| Download URL | pdfxtmd-2.0.2-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
853a00843658eddca8c7d126a27e6acbdfb3045dde1857bd24f4fef463768541
|
|
BLAKE2b-256 checksum How to use checksums |
8768cd4a9d3202cf9dd243a5bff3239327dc4bf5de81480f2a07d270689048fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 17.1 MB |
| Tags | CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3a005d98149be2fff99e8ff7ff177e7b3c1a8707b4cb0f4e626571918e64a59e
|
|
BLAKE2b-256 checksum How to use checksums |
84f0364b1160399937f90dfce47b64ea3f7eed81b1da6621a9a56f2c5aff5693
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pdfxtmd-2.0.2-cp39-cp39-macosx_10_15_x86_64.whl
| Download URL | pdfxtmd-2.0.2-cp39-cp39-macosx_10_15_x86_64.whl |
|---|---|
| Size | 13.4 MB |
| Tags | CPython 3.9 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
ca662ded6e14254fba37f99724e95fa21650606a0b9f3f1fc237876c6946b563
|
|
BLAKE2b-256 checksum How to use checksums |
51a49ef416de7bf3a77a29ce7b061aef9b09a6ec3f1657cfa2ae4f261d61bc2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logSecurity for pdfxtmd 2.0.2
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 15 files in this release have been uploaded with provenance metadata.
Attestation for pdfxtmd-2.0.2-cp313-cp313-win_amd64.whl
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 29, 2026.
Transparency logA 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.