)]}'
{
  "commit": "be0d804523c01809292f93f0bbf6adbfcf5cd0fa",
  "tree": "463bc799fc770422568b3d70deba3a031b99792b",
  "parents": [
    "03f9e4a8ec10eaab2181da7ec7d629f0dce74c30"
  ],
  "author": {
    "name": "Jason Rhinelander",
    "email": "jason@imaginary.ca",
    "time": "Sat Dec 23 18:56:07 2017 -0400"
  },
  "committer": {
    "name": "Wenzel Jakob",
    "email": "wenzel.jakob@epfl.ch",
    "time": "Sun Apr 26 18:07:51 2020 +0200"
  },
  "message": "Support keyword-only arguments\n\nThis adds support for a `py::args_kw_only()` annotation that can be\nspecified between `py::arg` annotations to indicate that any following\narguments are keyword-only.  This allows you to write:\n\n    m.def(\"f\", [](int a, int b) { /* ... */ },\n          py::arg(\"a\"), py::args_kw_only(), py::arg(\"b\"));\n\nand have it work like Python 3\u0027s:\n\n    def f(a, *, b):\n        # ...\n\nwith respect to how `a` and `b` arguments are accepted (that is, `a` can\nbe positional or by keyword; `b` can only be specified by keyword).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e1a3ff0e8ea89c18b1a80f97e9b03aa54771560",
      "old_mode": 33188,
      "old_path": "docs/advanced/functions.rst",
      "new_id": "c7790533bb54fd72349400271bfb99f01efef2a3",
      "new_mode": 33188,
      "new_path": "docs/advanced/functions.rst"
    },
    {
      "type": "modify",
      "old_id": "744284a8346b8e871cb72fe800cd96c907078feb",
      "old_mode": 33188,
      "old_path": "include/pybind11/attr.h",
      "new_id": "70325510d9aef9721f80f9283db99c89ca740cd4",
      "new_mode": 33188,
      "new_path": "include/pybind11/attr.h"
    },
    {
      "type": "modify",
      "old_id": "0edc33686aa994a7810221fa04e3b8beda90f375",
      "old_mode": 33188,
      "old_path": "include/pybind11/cast.h",
      "new_id": "2ea1c635bed5bc9dc8f3c4d0d902b7f0f800aae6",
      "new_mode": 33188,
      "new_path": "include/pybind11/cast.h"
    },
    {
      "type": "modify",
      "old_id": "d95d61f7bb8c240e463cf3c6f4c673288039e3be",
      "old_mode": 33188,
      "old_path": "include/pybind11/pybind11.h",
      "new_id": "ff586033d8c022e160d3d79b8fb2f95fb5c4db44",
      "new_mode": 33188,
      "new_path": "include/pybind11/pybind11.h"
    },
    {
      "type": "modify",
      "old_id": "6563fb9ad3f0744578056897abe1ed451e386a52",
      "old_mode": 33188,
      "old_path": "tests/test_kwargs_and_defaults.cpp",
      "new_id": "6c49714045fb6608dcdb7af860d9fcc3f4b520e1",
      "new_mode": 33188,
      "new_path": "tests/test_kwargs_and_defaults.cpp"
    },
    {
      "type": "modify",
      "old_id": "27a05a0241321ab6ee6912cd9686a6ccf1e00c0b",
      "old_mode": 33188,
      "old_path": "tests/test_kwargs_and_defaults.py",
      "new_id": "fa90140fd896ddf737337f66b7eb955b4d886368",
      "new_mode": 33188,
      "new_path": "tests/test_kwargs_and_defaults.py"
    }
  ]
}
