PPysolate SpineREAD THE CODE · UNDERSTAND THE SYSTEM
课程与章节
源码索引 / CURRENT IMPLEMENTATION

docs/deep/examples/ast/manifest.json

194 行 · 点击行号可定位;函数链接随声明位置更新,不手填行号。

{
  "repository": ".",
  "reviewed_revision": "190ea2e238bba454cdcc335e95736c3f27f6be9a",
  "source_sha256": "c39c8511ac95966b8a46a575c1d22317e3e694bf48055ae1483f62482c8f6d87",
  "python": "3.9.6 (default, Apr 17 2026, 18:15:52) \n[Clang 21.0.0 (clang-2100.1.1.101)]",
  "platform": "macOS-26.4.1-arm64-arm-64bit",
  "module": "guest/plm.py",
  "cases": [
    {
      "name": "independent",
      "inputs": {},
      "before": "a = tool('lookup', key='book')\nb = tool('lookup', key='shipping')\nresult = a + b",
      "after": "_spine_future = _spine_prepare(lambda : ('lookup', {'key': 'book'}))\n_spine_future_ = _spine_prepare(lambda : ('lookup', {'key': 'shipping'}))\na = _spine_resolve(_spine_future, 'lookup', key='book')\nb = _spine_resolve(_spine_future_, 'lookup', key='shipping')\nresult = a + b",
      "helpers": [
        "_spine_prepare",
        "_spine_resolve"
      ],
      "changed": true,
      "result": 26,
      "error": null,
      "events": [
        [
          "prepare",
          "book"
        ],
        [
          "prepare",
          "shipping"
        ],
        [
          "resolve",
          "book"
        ],
        [
          "resolve",
          "shipping"
        ]
      ],
      "dump_equal": false,
      "before_ast": ".local/deep/ast/independent/before.ast.txt",
      "after_ast": ".local/deep/ast/independent/after.ast.txt"
    },
    {
      "name": "dependency",
      "inputs": {},
      "before": "key = tool('lookup', key='choose')\nprice = tool('lookup', key=key)\nshipping = tool('lookup', key='shipping')\nresult = price + shipping",
      "after": "_spine_future = _spine_prepare(lambda : ('lookup', {'key': 'choose'}))\n_spine_future__ = _spine_prepare(lambda : ('lookup', {'key': 'shipping'}))\nkey = _spine_resolve(_spine_future, 'lookup', key='choose')\n_spine_future_ = _spine_prepare(lambda : ('lookup', {'key': key}))\nprice = _spine_resolve(_spine_future_, 'lookup', key=key)\nshipping = _spine_resolve(_spine_future__, 'lookup', key='shipping')\nresult = price + shipping",
      "helpers": [
        "_spine_prepare",
        "_spine_resolve"
      ],
      "changed": true,
      "result": 26,
      "error": null,
      "events": [
        [
          "prepare",
          "choose"
        ],
        [
          "prepare",
          "shipping"
        ],
        [
          "resolve",
          "choose"
        ],
        [
          "prepare",
          "book"
        ],
        [
          "resolve",
          "book"
        ],
        [
          "resolve",
          "shipping"
        ]
      ],
      "dump_equal": false,
      "before_ast": ".local/deep/ast/dependency/before.ast.txt",
      "after_ast": ".local/deep/ast/dependency/after.ast.txt"
    },
    {
      "name": "branch_false",
      "inputs": {
        "yes": false
      },
      "before": "if inputs['yes']:\n    a = tool('lookup', key='book')\nelse:\n    a = tool('lookup', key='shipping')\nresult = a",
      "after": "if inputs['yes']:\n    _spine_future = _spine_prepare(lambda : ('lookup', {'key': 'book'}))\n    a = _spine_resolve(_spine_future, 'lookup', key='book')\nelse:\n    _spine_future_ = _spine_prepare(lambda : ('lookup', {'key': 'shipping'}))\n    a = _spine_resolve(_spine_future_, 'lookup', key='shipping')\nresult = a",
      "helpers": [
        "_spine_prepare",
        "_spine_resolve"
      ],
      "changed": true,
      "result": 5,
      "error": null,
      "events": [
        [
          "prepare",
          "shipping"
        ],
        [
          "resolve",
          "shipping"
        ]
      ],
      "dump_equal": false,
      "before_ast": ".local/deep/ast/branch_false/before.ast.txt",
      "after_ast": ".local/deep/ast/branch_false/after.ast.txt"
    },
    {
      "name": "exception",
      "inputs": {},
      "before": "try:\n    a = tool('lookup', key='book')\n    b = tool('lookup', key=inputs['absent'])\nexcept KeyError:\n    result = a",
      "after": "try:\n    _spine_future = _spine_prepare(lambda : ('lookup', {'key': 'book'}))\n    _spine_future_ = _spine_prepare(lambda : ('lookup', {'key': inputs['absent']}))\n    a = _spine_resolve(_spine_future, 'lookup', key='book')\n    b = _spine_resolve(_spine_future_, 'lookup', key=inputs['absent'])\nexcept KeyError:\n    result = a",
      "helpers": [
        "_spine_prepare",
        "_spine_resolve"
      ],
      "changed": true,
      "result": 21,
      "error": null,
      "events": [
        [
          "prepare",
          "book"
        ],
        [
          "prepare-error",
          "KeyError"
        ],
        [
          "resolve",
          "book"
        ]
      ],
      "dump_equal": false,
      "before_ast": ".local/deep/ast/exception/before.ast.txt",
      "after_ast": ".local/deep/ast/exception/after.ast.txt"
    },
    {
      "name": "unsupported_loop",
      "inputs": {},
      "before": "result = 0\nfor i in range(2):\n    result += tool('lookup', key='book')",
      "after": "result = 0\nfor i in range(2):\n    result += tool('lookup', key='book')",
      "helpers": null,
      "changed": false,
      "result": 42,
      "error": null,
      "events": [
        [
          "call",
          "book"
        ],
        [
          "call",
          "book"
        ]
      ],
      "dump_equal": true,
      "before_ast": ".local/deep/ast/unsupported_loop/before.ast.txt",
      "after_ast": ".local/deep/ast/unsupported_loop/after.ast.txt"
    },
    {
      "name": "freshname",
      "inputs": {},
      "before": "_spine_prepare = 'user value'\na = tool('lookup', key='book')\nresult = _spine_prepare",
      "after": "_spine_prepare = 'user value'\n_spine_future = _spine_prepare_(lambda : ('lookup', {'key': 'book'}))\na = _spine_resolve(_spine_future, 'lookup', key='book')\nresult = _spine_prepare",
      "helpers": [
        "_spine_prepare_",
        "_spine_resolve"
      ],
      "changed": true,
      "result": "user value",
      "error": null,
      "events": [
        [
          "prepare",
          "book"
        ],
        [
          "resolve",
          "book"
        ]
      ],
      "dump_equal": false,
      "before_ast": ".local/deep/ast/freshname/before.ast.txt",
      "after_ast": ".local/deep/ast/freshname/after.ast.txt"
    }
  ],
  "admission": ".local/deep/ast/admission.json"
}