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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

diff_diff-3.4.1-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.1.tar.gz.

File metadata

  • Download URL: diff_diff-3.4.1.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.1.tar.gz
Algorithm Hash digest
SHA256 67cce6dedc20da0e56008ecfc6be1ac8e50d584633abf3148f08ed7444120aa8
MD5 6ed7e9937c0c186b1792d1a2273046d8
BLAKE2b-256 14fc6faa149ed842926a21b8b9d06757512835d1ab008a45d5b3a47817fa16b9

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for diff_diff-3.4.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a59c7d4f7661bc11d585dec622c117b3c3c783f3cfe166d66bcdd7d27191a58c
MD5 1230480c82d92622f72c0a2a7f58fc62
BLAKE2b-256 f55b3e4391e430f1021865f946eda37e00a453c814dd23d083ec440049b31bdb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ba23d99c3fab9db74bbef4e53a19e2f184a47b212d6c46c02f8d65cb5aa3167
MD5 026c4b9b48cdaf9beb181afe4288d098
BLAKE2b-256 6a2279f0f68c0a5c501367ba97a6e62eff10417ff9b20a3a9967b95385a955a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d06c4c1fdf186a3cbbd38b5e831535d051e683146c9363de2c6804c9101ea55c
MD5 1768ff16f3fc213b91aecca42fb511bd
BLAKE2b-256 542d56ae81e6477806a4252e37bc889c9882512bfd5c5cb5b82c067a5a985963

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4363faf4099c693da5fdc89e44d521044ef038e9cb3303cb79bcd279efe7f1ea
MD5 adea4ad3be495f5a95daea2a7d6e9b72
BLAKE2b-256 fd0d26b8b960672972603f7a9b51954b3cbeca2d2986186518427e1e22cfdc67

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for diff_diff-3.4.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 20868820c8b4bb4649910cbe16c9e8a96b62c7c4925693162753f29f51f2b703
MD5 92960791fb2f59e3899ac8533d59bfad
BLAKE2b-256 8332d3729022a4e05a5b70cd0840eb4d4a029cd8e8b3fbb8613c3cd717cabb55

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f348b8908a0fe94410314c3c15852e4ac98a01d51ef5e4ef5866e041fdac699b
MD5 21aeffcb99970b506d0c31f1fa5d38e3
BLAKE2b-256 092fa171833aafcf687990d3bc43c228845a198aa7785a245871a016282a874a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 219a5732ee9941e8e72e76244036a479501fbd6e3e55e4469156838d7f19531f
MD5 21fc4bfce5a0ed09a2077cdeef3d1a71
BLAKE2b-256 ab20e132a708e7ab333fd632911265c3d64e27dcbb220846bdc40118cc45e622

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 000c3676ccc9b050e29ce6492b81bff3ade87aca376ea589b0d5e71ff1f1fea0
MD5 ad16caff49b9450620ef7e2329f912c5
BLAKE2b-256 643e66f9805a0b7a39d5f9c70e85af4457a91fda3c6cf547db9a1fc6d01d33f0

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for diff_diff-3.4.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4092f37a5f942e488ad49b3b9afc57928faf5b343112f0953512aae7ef884994
MD5 70ebf0e5a0d0656f40b11f7a19cfc3ce
BLAKE2b-256 5ab680eced24a81aabf444fb1d8166c9cf6faa2bd8dc2b061abdb58bf1eb3de3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a50ae3efc4d09884f6cf27936ad4a6aeda2c2aeb9bcbecb219a5ac920324a853
MD5 c81c0e091e8571d9d2beb683ec479a05
BLAKE2b-256 fe8dd7dd7b515622e52bd37b29b74d4ad00cc2ddea0d25e85aa20645edd85d96

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1ac4f92d1cd13b1dd6dd34da0049b05705db69fab3b5acd635d1fc6e78e28ea8
MD5 299b26c9f0056992300173351837866a
BLAKE2b-256 2d1afe84feebc435da1578e7788987852310d6e776761a30a765b85f56f34e9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42523caf20e0563d39ff0225c6d17939af8648f96f16efb501ea00ddc6acbdbe
MD5 40692c9a94650f4a12aa38776d4e91f3
BLAKE2b-256 a0f0583968804cd7272e6fb8300634bdbedc7ea30513afcfd52b0d90174ede9a

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for diff_diff-3.4.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c20ab662ccebd1e1255afd1cae792244bf60d6539eadd60358b05266dea36d99
MD5 0ae92e23b09748fe4073d3493c6d1304
BLAKE2b-256 e9574baa36765e47afc1c047b2eae1c8abbadd22779137b1df91f5e0bab53ac1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8217332bdef72e953634551caa80103ea9791496973e722c66a171c7e3ae75c4
MD5 6189236fdbfa1a018b75bfdaf8d37893
BLAKE2b-256 394538360282b908f64530658ee05637c0a4497a0d16c476f743d784ed120bf5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6ae48a8739203bd5de70a7eeb41db1caeab3c16861a2659d55861f8af76fdb3
MD5 01d2c3ff0b9c4ad65a7937e8a41314b0
BLAKE2b-256 2c4292f689505b98d685c2c9b161bc41cbc0fc763fa45287a33f694f532c66c1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c69ebb32577012b0d0620e52e52ae22e20dca3cb2cc624626e6197410a2dc958
MD5 c4d68975bfd70de0852b1e48739443cc
BLAKE2b-256 0fd0ee2e76b250fac9ad577b7355c6b7f0674377411d683b972822a1ceefad33

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for diff_diff-3.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ffce17a80d676bf3a224740bdeaa66b08f0d1d183ca04658e77c1ab881a5187e
MD5 45b44156e720af51ce31a584c60da1d9
BLAKE2b-256 b798b3d5da496f5a8a746c75358a5685d2fdeac04d1324bc21c4167cf79e8e6d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e488fb0858b0ae8855bcf0bfdd193633967523b0234ff11a0c34e2f74e08e7d
MD5 f9d6110528c4f56db8344a7a8bec20a6
BLAKE2b-256 8d9b941980d8530cdfef71fe5d45a3d4d96a190f097c440f877e5ecde8947b0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3910c851d55c7c3abd957308b8361eb2698e64f43e47befc8ab6a7234a2aa5f7
MD5 5bf2b1bb80c70e2e3f9c2537b1a77a17
BLAKE2b-256 8e824fb0fffc6ea24298f6d98d2a57c158387688bbe9032d874a3f7d150ee4a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3737a4a498b1912f34f83a1ab2a79be7ab9a6f2b45c0dbb17f2cdd453c07264a
MD5 7ee40db96d1fb496f08394a48353c478
BLAKE2b-256 b21a5a377820a7608f0f0f9550be1390da46a0d38627d985bc44f49fd565ef9b

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for diff_diff-3.4.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 fe989cd8d6471cbd1fda2c36d6adf744a37fb0f5a4e71b6d469577c696b0ad11
MD5 51e80920241c456fd03aebc4f5820a5b
BLAKE2b-256 9f5d2ea6ca819b9e9230fa20a452c115d3ae5077a474c6a07ca8fc694b0e3554

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0cc87352e7e2f46bc853cb092babc55a035e2cc38427e938df112d39317a453c
MD5 8c8e581b8c1b39655f7620916e8743ad
BLAKE2b-256 8513c1d4b4ff169001fad11bb74532a1f5fffafcaef8f1b4f6fad4e0d3634d3c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5eec957ef4a544d2ff063ead02d009ae70243512dc20a0529979ef25f5026540
MD5 e3a056d8b854031ae01cdf965c73280e
BLAKE2b-256 8f31f04a25694bcd5ef7d3d75316de442a0a5aa17ef89ec75b76a29c2abd3254

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for diff_diff-3.4.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f8ed6de0cd92b7ddc075610dc73d1088eaccf9bd721276af72d008f927abd8c8
MD5 af155df5b931390f92f0e144200e4c8f
BLAKE2b-256 f87a259dd758907cce1547d6e70ff73c1967f89e07cd1bbcf1289de6250eab97

See more details on using hashes here.

Provenance

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