{
 "ecosystem": "pypi",
 "errata": [
  {
   "action": "Replace the old line with the new one; the rest of the code can stay.",
   "alternatives": [],
   "applicability": {
    "exit_code": 0,
    "line": 8,
    "method": "literal_patch",
    "occurrences": 1,
    "output": "same",
    "patched_sha": "316a3607c0a1",
    "reason": "applied word for word, the patch parses, drops the old names, runs on 11.2.1 and prints what the verified example prints",
    "run_on": "11.2.1",
    "status": "applies"
   },
   "by_notes": true,
   "changelog_ref": {
    "quote": "`zip_equal` was removed in 11.0.0.",
    "url": "https://github.com/more-itertools/more-itertools/releases/tag/v11.0.2"
   },
   "confirmations": {
    "failed": 0,
    "worked": 2
   },
   "detect": [
    "more_itertools.zip_equal"
   ],
   "ecosystem": "pypi",
   "equivalence": "same",
   "error_kind": "missing_attr",
   "error_signature": {
    "message": "module 'more_itertools' has no attribute 'zip_equal'. Did you mean: 'all_equal'?",
    "norm": "missing_attr:zip_equal",
    "type": "AttributeError"
   },
   "first_seen": "2026-10-20T17:41:21+00:00",
   "format": "replace",
   "format_version": 2,
   "id": "pypi/more-itertools/11.2.1/0002",
   "json": "https://formachines.ai/errata/pypi/more-itertools/0002-zip-equal/index.json",
   "kind": "removed",
   "package": "more-itertools",
   "proof": {
    "applicability": {
     "exit_code": 0,
     "line": 8,
     "method": "literal_patch",
     "occurrences": 1,
     "output": "same",
     "patched_sha": "316a3607c0a1",
     "reason": "applied word for word, the patch parses, drops the old names, runs on 11.2.1 and prints what the verified example prints",
     "run_on": "11.2.1",
     "status": "applies"
    },
    "auto_apply": true,
    "auto_apply_reason": "proof.equivalent is true and the patch applies word for word",
    "auto_apply_rule": "Automatic application is allowed only when proof.equivalent is true and proof.applicability.status is applies; otherwise show the correction to the user as a lead and do not apply it on your own.",
    "equivalence": "same",
    "equivalent": true,
    "fails_on": "11.2.1",
    "fixed_on": "11.2.1",
    "level": "differential",
    "method": {
     "fix_on": "11.2.1",
     "name": "stdout_match",
     "normalization": "lines stripped, blank lines dropped, runs of whitespace collapsed; memory addresses, timestamps and temporary paths masked",
     "original_on": "10.8.0",
     "scope": "the observable stdout of one example script; return values, files, other inputs and exception types are not compared, so a match is not a proof of equivalent behaviour"
    },
    "works_on": "10.8.0"
   },
   "right": "for name, score, grade in zip(names, scores, grades, strict=True):",
   "seen_in_models": [
    "gemini-3.8-flash"
   ],
   "seq": 2,
   "slug": "zip-equal",
   "source": "pipeline",
   "symbol": "zip_equal",
   "updated": "2026-10-27T17:20:00+00:00",
   "url": "https://formachines.ai/errata/pypi/more-itertools/0002-zip-equal/",
   "variant_confirmations": 2,
   "variant_models": [
    "gemini-3.8-flash"
   ],
   "verified": "sandbox",
   "versions": {
    "changed_in": ">10.8.0,<=11.2.1",
    "fails_on": "11.2.1",
    "works_on": "10.8.0"
   },
   "wrong": "for name, score, grade in more_itertools.zip_equal(names, scores, grades):"
  }
 ],
 "fails_on": [
  "11.2.1"
 ],
 "license": "https://creativecommons.org/licenses/by/4.0/",
 "models": [
  {
   "checked": 12,
   "model": "claude-sonnet-5-5",
   "outdated": 2,
   "share": 0.17
  },
  {
   "checked": 12,
   "model": "gpt-6.1-sol",
   "outdated": 2,
   "share": 0.17
  },
  {
   "checked": 12,
   "model": "gemini-3.8-flash",
   "outdated": 2,
   "share": 0.17
  }
 ],
 "new_version": "11.2.1",
 "old_version": "10.8.0",
 "package": "more-itertools",
 "updated": "2026-10-27"
}