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', 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 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
  • 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; 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
  • 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
  • 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
  • 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

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.7.0.tar.gz (1.5 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.7.0-cp314-cp314-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.14Windows x86-64

diff_diff-3.7.0-cp314-cp314-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

diff_diff-3.7.0-cp314-cp314-manylinux_2_28_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

diff_diff-3.7.0-cp314-cp314-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

diff_diff-3.7.0-cp313-cp313-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.13Windows x86-64

diff_diff-3.7.0-cp313-cp313-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

diff_diff-3.7.0-cp313-cp313-manylinux_2_28_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

diff_diff-3.7.0-cp313-cp313-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

diff_diff-3.7.0-cp312-cp312-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.12Windows x86-64

diff_diff-3.7.0-cp312-cp312-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

diff_diff-3.7.0-cp312-cp312-manylinux_2_28_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

diff_diff-3.7.0-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

diff_diff-3.7.0-cp311-cp311-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.11Windows x86-64

diff_diff-3.7.0-cp311-cp311-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

diff_diff-3.7.0-cp311-cp311-manylinux_2_28_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

diff_diff-3.7.0-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

diff_diff-3.7.0-cp310-cp310-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.10Windows x86-64

diff_diff-3.7.0-cp310-cp310-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

diff_diff-3.7.0-cp310-cp310-manylinux_2_28_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

diff_diff-3.7.0-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

diff_diff-3.7.0-cp39-cp39-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.9Windows x86-64

diff_diff-3.7.0-cp39-cp39-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

diff_diff-3.7.0-cp39-cp39-manylinux_2_28_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

diff_diff-3.7.0-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for diff_diff-3.7.0.tar.gz
Algorithm Hash digest
SHA256 36eb8256a6aa0b37ce092a7b98d25eda2c0e562daa534c9a468dbfe4aa8e1cd3
MD5 9511a99cf98359f3ae6f89a0929c2852
BLAKE2b-256 9be0f2b1d419a4875c296fb4ba5c4fbfde12643e34cbfb951228534ad297388d

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp314-cp314-win_amd64.whl.

File metadata

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

File hashes

Hashes for diff_diff-3.7.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d066c127542ab6cac687a4a72631d0d031f3f0a6422143c3c21bd9ae1790e290
MD5 4d95b0a0a79d58e823462461444bbdea
BLAKE2b-256 81f5df2d0216977b1d2210472db07f4b59d70b2dd81ef7b24779b691b4ebec7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a14ed6aa318488da509824429117958ffe95d8d61f3ea8b9ce934dfaf03a210
MD5 2c817ecae1fe3cf3043e1dfafea2d704
BLAKE2b-256 b5c33831f180583c8ee256462a6299380f90b1ebb8125e10b0cccc080e81a64b

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2776ac9696a6c580827d7cb39cc8a7edcfe9ca8d9be46167c7283c32b0984938
MD5 2d508314ce0c4c8577944a0e22ef45cc
BLAKE2b-256 938c072eaa508e394b5bfea1ec5720477e0148fbe2ad4cccdcf083cdd7b52e1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23d1515627a94dc45771e4b4327b32117f9fd035f19e6b9d0d948a4cfb96bec0
MD5 5b43b85247ee217bab3820361387c257
BLAKE2b-256 15252f6cf041934786b663a1b6872538745a3d1442ed37fb5a150bd12c84a00b

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for diff_diff-3.7.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ae652d4cecb149dcfb29722612a63a5d6a00b6a7136c0c9405fb733f6fd650d5
MD5 b6c862dc1c5077c2fc45e23d9815e549
BLAKE2b-256 92f5a517240480b971257385eca55268f8e1ab2785b938deab54b6659194f511

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bb7603511ceddb95eef7ca0b434da82a5654e36e55ff9f276f14ecc1f5a63ab7
MD5 cb95ff3509376b93a2f633e0a698f334
BLAKE2b-256 d2dd18417172c8cd66fe2b65f5f7501bd9add10887fdc9b62a85455d80027a6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3d5670b3ab981ff12173d7bfd4108af4c6fe5a81c98ec4b350cb1c77584b4370
MD5 6ddde68def9c285706ee6b586b028832
BLAKE2b-256 86bb642c01652d9dec29cf733731e3e8b59042c9f57903172fb9b46fde1f95a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5aa727dbc79085c0d3219d7a0a291aa82eb96dd51e498456cfc3078b7c34b842
MD5 633c5431f293f3c65a77084a800f2041
BLAKE2b-256 cd81717d32a879dddde0fd8a6682f76e5f12e0bc4f49eeae8d3bfa7664041d8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp312-cp312-win_amd64.whl.

File metadata

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

File hashes

Hashes for diff_diff-3.7.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 73e6712962ebed2771a6131d9ab9ccbe67cbe5b7f26de099af2e69854c59be4b
MD5 c3ebaf609d1f61b1fe315bd0d39bda90
BLAKE2b-256 05e507bc0c967b3ca186e2e2e12056a4bd17fa3ff8a73c57478f29a138313ba6

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 194d2e831ee6ab9278f50bb47624c6ca7116c021e321042730360c72435a0c2f
MD5 62444f1ca1829d16f5c7b7a31ad91ee5
BLAKE2b-256 7846e5c2629917e9e03d4c0397bafaac6a1ba461da98d623a22b7c1590f7375f

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e04546f932959bac8451069fbc559991027eb5fcb861ce41fbae07e94af0dbba
MD5 7bdbabbd71fa355332053106925724f0
BLAKE2b-256 897f98f1cb3a4935f239cd07977792fe4b60d7ce49bd7a6ad5b6e33997bb3537

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1bd54ec3ea9fb54295886c043f5d6e4a11da78a723ee940814f3b2d1a3eb17c9
MD5 f0cc8e7838455a85952519fa5027e128
BLAKE2b-256 bfcf87a089a5abf4fac76be1d91705ba88a4d24203a2afd41e796369004716a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for diff_diff-3.7.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3afdbf2ed008525c9118d583da4a54d7e6a88a95600b9f711ad068814efd1dda
MD5 764777af4e838e675f8a72482d4a15f6
BLAKE2b-256 f58725a45d3c864f4b67c9ccec47f37dfdf03e824b757baa8dbfea8d172c376b

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98c7e92ba96cd98ae2d54e746ed0960eea6e6cbb17a728e7eb68836dffaef82b
MD5 97d3569f72e6b5d04746d189a4f2e6d1
BLAKE2b-256 3487a96e2c239c8d0e618001761234f0ccc22b5945408b65b3915e292a7cf007

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6d9be8bde07bcaf9dc481d1ef83496465745b8f129c3cde1f7d127900835ba27
MD5 40ded2062bc6061efbe9b39113235a31
BLAKE2b-256 561c9aef97f249e5b942a281607404b019eab42f9db1d4cdafceeff37bc6329b

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02944698f6c5d84f9cf6f3d8c2e509e6f59c792fd47ddc784919489a832dc248
MD5 263c588ecafaf3aba0757e99399c62d8
BLAKE2b-256 0db13cffdd38451299c13c4cc30d830bf95211d3de50dcef87297ea5639c3349

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for diff_diff-3.7.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6537a876cdc0a2cc896c28f9e4348192af0bc2e6dbfc8108725051a573debf1a
MD5 e39fb1ad458d86d6f2cf5d792312e0fc
BLAKE2b-256 5cc50a3ceaf677b611b3925efc979fda2db7a5257d2496a04dd6a9d149c1576c

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea058acabbedf48b420d626c977b9bfdbb57b991a2243992a985b35b87799fcb
MD5 22a50ff9602ae7211764f08b6843b812
BLAKE2b-256 ecb47129abfcd27301f693d1a22b8d95d0cfd891f46c90c147b64a2b8bc44dc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8bc76f2bf538ff971c521eef25880ac8a27f48920c36aaa4363fee162dce6a40
MD5 4e4d59fffad49462bc07e8e2fb1cf62f
BLAKE2b-256 f6d5ba0d5f447b46bf59b84c7978085eedb07c0777b807bbfe6f8d98c9a77425

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c92084360f481e576159271dbf88a05a288f9393abaa0f289930265c2d6e61d5
MD5 7e4eb9b69b5eef8cda956902ef0b0409
BLAKE2b-256 47846e597bdff717786bb091014403cb9282d9d98ceb419329c13a016f29343b

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp39-cp39-win_amd64.whl.

File metadata

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

File hashes

Hashes for diff_diff-3.7.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8292d531b12eb0115921659b39282be867bc2f3c1ab737ec998185655329185f
MD5 864b039773777016769be7a6838c5e72
BLAKE2b-256 6e680f2a9a844f83bd7ed4b318d9eeae0c8530f804634226e98769871d189345

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f83886a82bc02cc2b8e74f9fede76d6a0b4ff381fbe946864977d88d9de7b0fb
MD5 22c1dbc60f67f5c7e47bed61c03531e9
BLAKE2b-256 c546ea979e566fd24c38a9de258df7925130e90140169226e6ccd98e642ff048

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fad230a1ee387ed79c85679624d284cac2f45b7e45f970df8a2c5ae36221aca4
MD5 c5750b21bb045e3e53fa3a4939c64c3b
BLAKE2b-256 55f223c485333f6988fb51bfb5fc14ed0115b4f2c7275a870cf11169c31a64f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.7.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for diff_diff-3.7.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4050c25ba63dd93954ac916ce3f2286901bd3fb0353492d8822efd9adaf0c4c
MD5 9cd8ca64356284861288205106846c68
BLAKE2b-256 8488c5649b5a6ce74945d9af6c031933afab44cce9bbdd29551252e8ea7c0646

See more details on using hashes here.

Provenance

The following attestation bundles were made for diff_diff-3.7.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.

Release history Release notifications | RSS feed

Supported by

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