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; 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
  • 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.2.tar.gz (1.2 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.2-cp314-cp314-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.14Windows x86-64

diff_diff-3.4.2-cp314-cp314-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

diff_diff-3.4.2-cp314-cp314-manylinux_2_28_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

diff_diff-3.4.2-cp314-cp314-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

diff_diff-3.4.2-cp313-cp313-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.13Windows x86-64

diff_diff-3.4.2-cp313-cp313-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

diff_diff-3.4.2-cp313-cp313-manylinux_2_28_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

diff_diff-3.4.2-cp313-cp313-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

diff_diff-3.4.2-cp312-cp312-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.12Windows x86-64

diff_diff-3.4.2-cp312-cp312-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

diff_diff-3.4.2-cp312-cp312-manylinux_2_28_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

diff_diff-3.4.2-cp312-cp312-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

diff_diff-3.4.2-cp311-cp311-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.11Windows x86-64

diff_diff-3.4.2-cp311-cp311-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

diff_diff-3.4.2-cp311-cp311-manylinux_2_28_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

diff_diff-3.4.2-cp311-cp311-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

diff_diff-3.4.2-cp310-cp310-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.10Windows x86-64

diff_diff-3.4.2-cp310-cp310-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

diff_diff-3.4.2-cp310-cp310-manylinux_2_28_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

diff_diff-3.4.2-cp310-cp310-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

diff_diff-3.4.2-cp39-cp39-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.9Windows x86-64

diff_diff-3.4.2-cp39-cp39-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

diff_diff-3.4.2-cp39-cp39-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: diff_diff-3.4.2.tar.gz
  • Upload date:
  • Size: 1.2 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.2.tar.gz
Algorithm Hash digest
SHA256 e33f78cd3f69bebf05ad9f0f31a667556b8469f136ce86e9c2f56b0cb537d6fd
MD5 8e11c7431e893802f98199fff31d13e0
BLAKE2b-256 e2c3b0610a79417ddc00079e4b0e23aa489920aca104eb3102d5c69305dc1033

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.4.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a104b992cb3bcb4da83adc566455d76dcab9f2dea04ee784fe60c1cec0d6daa1
MD5 489c512e484f1a73c6f5446e40b52054
BLAKE2b-256 57016eefea5e12c655e5dcc892435e298a000d224052fb9141ba9de162f9d062

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5ea586907666ae5a77d1cdae9510fdc254e816f553632536eafb506ffd6ec8d
MD5 6f32eede024aa9c8668a46d87c9b8c8a
BLAKE2b-256 254789fd2c5a2c5c917202899f02719c14d2a4a8d4e580b11cde2d5f14c9c435

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d15df32164a0f5c30698c8862848265a5526fa159db95775348895a0df8ea060
MD5 5ce32f84832341ee5cd6a32cff3a0582
BLAKE2b-256 254811f79e10945e269798d78d25b10cdf97f022ceba880519d59b117c149039

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7330a088c88e9b1b3beaf1db9d37accb16d51c5e5f4eeb3c41638b1c595f0e48
MD5 a32b67f37b92624f050c36a8e4992c82
BLAKE2b-256 838a920ce6c81224e743d463eb0f597993cdd55fc01d926003a812e1faf53884

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.4.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 473a0cc2fc1e0c4b62389d584648786f249a6084a981b03424cedfaba85b4243
MD5 ee41052a0672938b3fd1c754762a0717
BLAKE2b-256 5b51200b4f4a6cae8db42b328ebdd74e1cf8144f17ad2c5d0290473447f7a16a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 079824f2b25c80fe2c0e873c5653909349925586910f3227edd91b646bf5f64d
MD5 b03f7b4ac97c87ec159bde30c6e9677b
BLAKE2b-256 73817dd0382efaac07122cd2606fce910e547f762855677ec90b85b01d9d90df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 60f083973988247263cf7f1a726592682d97c5e9a2757c8d97f9456cd996c883
MD5 ad67b34d53381a1158fbe45808c0885a
BLAKE2b-256 d89552134f2596fe10e22307eee1f238c3a49fa7ab64606bc5c79e7414aed13d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58a349920beef989457384c685491ce1aff76d4e03b099816fb4fca32489f698
MD5 c8936d13362e91d3f7024ba1adfef22b
BLAKE2b-256 fdc707d5d09e7d71b4e9e66f35142d6424474470afca830e611da63e866cd40b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.4.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1ca988a91ef4180225ad9e380366d24535e0c55de0f669d47daa6a8c92a11ed9
MD5 8de36bed1f8239a027bb97d1ee0475ba
BLAKE2b-256 23e7089c6ec0e92e5bb650f521de70208319ade3895f476128344fdb6e88a393

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fa90cb1ffd5ac169c2128c61341365435a69c1d4730f54e7f5a5a92f65459a9c
MD5 eea13ffffab24edd1630eb220d605c2e
BLAKE2b-256 bf607e6f446975b54f9754304225ef5d6e27d722ebec2c5e7f769871fee2571a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb261e194e37868993e29a5775181a1fd1c1382a7f55afce4777aa592dfbb704
MD5 42b7beb5b00f27be54d0c22072dc1d82
BLAKE2b-256 916a4e161711ff2f1e9382a3dc96738684619aa6e38da6ab7d3fc24fe22c3b76

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fba5657a747bf247de3326fd06343811e7ac85bdc44aca3b0788ae6bd0cec4bc
MD5 44e2f37ea748f66f566647c40ce5eb73
BLAKE2b-256 6e116583b42a20afffcad6e8589109e1676be7944b7a7f8f0cfa0a3645965864

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.4.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e533c2fe5b5a6bea6b3423ba32d170537ee82b6bef4b45b9356f7f30d137ca16
MD5 3ac498966bb4109305233841abd13aef
BLAKE2b-256 75dc5dc02fcd04aab7a3c98ffda8ce7fa6b9a9767972fd77a934308f18effbce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 294a7af89c35913560a7f1125888270723faf138692af72a62825f35f57b29b7
MD5 9d1c7641098ae432fa29f81aa785690c
BLAKE2b-256 50580bb4855b018d8d989bd0f97b5d160eb10cce39500889fc0c8ed1cb53df92

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f34f851a7e2676f3783e84f1a6e805c460f7bba8dbda5461ac7cf8780191196c
MD5 2aaf5875f14859253db38b9ad14612ba
BLAKE2b-256 c2d0e304c82264827b66d768e6d2066af3dba3da72b9824380e45157c9312ac8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f51d31db2307bd79b17c107569deddc889a7e234f7617c0a5c1ac3e7fa8ab78
MD5 2ce1e90cf69038ea96b48fa2faec17a6
BLAKE2b-256 c77ed7904628b5287288cdc71ade740951d5bbb80e84663afeaef165de449d67

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.4.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ab9383060e30037ca10431f99c9feb7418cf76a0a0c772e00ad208347e3b44b7
MD5 68ea21dff5d46650a541abf56fbfd66a
BLAKE2b-256 2568c89f857e15af386ba38b4d17dc8b434c100fcb2e6153c97d265ff59b360e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1fa6ae463a39ef02addf29c78a3d81ef343cf43cb1d0432f22b7e805e64fde4c
MD5 646ad3ca73ce993120ee31d8bc446efa
BLAKE2b-256 aaeebf4692a94300eeffaff0c78efe530127f621b1096052b0831d71ca6c54e8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1211046ab8ff64ba35a139a7c9af547b2a6377abf75d7767d7ea2c9c1fb7e5ee
MD5 84dfeb71219dd21cea95557050ba140e
BLAKE2b-256 f756be3877069760101cf2a79a5bce3fa46d26dc4e94168e5be2be59b8037ab7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3f7267532c6ec5c3ad53106a99f1930fa5b6d4e37d59ff4df0b732622d3cb4a
MD5 e36e58b9186934dbf2a86d4112a6bce9
BLAKE2b-256 c8688cacec3a4956a9f6f30c7410be5463a4106c5f57180497a11fe0fb1b85b1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: diff_diff-3.4.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 82bc863493cd34aee675bed51d1cd37caed5916827a6235e33fb67a51278deaa
MD5 9e2e1070a28fe15e8f068dc557abe973
BLAKE2b-256 e43767c18844ff520ead5b7ea51c62037c2840c11e4f2ed441922af880d71c87

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b5846d28a80f91ddca87e9e9929629c74fb82d563956520957bad03eb95f3c7
MD5 c42606479cb24ebbc4ffa16a5181c1f3
BLAKE2b-256 e9ad31cfeeab5fd20bade6819c54001ac5bdbe8aca2f248c7524bccf563fbd57

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 19f0fed21575fd5474af99434974a0324a4b5bd14cca5db5f3b91c9cbd10fda5
MD5 6fbf92774e637654155f2e12468c6c20
BLAKE2b-256 e5280bc69c85af332f08942dc1762d26a916e579fcd564574f7485bda1e300c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d5605776d186ab627651a4c5d8caa5b2ee3ad8dcd48f21cfcbf583c641d584b
MD5 539504ea9908447a214ed6d28b2624f5
BLAKE2b-256 bfb856358ec41cb0f594f5f8167aef5a0c3959a22360c17349fe39bb7545a735

See more details on using hashes here.

Provenance

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