Skip to main content

diff-diff

diff-diff: Difference-in-Differences causal inference in Python - sklearn-like API with Callaway-Sant'Anna, Synthetic DiD, Honest DiD, and Event Studies

PyPI version Python versions License: MIT Downloads DOI

A Python library for Difference-in-Differences (DiD) causal inference - sklearn-like estimators with statsmodels-style outputs, built for econometricians, marketing analysts, and data scientists running campaign-lift, policy, and staggered-rollout analyses.

Installation

pip install diff-diff

For development:

git clone https://github.com/igerber/diff-diff.git
cd diff-diff
pip install -e ".[dev]"

Quick Start

import pandas as pd
from diff_diff import DifferenceInDifferences  # or: DiD

data = pd.DataFrame({
    'outcome': [10, 11, 15, 18, 9, 10, 12, 13],
    'treated': [1, 1, 1, 1, 0, 0, 0, 0],
    'post': [0, 0, 1, 1, 0, 0, 1, 1],
})

did = DifferenceInDifferences()
results = did.fit(data, outcome='outcome', treatment='treated', post='post')
print(results)              # DiDResults(ATT=3.0000, SE=1.7321, p=0.1583)
results.print_summary()     # full statsmodels-style table

Documentation

For AI Agents

If you are an AI agent or LLM using this library, call diff_diff.get_llm_guide() for a concise API reference with an 8-step practitioner workflow (based on Baker et al. 2025). The workflow ensures rigorous DiD analysis - testing assumptions, running sensitivity analysis, and checking robustness, not just calling fit().

from diff_diff import get_llm_guide

get_llm_guide()                 # concise API reference
get_llm_guide("practitioner")   # 8-step workflow (Baker et al. 2025)
get_llm_guide("full")           # comprehensive documentation
get_llm_guide("autonomous")     # autonomous-agent variant

The guides are bundled in the wheel - accessible from a pip install with no network access. After estimation, call practitioner_next_steps(results) for context-aware guidance on remaining diagnostic steps.

For Data Scientists

Measuring campaign lift? Evaluating a product launch? Rolling out a policy in waves? diff-diff handles the causal inference so you can focus on the business question.

  • Which method fits my problem? - start from your business scenario (campaign in some markets, staggered rollout, survey data) and find the right estimator
  • Getting started for practitioners - end-to-end walkthrough from marketing campaign to causal estimate to stakeholder-ready result
  • Brand awareness survey tutorial - full example with complex survey design, brand funnel analysis, and staggered rollouts
  • Have BRFSS/ACS/CPS individual records? Use aggregate_survey() to roll respondent-level microdata into a geographic-period panel with inverse-variance precision weights for second-stage DiD

BusinessReport and DiagnosticReport are experimental preview classes that produce plain-English output and a structured to_dict() schema from any fitted estimator result except the two rejected by type (EventStudyResults surfaces and DurationDiDResults) - wording and schema will evolve. See docs/methodology/REPORTING.md for usage and stability notes.

Practitioner Workflow (Baker et al. 2025)

For rigorous DiD analysis, follow these 8 steps. Skipping diagnostic steps produces unreliable results.

  1. Define target parameter - ATT, group-time ATT(g,t), or event-study ATT_es(e). State whether weighted or unweighted.
  2. State identification assumptions - which parallel trends variant (unconditional, conditional, PT-GT-Nev, PT-GT-NYT), no-anticipation, overlap.
  3. Test parallel trends - simple 2x2: check_parallel_trends(), equivalence_test_trends(); staggered: inspect CS event-study pre-period coefficients (generic PT tests are invalid for staggered designs). Insignificant pre-trends do NOT prove PT holds.
  4. Choose estimator - staggered adoption -> CS/SA/BJS (NOT plain TWFE); few treated units -> SDiD; factor confounding -> TROP; simple 2x2 -> DiD. Run BaconDecomposition to diagnose TWFE bias.
  5. Estimate - estimator.fit(data, ...). Always print the cluster count first and choose inference method based on the result (cluster-robust if >= 50 clusters, wild bootstrap if fewer - for DifferenceInDifferences pass cluster=; TwoWayFixedEffects auto-clusters at unit level).
  6. Sensitivity analysis - compute_honest_did(results) for bounds under PT violations (MultiPeriodDiD, CS, or dCDH natively; the TwoWayFixedEffects event_study=True surface and a StackedDiD results.aggregate('event_study') container also admit - Stacked needs kappa_pre >= 2), run_all_placebo_tests() for 2x2 falsification, specification comparisons for staggered designs.
  7. Heterogeneity - CS: results.aggregate('group')/'event_study' (post-fit, no refit); SA: results.event_study_effects / to_dataframe(level='cohort'); Stacked: results.aggregate('event_study')/'simple' post-fit views (surface always computed since 3.9); EDiD: results.aggregate(...) post-fit from retained EIFs (3.9); ImputationDiD/TwoStageDiD: results.aggregate(...) post-fit from panel-backed kits (3.9); ContinuousDiD: results.aggregate('dose'/'simple'/'event_study') post-fit (3.9; dose/simple are views, event_study recomputes); subgroup re-estimation.
  8. Robustness - compare 2-3 estimators (CS vs SA vs BJS), report with and without covariates (shows whether conditioning drives identification), present pre-trends and sensitivity bounds.

Full guide: diff_diff.get_llm_guide("practitioner").

Estimators

  • DifferenceInDifferences - basic 2x2 DiD with robust/cluster-robust SEs, wild bootstrap, formula interface, and fixed effects
  • TwoWayFixedEffects - panel data DiD with unit and time fixed effects via within-transformation or dummies
  • MultiPeriodDiD - event study design with period-specific treatment effects for dynamic analysis (deprecated 3.9 - use TwoWayFixedEffects event_study=True)
  • CallawaySantAnna - Callaway & Sant'Anna (2021) group-time ATT estimator for staggered adoption
  • ChaisemartinDHaultfoeuille - de Chaisemartin & D'Haultfœuille (2020/2022) for reversible (non-absorbing) treatments with multi-horizon event study, normalized effects, cost-benefit delta, sup-t bands, and dynamic placebos. The most general option for treatments that switch on AND off (see also LPDiD/TROP non_absorbing). Alias DCDH.
  • SunAbraham - Sun & Abraham (2021) interaction-weighted estimator for heterogeneity-robust event studies
  • ImputationDiD - Borusyak, Jaravel & Spiess (2024) imputation estimator, most efficient under homogeneous effects
  • TwoStageDiD - Gardner (2022) two-stage estimator with GMM sandwich variance
  • SpilloverDiD - Butts (2021) ring-indicator spillover-aware DiD identifying direct effect on treated + per-ring spillover on near-control units; handles non-staggered and staggered timing; supports survey-design variance under survey_design= for HC1 / CR1 (Wave E.1 Binder TSL) and Conley (Wave E.2 panel-aware stratified-Conley sandwich on per-period PSU totals; extended in Wave E.2 follow-up to conley_lag_cutoff > 0 via panel-block composition with within-PSU serial Bartlett HAC — lag>0 requires an effective PSU via explicit survey_design.psu or injected cluster=<col>); SurveyDesign.subpopulation() preserves full-design n_psu / df_survey via zero-padded scores (Wave E.3, R svyrecvar(subset()) form)
  • SyntheticDiD - Synthetic DiD combining standard DiD and synthetic control for few treated units
  • SyntheticControl - Abadie, Diamond & Hainmueller (2010) classic synthetic control for a single treated unit (donor-weight counterfactual, nested/cv/inverse-variance/custom V; in-space placebo permutation inference via in_space_placebo(), plus ADH-2015 leave_one_out() + in_time_placebo() robustness, Firpo-Possebom (2018) test-inversion confidence sets, and Chernozhukov-Wüthrich-Zhu (2021) conformal inference)
  • TripleDifference - triple difference (DDD) estimator for designs requiring two criteria for treatment eligibility; serves both the 2x2x2 and the staggered-adoption design from one signature (fit(..., first_treat=) selects the staggered engine)
  • ContinuousDiD - Callaway, Goodman-Bacon & Sant'Anna (2024) continuous treatment DiD with dose-response curves
  • HeterogeneousAdoptionDiD - de Chaisemartin, Ciccia, D'Haultfœuille & Knau (2026) for designs where no unit remains untreated; local-linear estimator at the dose support boundary returning Weighted Average Slope (WAS) on Design 1' (d̲ = 0 / QUG) or WAS_{d̲} on Design 1 (d̲ > 0, continuous-near-d̲ or mass-point), with a multi-period event-study extension (last-treatment cohort, pointwise CIs). Panel-only in this release - repeated cross-sections rejected by the validator. Alias HAD.
  • RegressionDiscontinuity - Calonico, Cattaneo & Titiunik (2014) sharp, fuzzy, AND covariate-adjusted regression discontinuity with robust bias-corrected inference and rdrobust-parity bandwidth selection (all 10 selectors, mass-point handling; fuzzy via takeup= with a first-stage block and weak-identification warning; covariates via covariates= - CCFT 2019, same estimand, covariate-aware bandwidths). Canonical att is the bias-corrected estimate with a coherent robust CI (rdrobust's printed headline is att_conventional). Alias RDD.
  • StackedDiD - Wing, Freedman & Hollingsworth (2024) stacked DiD with Q-weights and sub-experiments; optional covariate balancing (Ustyuzhanin 2026)
  • EfficientDiD - Chen, Sant'Anna & Xie (2025) efficient DiD with optimal weighting for tighter SEs
  • TROP - Triply Robust Panel estimator (Athey et al. 2025) with nuclear norm factor adjustment
  • StaggeredTripleDifference - Ortiz-Villavicencio & Sant'Anna (2025) staggered DDD with group-time ATT (deprecated 3.9 - use TripleDifference with first_treat=)
  • WooldridgeDiD - Wooldridge (2023, 2025) ETWFE: saturated OLS, logit/Poisson QMLE (ASF-based ATT). Alias ETWFE.
  • LPDiD - Dube, Girardi, Jorda & Taylor (2025) Local Projections DiD: per-horizon long-difference event study on clean controls (no negative weighting), variance- or equally-weighted ATT, for absorbing or non-absorbing (reversible) treatment
  • ChangesInChanges - Athey & Imbens (2006) nonlinear/distributional DiD for the 2x2 design: full counterfactual distribution and quantile treatment effects via CDF transformation, plus the QDiD comparison estimator via method="qdid"; bootstrap inference; R qte parity. Alias CiC
  • LWDiD - Lee & Wooldridge (2025, 2026) rolling-transformation DiD: unit-specific demean/detrend converts panel to cross-section, staggered adoption, estimation_method in reg/ipw/dr/psm (the papers' RA/IPW/IPWRA plus propensity-score matching), exact small-N inference on the classical collapsed regression
  • DMLDiD - Chang (2020) double/debiased machine learning DiD: staggered ATT(g,t) with cross-fitted ML nuisance learners (DML2) and Neyman-orthogonal scores, for flexible/high-dimensional covariate adjustment under conditional parallel trends; panel or declared repeated cross sections (panel=False); survey/cluster support on both lanes (bad-control lane: panel only, cluster= only); Caetano, Callaway, Payne & Sant'Anna (2026) bad-control score via fit(bad_control=, bad_control_covariates=)
  • DurationDiD - Deaner & Ku (2026) causal duration DiD for a binary absorbing outcome (spell ended) in a two-group common-timing design: restricts the groups' untreated hazards (method="cd" additive gap or method="ph" ratio) instead of outcome levels, imputes the treated counterfactual survival, reports the per-date absorption ATT with whole-individual bootstrap pointwise and simultaneous bands plus a fixed-anchor pre-treatment specification test
  • BaconDecomposition - Goodman-Bacon (2021) decomposition for diagnosing TWFE bias in staggered settings

Diagnostics & Sensitivity

  • Bad-control pre-test - Caetano, Callaway, Payne & Sant'Anna (2026) Remark 6 ATT_X(g,t): the effect of treatment on a suspected bad control itself, per (g,t) cell (DMLDiDResults.bad_control_summary(); analytical SE; pre-period rows pre-test the identifying assumptions MP-5 / MP-8 and should be zero, post-period rows are the Condition-2 check that treatment affects the covariate)
  • RD Plots - Calonico, Cattaneo & Titiunik (2015) optimal data-driven RD plots (RDPlot): all 8 rdrobust binselect bin selectors, implied-scale/WIMSE-weight reporting, optional matplotlib rendering
  • Manipulation Testing - Cattaneo, Jansson & Ma (2020) density-discontinuity test (RDDensityTest): rddensity 3.0 parity, robust bias-corrected inference, unrestricted/restricted models, mass-point adjustment
  • Parallel Trends Testing - simple and Wasserstein-robust parallel trends tests, equivalence testing (TOST)
  • Placebo Tests - placebo timing, group, permutation, leave-one-out
  • TWFE Weight Diagnostics - Baker et al. (2025) implicit weights a TWFE regression places on each ATT(g,t), against the ATT^O / ATT^simple targets, with the pre-period contribution. Ports Callaway's twfeweights (MIT)
  • Honest DiD - Rambachan & Roth (2023) sensitivity analysis: robust CI under PT violations, breakdown values
  • Pre-Trends Power Analysis - Roth (2022) minimum detectable violation and power curves
  • Power Analysis - analytical and simulation-based MDE, sample size, power curves for study design
  • MMM Calibration Export - convert experiment results into MMM calibration inputs: PyMC-Marketing lift-test frames and Google Meridian lognormal ROI priors
  • Conley spatial HAC SE (vcov_type="conley") on cross-sectional LinearRegression / compute_robust_vcov plus panel DifferenceInDifferences / MultiPeriodDiD / TwoWayFixedEffects (with conley_lag_cutoff for within-unit Bartlett temporal HAC) - Conley (1999) spatial-correlation-aware SEs with parity vs R conleyreg on cross-sectional + panel fixtures, optional combined spatial + cluster product kernel via explicit cluster=, auto-activating sparse k-d-tree fast path for n > 5_000

Survey Support

Most estimators accept an optional survey_design parameter (or survey= / weights= for HeterogeneousAdoptionDiD) for design-based variance estimation. Coverage and supported weight types vary by estimator - see the Survey Design Support compatibility matrix for the per-estimator support table.

  • Design elements available across the supported set: strata, PSU, FPC, lonely PSU handling, nest. Weight types vary by estimator: some surfaces (e.g. CallawaySantAnna, StackedDiD, the HAD continuous path) accept pweight only; others accept pweight / fweight / aweight.
  • Variance methods: Taylor Series Linearization (TSL via Binder 1983), replicate weights (BRR / Fay / JK1 / JKn / SDR), survey-aware bootstrap
  • Diagnostics: DEFF per coefficient, effective n, subpopulation analysis, weight trimming, CV on estimates
  • Repeated cross-sections: CallawaySantAnna(panel=False) for BRFSS, ACS, CPS
  • Weight calibration / raking: upstream by design - pair with Meta's balance package, whose balance.interop.diff_diff adapter hands raked samples straight to diff-diff; see the composition-drift tutorial

No other Python or R DiD package offers design-based variance estimation for modern heterogeneity-robust estimators.

Requirements

  • Python 3.9 - 3.14
  • numpy >= 1.20
  • pandas >= 1.3
  • scipy >= 1.10

Development

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black diff_diff tests
ruff check diff_diff tests

References

This library implements methods from a wide body of econometric and causal-inference research. See the full bibliography on Read the Docs for citations spanning DiD foundations, modern staggered estimators, sensitivity analysis, and synthetic controls.

Citing diff-diff

If you use diff-diff in your research, please cite it:

@software{diff_diff,
  title = {diff-diff: Difference-in-Differences Causal Inference for Python},
  author = {Gerber, Isaac},
  year = {2026},
  url = {https://github.com/igerber/diff-diff},
  doi = {10.5281/zenodo.19646175},
  license = {MIT},
}

The DOI above is the Zenodo concept DOI - it always resolves to the latest release. To cite a specific version, look up its versioned DOI on the Zenodo project page.

See CITATION.cff for the full citation metadata.

Note on authorship: academic citation (CITATION.cff, the BibTeX above) lists individual authors with ORCIDs per scholarly convention. Package metadata surfaces (pyproject.toml, Sphinx docs) list "diff-diff contributors" to acknowledge the collective - see CONTRIBUTORS.md for the full list.

License

MIT License

Metadata

Release files for diff-diff 3.13.0

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

Source distribution (sdist)

Source distribution for diff-diff 3.13.0
File Size Uploaded Provenance Actions
diff_diff-3.13.0.tar.gz 2.2 MB With provenance Details for diff_diff-3.13.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for diff-diff 3.13.0
File Actions
diff_diff-3.13.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for diff_diff-3.13.0-cp314-cp314-win_amd64.whl
diff_diff-3.13.0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for diff_diff-3.13.0-cp314-cp314-manylinux_2_28_x86_64.whl
diff_diff-3.13.0-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details for diff_diff-3.13.0-cp314-cp314-manylinux_2_28_aarch64.whl
diff_diff-3.13.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for diff_diff-3.13.0-cp314-cp314-macosx_11_0_arm64.whl
diff_diff-3.13.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for diff_diff-3.13.0-cp313-cp313-win_amd64.whl
diff_diff-3.13.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for diff_diff-3.13.0-cp313-cp313-manylinux_2_28_x86_64.whl
diff_diff-3.13.0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details for diff_diff-3.13.0-cp313-cp313-manylinux_2_28_aarch64.whl
diff_diff-3.13.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for diff_diff-3.13.0-cp313-cp313-macosx_11_0_arm64.whl
diff_diff-3.13.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for diff_diff-3.13.0-cp312-cp312-win_amd64.whl
diff_diff-3.13.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for diff_diff-3.13.0-cp312-cp312-manylinux_2_28_x86_64.whl
diff_diff-3.13.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details for diff_diff-3.13.0-cp312-cp312-manylinux_2_28_aarch64.whl
diff_diff-3.13.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for diff_diff-3.13.0-cp312-cp312-macosx_11_0_arm64.whl
diff_diff-3.13.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for diff_diff-3.13.0-cp311-cp311-win_amd64.whl
diff_diff-3.13.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details for diff_diff-3.13.0-cp311-cp311-manylinux_2_28_x86_64.whl
diff_diff-3.13.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details for diff_diff-3.13.0-cp311-cp311-manylinux_2_28_aarch64.whl
diff_diff-3.13.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for diff_diff-3.13.0-cp311-cp311-macosx_11_0_arm64.whl
diff_diff-3.13.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for diff_diff-3.13.0-cp310-cp310-win_amd64.whl
diff_diff-3.13.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details for diff_diff-3.13.0-cp310-cp310-manylinux_2_28_x86_64.whl
diff_diff-3.13.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details for diff_diff-3.13.0-cp310-cp310-manylinux_2_28_aarch64.whl
diff_diff-3.13.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for diff_diff-3.13.0-cp310-cp310-macosx_11_0_arm64.whl
diff_diff-3.13.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for diff_diff-3.13.0-cp39-cp39-win_amd64.whl
diff_diff-3.13.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details for diff_diff-3.13.0-cp39-cp39-manylinux_2_28_x86_64.whl
diff_diff-3.13.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details for diff_diff-3.13.0-cp39-cp39-manylinux_2_28_aarch64.whl
diff_diff-3.13.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for diff_diff-3.13.0-cp39-cp39-macosx_11_0_arm64.whl

Total release size: 181.3 MB

Release files / diff_diff-3.13.0.tar.gz

Download URL diff_diff-3.13.0.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
830c59bc42f0d383175653432751a1e6460caf0d55719b692b507a7fedd5a078
BLAKE2b-256 checksum
How to use checksums
baf75616d55413d6297c1e5baf03e73d377b03f1bd4a8f393e132ea7ad7435fb
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp314-cp314-win_amd64.whl

Download URL diff_diff-3.13.0-cp314-cp314-win_amd64.whl
Size 3.2 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
57636ad67a78eae3f58b8ec97b7c0de853bbe29addaee4e917291d7775103c12
BLAKE2b-256 checksum
How to use checksums
41995f59858343ec8287693c472b0389cc3b8b38f0d7da7c2ae780df018458c8
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL diff_diff-3.13.0-cp314-cp314-manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5c7ca8028e0c070a1b0d8026d15748e60bd5d770e59bf1c93949a62c304f250b
BLAKE2b-256 checksum
How to use checksums
af3c351fd9c7d9b4e9f9e55f50714a6e96f6ce4d6fde8f8f3d4c7c0ff36fc97d
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL diff_diff-3.13.0-cp314-cp314-manylinux_2_28_aarch64.whl
Size 8.1 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8152fc793d07d4fadc06dc80f9fb916d01aae688050535cc790c805ff795eba5
BLAKE2b-256 checksum
How to use checksums
f167c95ed8109273ee1db72f00f78007580aa921983b5e488ecc3fbb3f41252e
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL diff_diff-3.13.0-cp314-cp314-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c03eefe040456a541a5817f9fb707a55441a3c296ab3306ce8410713a0aa1f92
BLAKE2b-256 checksum
How to use checksums
c2cd2adc0a6610e92a10bb7256bbd56813740ceaecd0c964fff1f75b46d2b76f
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp313-cp313-win_amd64.whl

Download URL diff_diff-3.13.0-cp313-cp313-win_amd64.whl
Size 3.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4409e5d7d7acf049dc5eadc70d9896063e47a7dcf6409e4653ed4894025f793e
BLAKE2b-256 checksum
How to use checksums
48eae38a0bd28419cf548ac868558161f1548334b486cb20cf57ffd43a927811
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL diff_diff-3.13.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
daca5f29f364d37c69af3416a8f7ac806b397bfc9d9b460ca37e439452e287b9
BLAKE2b-256 checksum
How to use checksums
c19ace4775ffefa79e9c7fd1d8ef233c5e16b366c70d9265e6b3ea2022fa7f01
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL diff_diff-3.13.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 8.1 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7466219a08cc104128892d7aa2b03e1ca61f743d1682fc4054d6081ea396b8cf
BLAKE2b-256 checksum
How to use checksums
511bd4f0b454406b332e8243c4e4214794d4e6312332da75dafe56bb5c577b33
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL diff_diff-3.13.0-cp313-cp313-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
222809f755881271f3c27e7b885f21fd2ca2aece0a62b81d5fc156c662f0ac3c
BLAKE2b-256 checksum
How to use checksums
8c1c66536fa9eb653168f371523594b95e0abf2202e82ec66e31a1e8ddbce8ad
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp312-cp312-win_amd64.whl

Download URL diff_diff-3.13.0-cp312-cp312-win_amd64.whl
Size 3.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
628acba6ba5853168766894491af1a5a0af5f0b851ce77de290bd2cff442063e
BLAKE2b-256 checksum
How to use checksums
6d7f7b7c8a9a46c21fdde20c519649c78f475e84292ca87c7096e4f96da395d4
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL diff_diff-3.13.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d20abbc1f623150e7255866a65d033a366205e1cb8ee7c130205586b83770b1c
BLAKE2b-256 checksum
How to use checksums
2f036c14546998d43eed609d446f7bfe27664414cb47b51fcdd9546de225592b
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL diff_diff-3.13.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 8.1 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
987874ce954e47116acd7c9b723d60fe8b574a3e85b2d0372ce1c264b19be483
BLAKE2b-256 checksum
How to use checksums
7ad7584af3d7767ed89e351e496cfff6689028698684df9d593b9b07fb2d88f1
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL diff_diff-3.13.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6d1756348e41e2202a0eac1229f882722639d7e4be24d6dbb8e5ddebd1c9eda7
BLAKE2b-256 checksum
How to use checksums
7d1faf838a32c9481101b5e35f98556e3691828503aa296d8945b498b1435343
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp311-cp311-win_amd64.whl

Download URL diff_diff-3.13.0-cp311-cp311-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5cb7f6d01658555cec0fbcd8e1807fc651a55f6470b659b191446b67423993c8
BLAKE2b-256 checksum
How to use checksums
dd40b480a6638d49a2fb8a9a5474afdbb9acdcee9730f2faafe44958edc1b566
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL diff_diff-3.13.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9fa267399b1884df70c397012b225ec154a861f2b50ba175ac389b29b83455b0
BLAKE2b-256 checksum
How to use checksums
6c7ef37e10b2acfc85799ea63eefca58527ef14cc343bf96fa90185636f367d2
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL diff_diff-3.13.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 8.1 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
de27ac1aef5bdecdacbe2f2cd5571e126bde1dd7deb06be078a1199ab814c18d
BLAKE2b-256 checksum
How to use checksums
bb5fd9ee32a21933de80187d4e3b84ba88bced67cbbe756fc4e170f05014fac0
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL diff_diff-3.13.0-cp311-cp311-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d849395b95d60f5015c16970c156a41cf2d42b432fb054a48fcb2a455a3fcda9
BLAKE2b-256 checksum
How to use checksums
8b90c362181ae2e036e51c8aed57f08085dc38fddac2642f4adda77857b4b9c9
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp310-cp310-win_amd64.whl

Download URL diff_diff-3.13.0-cp310-cp310-win_amd64.whl
Size 3.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
9318a29975014d94ae2dbf0307a3cadf83cd5a93a48ca2793199f876d079c8f8
BLAKE2b-256 checksum
How to use checksums
168386341406cbb2319972a6ea13c41d4fe2fd14f9f85675902ecf00e70b8798
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL diff_diff-3.13.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
40d7d45f7b20368149898994877d2b225d4d17ce1e3fc591d44487187a14c589
BLAKE2b-256 checksum
How to use checksums
e76bbf7dae4d2bde6c49458ff78088de529dd5095e15e832f552d0fed1a0f3fb
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL diff_diff-3.13.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 8.1 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0483c6a8109978359bd219b5c0a991ae6831588591b4fae175c549d75b651720
BLAKE2b-256 checksum
How to use checksums
67ac70994d5ff105c328cffd934bc0fb5e95efeac197ed8bdc51b9010883cbaf
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL diff_diff-3.13.0-cp310-cp310-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d73e1ef340362b44b9420037e7a26a06905ed96e5cabe28b29a56871447b092a
BLAKE2b-256 checksum
How to use checksums
ce2176ac0a9001911b91135b751fe7f11665d3793058626f67e0d596654a1e65
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp39-cp39-win_amd64.whl

Download URL diff_diff-3.13.0-cp39-cp39-win_amd64.whl
Size 3.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
963a7cc905ff77aa558617a4a167072ef7fa156fd638a1c41d662134467cc4b9
BLAKE2b-256 checksum
How to use checksums
60d0a4b91fdd23283e7be1a9b3ce8c95ee83c584155f23c902b5239b21c9aade
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL diff_diff-3.13.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
90c2500fa0ab8b5a06d857d1e91784413bb6f7749705ca3a865ac67f6c14b7fa
BLAKE2b-256 checksum
How to use checksums
9289b0e3f412fedc778dc9a361ea8779dd535ac3db3640db5076a89b88eb2dae
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL diff_diff-3.13.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 8.1 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e3547ce88655f8d6c9e98b204bcf03fccc23c8fe2a2cf5ed458453fc010f4f5e
BLAKE2b-256 checksum
How to use checksums
0d26189723fe33bf8b5f04bf3653921dafb6b1d86e1e10fd65b675b350b791cc
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 17, 2026.

Transparency log

Release files / diff_diff-3.13.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL diff_diff-3.13.0-cp39-cp39-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dddbd6ff35aa30bfdcbf516cd6d98cfff35dfb10c436a12a22082cdfe08946cc
BLAKE2b-256 checksum
How to use checksums
3a65c1c0b2b472988ddb7da6b95665e9756966f216a7145f4f31223471350b89
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 17, 2026.

Transparency log

Security for diff-diff 3.13.0

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

Select from 25 files

Attestation for diff_diff-3.13.0.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 17, 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

3.13.0 This release

25 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