)]}'
{
  "commit": "34e82cd417438fd2233738bb004c2db060c18cfe",
  "tree": "895d58cb0de32048e472db5db10e43831488a809",
  "parents": [
    "0a3704d1954d9fe6b21e7c937f3c1451b00862ae"
  ],
  "author": {
    "name": "Philipp Schrader",
    "email": "philipp.schrader@gmail.com",
    "time": "Sun Feb 16 13:28:15 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Feb 16 21:28:15 2025 +0000"
  },
  "message": "feat: provide access to arbitrary interpreters (#2507)\n\nThere are some use cases that folks want to cover here. They are\ndiscussed in [this Slack thread][1]. The high-level summary is:\n1. Users want to run the exact same interpreter that Bazel is running\n   to minimize environmental issues.\n2. It is useful to pass a target label to third-party tools like mypy\n   so that they can use the correct interpreter.\n\nThis patch adds to @rickeylev\u0027s work from #2359 by adding docs\nand a few integration tests.\n\n[1]: https://bazelbuild.slack.com/archives/CA306CEV6/p1730095371089259\n\n---------\n\nCo-authored-by: Richard Levasseur \u003crlevasseur@google.com\u003e",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ad6a4e7ed5be396337bca2bb593a415174216d8f",
      "new_mode": 33188,
      "new_path": "docs/api/rules_python/python/bin/index.md"
    },
    {
      "type": "modify",
      "old_id": "6eaa244b1f2e03af192f0deb78f61dc7c94c79c5",
      "old_mode": 33188,
      "old_path": "docs/toolchains.md",
      "new_id": "3294c1732aaf4a56db9bdd1bc8a3843561e4cb5e",
      "new_mode": 33188,
      "new_path": "docs/toolchains.md"
    },
    {
      "type": "modify",
      "old_id": "5c6c6a4175b72f151b5eb73ca79dac6a78a100bf",
      "old_mode": 33188,
      "old_path": "python/BUILD.bazel",
      "new_id": "c52e77266652fb83f956c164b65602d1e656530a",
      "new_mode": 33188,
      "new_path": "python/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57bee343788d8226736a8814b54b059732214919",
      "new_mode": 33188,
      "new_path": "python/bin/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "b6a54532d3d05b5690f69f38d05cea4457d9e870",
      "old_mode": 33188,
      "old_path": "python/private/common.bzl",
      "new_id": "137f0d23f306c7b63275a3839b7a25cfd533fe58",
      "new_mode": 33188,
      "new_path": "python/private/common.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c66d3dc21efb78aaf45c72ca9df78298c17b2efe",
      "new_mode": 33188,
      "new_path": "python/private/interpreter.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cfe85ec1be7915d0c7544b3e865f1071337e0bfd",
      "new_mode": 33188,
      "new_path": "python/private/interpreter_tmpl.sh"
    },
    {
      "type": "modify",
      "old_id": "2b2bf6636adcfd84e8f1000e352152ed55551d22",
      "old_mode": 33188,
      "old_path": "python/private/py_executable.bzl",
      "new_id": "a2ccdc65f3dfa2c58ad606c75edfefa584fa9452",
      "new_mode": 33188,
      "new_path": "python/private/py_executable.bzl"
    },
    {
      "type": "modify",
      "old_id": "dcbd799909376caab86843cbea090e0b6ae22a17",
      "old_mode": 33188,
      "old_path": "python/private/site_init_template.py",
      "new_id": "40fb4e41392e85e49835f936032263d7f91d215f",
      "new_mode": 33188,
      "new_path": "python/private/site_init_template.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5d89ede28af112624dadc3760f99a9bcb3cc43bb",
      "new_mode": 33188,
      "new_path": "tests/interpreter/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0971fa2eba20bf8b1fe746f6cf7e048e7e231ced",
      "new_mode": 33188,
      "new_path": "tests/interpreter/interpreter_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ad94f43423e453b8215862e922f177ee209ba899",
      "new_mode": 33188,
      "new_path": "tests/interpreter/interpreter_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "a1da2858647df1def7c442d130f53c5a5be91ffc",
      "old_mode": 33188,
      "old_path": "tests/support/sh_py_run_test.bzl",
      "new_id": "d116f0403fd1c2b1e9f2b7ccab53af0f6ca67aa9",
      "new_mode": 33188,
      "new_path": "tests/support/sh_py_run_test.bzl"
    }
  ]
}
