Skip to main content

Difference-in-Differences causal inference with sklearn-like API. Callaway-Sant'Anna, Synthetic DiD, Honest DiD, event studies, parallel trends.

Project description

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', time='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 result - 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).
  6. Sensitivity analysis - compute_honest_did(results) for bounds under PT violations (MultiPeriodDiD, CS, or dCDH), run_all_placebo_tests() for 2x2 falsification, specification comparisons for staggered designs.
  7. Heterogeneity - CS: aggregate='group'/'event_study'; SA: results.event_study_effects / to_dataframe(level='cohort'); 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
  • 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 only library option for treatments that switch on AND off. 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
  • SyntheticDiD - Synthetic DiD combining standard DiD and synthetic control for few treated units
  • TripleDifference - triple difference (DDD) estimator for designs requiring two criteria for treatment eligibility
  • 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.
  • StackedDiD - Wing, Freedman & Hollingsworth (2024) stacked DiD with Q-weights and sub-experiments
  • 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
  • WooldridgeDiD - Wooldridge (2023, 2025) ETWFE: saturated OLS, logit/Poisson QMLE (ASF-based ATT). Alias ETWFE.
  • BaconDecomposition - Goodman-Bacon (2021) decomposition for diagnosing TWFE bias in staggered settings

Diagnostics & Sensitivity

  • Parallel Trends Testing - simple and Wasserstein-robust parallel trends tests, equivalence testing (TOST)
  • Placebo Tests - placebo timing, group, permutation, leave-one-out
  • 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
  • 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

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.7

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

Project details


Download files

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

Source Distribution

diff_diff-3.4.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

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

diff_diff-3.4.0-cp314-cp314-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.14Windows x86-64

diff_diff-3.4.0-cp314-cp314-manylinux_2_28_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

diff_diff-3.4.0-cp314-cp314-manylinux_2_28_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

diff_diff-3.4.0-cp314-cp314-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

diff_diff-3.4.0-cp313-cp313-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.13Windows x86-64

diff_diff-3.4.0-cp313-cp313-manylinux_2_28_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

diff_diff-3.4.0-cp313-cp313-manylinux_2_28_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

diff_diff-3.4.0-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

diff_diff-3.4.0-cp312-cp312-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12Windows x86-64

diff_diff-3.4.0-cp312-cp312-manylinux_2_28_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

diff_diff-3.4.0-cp312-cp312-manylinux_2_28_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

diff_diff-3.4.0-cp312-cp312-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

diff_diff-3.4.0-cp311-cp311-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.11Windows x86-64

diff_diff-3.4.0-cp311-cp311-manylinux_2_28_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

diff_diff-3.4.0-cp311-cp311-manylinux_2_28_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

diff_diff-3.4.0-cp311-cp311-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

diff_diff-3.4.0-cp310-cp310-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.10Windows x86-64

diff_diff-3.4.0-cp310-cp310-manylinux_2_28_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

diff_diff-3.4.0-cp310-cp310-manylinux_2_28_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

diff_diff-3.4.0-cp310-cp310-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

diff_diff-3.4.0-cp39-cp39-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.9Windows x86-64

diff_diff-3.4.0-cp39-cp39-manylinux_2_28_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

diff_diff-3.4.0-cp39-cp39-manylinux_2_28_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

diff_diff-3.4.0-cp39-cp39-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file diff_diff-3.4.0.tar.gz.

File metadata

  • Download URL: diff_diff-3.4.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diff_diff-3.4.0.tar.gz
Algorithm Hash digest
SHA256 ed7e620805cffe6f8a990593f83af6cc551070f40da1a85bee78b9f7c6ae2033
MD5 38ed905053fd89391760a3383476cd94
BLAKE2b-256 5918102648098dbb33c74736cbbb3be94021b1518c2d21e6e2c82a896ca112ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0.tar.gz:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: diff_diff-3.4.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diff_diff-3.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5b8f713cbdfbb709960a8be4c70aee4ae4e0970311a6d88df1bd91cce9c693e3
MD5 2f361cf36cf25116128a420c30ef14a1
BLAKE2b-256 91e69ee77d9045d9b54e9b649b77541cb524ffd99cbb6def71c1f21969cd0097

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10022e87844cd28a0afc96b48e7a5245014db36a6e31281941de0fcf239b4cb3
MD5 9c58ad1a8225b6f81e96890d3ca45bbd
BLAKE2b-256 0f43da25f72f5087db0c6a327ece835236ff524623977229b607e0e208231f04

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d4682d6f65e0ca114253c0bd0e02f1174d4a14d6da27f33c634473fade8aa633
MD5 29363c21a9ee2521ab656355aa28c905
BLAKE2b-256 ca162779a58b5ddeaad9ddf91358dcf08683152169e34db23f0e9156780d0f81

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp314-cp314-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a704619095bc9ba4354ec3e3616147fc77f2b22443b317ecacbabacef8c0eee
MD5 ea9d7badd8b189d3783a4a454697c568
BLAKE2b-256 66c6ee4e409a5a984c8b45e55d8cc7ec824d0395756d08eb4455d65add389c3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: diff_diff-3.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diff_diff-3.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ac521c36fc2b54c86849f0dc2a69b0c3300abb6186a3664c04e95842dd069035
MD5 f25ad5f5b5896e427c6684ae7f00d52a
BLAKE2b-256 b3ff6b8ff41ce4107dcfe6054b0de2200022f5e070221ade717c24e91c6b5cae

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d462c05668bc9e76abcef5c21adf0e57af3ba23bc00f57dcf27463a7b0bd887
MD5 6a20f5587c9f33643f4515a8ec081aa8
BLAKE2b-256 94715d237e55a2240661ae150462af79535fd8e0b1a2f8faa687b76ff11494df

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 989997bf5ad1ee565634cd8d1ab21be497ddcaf9e390ccb96db9ab24342f9b65
MD5 2bbdb7b79dfbe60b2cad420d39f562bf
BLAKE2b-256 a29511ce5bdcfa3abcdd1727bade96089ef1ded13e166c7f19fb62add68899bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e831dc58c1f822e30417c3be23779b97857a555b3039e12cebeffed4ab5899f
MD5 560c1c780353a3ef591dcacf89f39627
BLAKE2b-256 e99919dc6704089e602f480ded4d29283d53081a1b6189e02d9a5a7804e94af2

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: diff_diff-3.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diff_diff-3.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1bafa741d0a961dee77fa7db91f89dd79a93bf8361a4882bf2227c461cf4dbb8
MD5 a14180de0ec87907c275c76eaa554ac7
BLAKE2b-256 04b0a251062b5f5e3692ef718a26d66653a3756250621348c64c20882710c5df

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a050b444f97dea6a37a3e7307c3d2508c09e67e23c46262848efca07412fe96
MD5 7130c418675b27419c937e488f568031
BLAKE2b-256 0e7c565c3ebe608bafb0800bf20e85debdd8a14bdcb2c43d11d83d0bd8614540

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b01b718bc5924fcd44efff07192d274988cc259a55c89f019c3b8f8c703bf709
MD5 2ecf72adba948045815065b3bcdf67de
BLAKE2b-256 f959262eea4253c9e55b1d2bff8fd6f92842b56627b78ed7b251ac9efbcbb499

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a66668f68cf66dc303b0fdc503aef80f5cd4bdf44900c19e6e9aca4946a67e7
MD5 2dee44c0c6be2861bb7c932cfa74e218
BLAKE2b-256 dadfb8cb2d16c53695615d80ed3526893166d1b08591c6adcabf608330c1cf1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: diff_diff-3.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diff_diff-3.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e173b2607fbc7035d12fec76f1e5a4ffdd5067c27f69fbd4f9a5bb0a03a0f774
MD5 9980434aed470d8f5fc8faa3d2243a2b
BLAKE2b-256 c6cc3c7d4b96421be7c01263164439c75f9b8c3c85cf92ee877005a17513777e

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 63e13f7d9406e40ec8fd16b2db6eba68c79f2626882b578ecedc73a9d5452a24
MD5 32a919162a4a8a0fe4bea50ae5f48ade
BLAKE2b-256 b652ec95222017239006bc344ce105d91cca7608e0fadf293ad9cb0ffbc039ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 60759398934771bbfc9f8cae33bc6dccc526dfe84fcaa63635d8bea1693fda1f
MD5 7eca05145ef70177123fcd62e2919d2d
BLAKE2b-256 981a7b7b6009b383c919ac9e0f4f7c8e5a12eb9bf756941b17e57251410fef24

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34a49715c2daa9d6cdcfc3ecf0bee521a0e8baaaac7af3b459a97abc78b87451
MD5 ef7574703026d454127e3f83f0ff61b0
BLAKE2b-256 7f339fd8b6ebbbf9104fea6a5bd4cce78fc503588979f75616ed990c6b5014ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: diff_diff-3.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diff_diff-3.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8dd4a70465ed7040bd7b2b68aed50f2b5575ec6b094e334f62a6e0b5ee95ed43
MD5 0ecc1e99075d35c3b6f895317c498fbe
BLAKE2b-256 82c85e79f0f1736eaa3825f96a1a8e803ef98c35ffe8311ea678321822ca60bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5dc7adee2840a7ec5cb6bd65f12fa467e1a9111654360752c9e40d5ec0ae0299
MD5 f37a024d04771b35925eae66b0db836a
BLAKE2b-256 1e3b9aa8806e3d562487d22a19ee33e059c51bfd8d89a4384f67e43915a1d960

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1c001da8de2e2e914c3b4729b97ec12624bda2efdb14de8233a093c35bc1c9f1
MD5 cd08d4ddad0c759944e454ecb06282e8
BLAKE2b-256 e2fb69fb98c36da88ae79179c8400458673b32f8f4863314964e16a9d5cdbdde

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8495be3c561de635b265fadaf3488ec78fe6a133498c60bd46d65ecf35f44830
MD5 2b87ea87103be7e94dd84cd1f4748898
BLAKE2b-256 a469df7e2a4b7fce605668d928f201d8af9e7522874911666f27b0240c271d9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: diff_diff-3.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for diff_diff-3.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 354e40eb901d7d9246764ef3b951357d445b1603f7cd8504ffb5609cde52499c
MD5 4a3935a433720260658137d443cd9b4c
BLAKE2b-256 c2cf2a3f242005cfccd717d13acd7e70c4a51379e0c8ecd974e6c19d0e5f2115

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f3e923de3eb12c97a666a8d02425f0c7c77f1e7a5680c6a1dfd191c71adeb387
MD5 c19aeb9635f5f4793e981df2ef385285
BLAKE2b-256 2f62aeef4a393807c15a88f7a76776df41ec305749f517c4cce4d6256e50e8cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e207140af2adfb9ff0b48d67fe17ea58d0ff93f2c6419b084f433aab6a4f7b22
MD5 61a89f17039675558cbc38861c7caed7
BLAKE2b-256 7cfab650e915f8e61d1796afdb3379fd08762810eb31535d9d3d909eb830a99c

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on igerber/diff-diff

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

File details

Details for the file diff_diff-3.4.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 523fe36b65829a7e9c9359151c27641fc01920319082bfcaa4a958551a9abd11
MD5 1cab2ffc2707bde12cf49b8d2c1c98e8
BLAKE2b-256 ad07b45ff4da1a508ed2c424889e128899d8c02568371239b98e4f385ba169d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.4.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on igerber/diff-diff

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page