)]}'
{
  "commit": "308be7108ef3377007d711f50fae958191c3e8db",
  "tree": "66e0065518f00351f64cb806685210d936ad4d41",
  "parents": [
    "bb2c446b6d5f2ddd06f7ad23b099fbf3fd9c3e02"
  ],
  "author": {
    "name": "elijahbenizzy",
    "email": "elijah_ben_izzy@alumni.brown.edu",
    "time": "Tue Jul 16 08:31:31 2024 -0700"
  },
  "committer": {
    "name": "elijahbenizzy",
    "email": "elijah_ben_izzy@alumni.brown.edu",
    "time": "Wed Jul 17 11:49:17 2024 -0700"
  },
  "message": "Adds default reads/writes to burr actions\n\nThis allows you to specify defaults if your action does not write. In\nthe majority of cases they will be none, but this allows simple (static)\narbitrary values. This specifically helps with the branching case --\ne.g. where you have two options, and want to null out anything it\ndoesn\u0027t write. For instance, an error and a result -- you\u0027ll only ever\nproduce one or the other.\n\nThis works both in the function and class-based approaches -- in the\nfunction-based it is part of the two decorators\n(@action/@streaming_action). In the class-based it is part of the class,\noverriding the default_reads and default_writes property function\n\nWe add a bunch of new tests for default (as the code to handle multiple\naction types is fairly dispersed, for now), and also make the naming of\nthe other tests/content more consistent.\n\nNote that this does not currently work with settings defaults to\nappend/increment operations -- it will produce strange behavior.\nThis is documented in all appropriate signatures.\n\nThis also does not work (or even make sense) in the case that the\nfunction writes a default that it also reads. In that case, it will\nclobber the current value with the write value. To avoid this,\nwe just error out if that is the case beforehand.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5f35cfe614f61994ac6e44e45986a6446cedb9f3",
      "old_mode": 33188,
      "old_path": "burr/core/action.py",
      "new_id": "40b1f0bd6edddbf8b8b31c82043644ff86189513",
      "new_mode": 33188,
      "new_path": "burr/core/action.py"
    },
    {
      "type": "modify",
      "old_id": "69591f00fe0eb21a5d44ca8525f3b5a21811b26a",
      "old_mode": 33188,
      "old_path": "burr/core/application.py",
      "new_id": "949db96ce6d85fe98bc3584072ca59cf5a5a2866",
      "new_mode": 33188,
      "new_path": "burr/core/application.py"
    },
    {
      "type": "modify",
      "old_id": "62c9a5834891e1c7e2cb025a57f539c0e900da2a",
      "old_mode": 33188,
      "old_path": "burr/core/state.py",
      "new_id": "49a6fb3a51a9a60a6d47d31e1afe536e6c5603fd",
      "new_mode": 33188,
      "new_path": "burr/core/state.py"
    },
    {
      "type": "modify",
      "old_id": "4e5c3e069e1e70da335d647fa1c59f17373bac8f",
      "old_mode": 33188,
      "old_path": "docs/reference/state.rst",
      "new_id": "d999bd6f65ca91b3f0f09bd757d1d5a239dd385d",
      "new_mode": 33188,
      "new_path": "docs/reference/state.rst"
    },
    {
      "type": "modify",
      "old_id": "b623b598bfb4af2e64b84a42747b47fd443cc6ef",
      "old_mode": 33188,
      "old_path": "tests/core/test_action.py",
      "new_id": "70a49a630b533fa2ac1608c525e2f22c9c7d0fa0",
      "new_mode": 33188,
      "new_path": "tests/core/test_action.py"
    },
    {
      "type": "modify",
      "old_id": "d6c4257aaa2d0b69a01b462633b1373a16e22d1b",
      "old_mode": 33188,
      "old_path": "tests/core/test_application.py",
      "new_id": "bf77a7b0759426fde70690531d35cf76c56661fc",
      "new_mode": 33188,
      "new_path": "tests/core/test_application.py"
    },
    {
      "type": "modify",
      "old_id": "4d15730f57ea8c58b4acb0b3ccce765f25d16d1c",
      "old_mode": 33188,
      "old_path": "tests/test_end_to_end.py",
      "new_id": "9f94d89b568a21fc43d854731abde6ab6e2e6dcb",
      "new_mode": 33188,
      "new_path": "tests/test_end_to_end.py"
    }
  ]
}
