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
  • 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.3.3.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.3.3-cp314-cp314-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.14Windows x86-64

diff_diff-3.3.3-cp314-cp314-manylinux_2_28_x86_64.whl (14.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

diff_diff-3.3.3-cp314-cp314-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

diff_diff-3.3.3-cp313-cp313-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.13Windows x86-64

diff_diff-3.3.3-cp313-cp313-manylinux_2_28_x86_64.whl (14.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

diff_diff-3.3.3-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

diff_diff-3.3.3-cp312-cp312-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.12Windows x86-64

diff_diff-3.3.3-cp312-cp312-manylinux_2_28_x86_64.whl (14.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

diff_diff-3.3.3-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

diff_diff-3.3.3-cp311-cp311-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.11Windows x86-64

diff_diff-3.3.3-cp311-cp311-manylinux_2_28_x86_64.whl (14.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

diff_diff-3.3.3-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

diff_diff-3.3.3-cp310-cp310-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.10Windows x86-64

diff_diff-3.3.3-cp310-cp310-manylinux_2_28_x86_64.whl (14.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

diff_diff-3.3.3-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

diff_diff-3.3.3-cp39-cp39-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.9Windows x86-64

diff_diff-3.3.3-cp39-cp39-manylinux_2_28_x86_64.whl (14.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

diff_diff-3.3.3-cp39-cp39-manylinux_2_28_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

diff_diff-3.3.3-cp39-cp39-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: diff_diff-3.3.3.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.3.3.tar.gz
Algorithm Hash digest
SHA256 ad3c3d620d914fe8b1d8572cb382d4d0182dc4c45cc47b606889d194c0857b08
MD5 75ac3573bb5fe31639857d7d04f3e3c5
BLAKE2b-256 69b18191be5f477ad5f4a01af063914d2c4a415ac4ea4317b8cc6a6468edb18a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.3.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.0 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.3.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 45dbff9d9589710f3a15afe4ace557681ecd71e021becee391dbf6d8791220a3
MD5 dbae83875f1cd575f06ac30182ade460
BLAKE2b-256 04b9d69bf9b20f926295a91ca9a88f3b26bcb85d70cfb005acb2cb7e7e7bc42c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6fc94f53e8338db04a2b437197310e1cec8c50ae9b8791ca2e256da993fa89a6
MD5 bb0246ba157898605aac075a9593fb50
BLAKE2b-256 eb55dd99a212e2c7edf23baa6f2a860360d591a5af8bc61730b8799adbbb2809

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9a71a4983eccad0d3bd9ba5d6281198e66ba5fe6033446db0f6b2e29cc28528b
MD5 31e42ca9512e7b414de6393fa9094175
BLAKE2b-256 f32a1a2ef8013dc66ef5438133a838e04e3df885f9b75e696d489b236ee03355

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7677435f8d24f4110a8b0a8f99937f9ec9b37c21f9f88899f29572bc29798db
MD5 158bfce12b062594935f90d54a5ccee7
BLAKE2b-256 5bd374afd40a0a3588f0c29d902b78586fab5454f421b4100195a489d178dffd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.3.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.0 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.3.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c3d91b57527503d97a85372e00581f9ecbe9a1d00f33683e44500690a7308faa
MD5 7482b4329eb29e7a348013122310c43b
BLAKE2b-256 214d22050b907fd19169fe44c1c0d9dd716cf87dfdfcea407120b97c4a006abd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6958a6532232d28095dc8faa2c57175b55a4467f4735b7b4b1b50b90dfae1b1c
MD5 61ecda793798aedb908fd55a3ddc6ba9
BLAKE2b-256 accea67ed8ebf44ee459a04795cd534ade7fe2051bceddd0f2001a22b16542f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 59b44a2e56abfd2c788b7170bf77a93c00b32a1a5a1f1a77f1b001bb1750d7cf
MD5 2446f505a21e746b1bfb8b014e1fe8c9
BLAKE2b-256 33894a873d06c349c062ca56f09c396faa19b1e09e204516d89f5741c46bbcd2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d20c0ded3a729c3f2b471b6dcdf77ae21ffec659683e7739404f268823ef19ab
MD5 e95f1dabb39ad5ccd77da0ec69a6bfdb
BLAKE2b-256 1b20db75c88025541a72fa2410c48547abe22efa763287bf078310bf494f9f2d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.3.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.0 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.3.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2c86591d6f69c454fc8b4baae8d4eb19d25cc685f63d5d86e5f64e52df1d148b
MD5 51db15b032748ead24525c9544e5a44c
BLAKE2b-256 e40bc5a95fc976eb741f4a90d61393093043b51b4ecde89f3b215fa114a03056

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f3d58718d30b47dde94e811d52bb93643988fc97abec99ed192e6e963a48f38c
MD5 c35446d3733a6e269725a4bd4d33be5f
BLAKE2b-256 0cdc36c4917a4492afd2a7302dcb757a4da053be4e4c0f5401edbe054c3a2923

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 175456c73a58289505787f4f8ba6d15f955a2503584fdd6cc796f48eccfb7d98
MD5 717b5075082c503f1b71f3043b14dabe
BLAKE2b-256 50bb88a1399193b6b0598c312023a3b205b61e4700eee9fa53642577dc834c4d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2468e0909e80f1c40a41a586f6490781ad2152bc3df41d80b3ce060124869ad1
MD5 eec24daad37944daf4c690f0a72cfc84
BLAKE2b-256 af25f2b7f08e8d44e288940d3389427eaf6be5ed0989a95a7b836974fc3284db

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.3.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.0 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.3.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c7311e7ace1acf67b414ea018bb90df62b5174265856daaa3d75f4eb78a58e01
MD5 7aeef7c17b020ac3c88991497127dc41
BLAKE2b-256 669188b3933750bca188b8c6da5afd96e194168b6b2f5fcb104ac0d6cd857164

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 937d8c59da989486fd7c5b258df264836fdbabe57c53e44e4317c78577419903
MD5 535208f1da00bdf91df87737e4c79480
BLAKE2b-256 2316196b9f2f549c50887e9a7fe35b77f6b412d98a1f1a54a3d047009ca682b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fa433797a767d908d27269838bdfdf0ca31fe935b29b60dda1f26a554dca7bca
MD5 b40840606d3f0a7f99fcaa31603f36aa
BLAKE2b-256 044372650581d7a57e775126e48bfa9c4b163d1d2850a29bcbcf7fdd1757db20

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf73e402112f8d1bc501b76e2e6cbe8518eed2e9fc9ca5c91dc11d127cb22a7a
MD5 bdeff4f4e1c7629360f8c75e8e562cbc
BLAKE2b-256 9b180985f6a3ce8fa4ed0d436526b993783442958cbaf96909243da89365624f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.3.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.0 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.3.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1d2ca5daf3abd39cef9694f058731f82b7bd20785b3fc880e4486ae79c988657
MD5 36caad493291923d772fd0e6a417661c
BLAKE2b-256 8204099b37de46ac240f57386362782e29910acee8be03ea1a0e250f419ce3bc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55ce0f942e4e76c39b88ae4c5f587bdf1b8134a50752e79e0eb440afaaad22e3
MD5 8f6773cc64cc55c1f4e202d1cea61f99
BLAKE2b-256 3af6645deb3d21574176a9e38777c7fc0ae92ef649ff3b9bdb974849ddd8db92

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d00f91f0cca652c108f7ed49553bb2939847318ef99473d32c42f24d2caf7563
MD5 8a4c7342793eae5c6b8957b84dd8ee5e
BLAKE2b-256 14bd3d8779c7b107dbe83192f878ac39e4b066655c6b2b47c00faa60eb534ded

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4b6311ae4e7bbfe7854c95fc2864f954f8de4e4c44c9498d3f87ffca5e52652
MD5 4ffa434dbfc55088ecbc22ae94dd0b22
BLAKE2b-256 db5807c0bac2810f0f20e2e41dcabe8623dddcc47fc00168fe0a7fac7dfa64f5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.3.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.0 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.3.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 30aec98e6b4906889d4645b324c1f8ab165f70c7b98348e9730041084c4856c6
MD5 929e1a0c3b22442c3e3fa4365ad9fb81
BLAKE2b-256 84d5f613dd62ddb02524295dac517b877f36c578fcbcb79fb64ad674501f95a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bfbefb2384e76a814852b794a66b5facf0160199b2e17214b3fc534ac25b9395
MD5 d30c37aaca5b41a39e9a0a3cfcc9490a
BLAKE2b-256 d84fce2bea125e84e672697fc3cfc5a715a4bc30901d0644fe9d35dba4095349

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2cc14042cbe95adaaac8fc037c2e182162e112cb9b295307515fa4483e89eb47
MD5 c1f49d57c2e2f32dc243f63f256a2d47
BLAKE2b-256 2279bd5738089edf0cd314ed1d9f86482fca4ff3273470faf3c4b7ce230cee4a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.3.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a9578e7fba51d5c411ecff3d12c602d31d46812c6b0ad4d3e40228fb54999a9a
MD5 cc2e486bcf596409947b97242a491313
BLAKE2b-256 2a9434d9d1a24f6633e05645b8bc65ff843cfb2638a34d694b6d6372030d14da

See more details on using hashes here.

Provenance

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