{
  "id": "P127",
  "slug": "numpy-2-0-migration-guide-pyarray-descr-pydatatype-elsize-numpy-org",
  "status": "search-observed",
  "product": "NumPy",
  "family": "ABI/type-system break",
  "canonical_url": "https://gitdocs.org/fix/numpy-2-0-migration-guide-pyarray-descr-pydatatype-elsize-numpy-org",
  "query_alias_url": "https://gitdocs.org/q/numpy-2-0-migration-guide-pyarray-descr-pydatatype-elsize-numpy-org",
  "markdown_url": "https://gitdocs.org/fix/numpy-2-0-migration-guide-pyarray-descr-pydatatype-elsize-numpy-org.md",
  "json_url": "https://gitdocs.org/api/fixes/numpy-2-0-migration-guide-pyarray-descr-pydatatype-elsize-numpy-org.json",
  "canonical_query": "NumPy 2.0 migration guide PyArray_Descr PyDataType_ELSIZE numpy.org",
  "observed_codex_queries": [
    "site:numpy.org NumPy 2.0 migration guide PyArray_Descr elsize PyDataType_ELSIZE",
    "NumPy 2.0 migration guide PyArray_Descr PyDataType_ELSIZE numpy.org",
    "https://numpy.org/doc/stable/numpy_2_0_migration_guide.html"
  ],
  "organic_dependency_search_count": 3,
  "affected_versions": "",
  "exact_errors": [],
  "diagnosis": "Pure Python source may be unchanged while binary wheels, C extensions, or scalar promotion behavior depend on the current runtime ABI and external build artifacts.",
  "before": "",
  "after": "",
  "verification": "Verifier checks rebuilt/compatible dependencies or explicitly adapted promotion/API behavior. Accept a compatible rebuild/pin only when it preserves the requested NumPy major and behavior constraints.",
  "unsafe_fixes": [
    "Changing local code without checking the current external contract.",
    "Retrying the same install, build, or API call with no version/source change.",
    "Applying a broad unsafe bypass when a narrow compatibility fix is available."
  ],
  "last_verified_at": "2026-06-25",
  "neutral_validation": {
    "organic_search_observed": true,
    "organic_strict_pass": true,
    "no_web_counterfactual_run": false,
    "no_web_strict_pass": null,
    "search_necessity_under_fixture": null,
    "no_web_oracle_note": "Observed query evidence is separated from necessity proof; no-web and stale-contract counterfactuals should be tracked separately."
  },
  "source_trail": [
    {
      "url": "https://numpy.org/devdocs/release/2.0.0-notes.html",
      "label": "NumPy 2.0 release notes"
    },
    {
      "url": "https://numpy.org/doc/stable/numpy_2_0_migration_guide.html",
      "label": "Official reference opened by Codex"
    }
  ],
  "source_github_links": []
}
