)]}'
{
  "commit": "f9c127fd35975a0494b9e187589501ee984dc4b6",
  "tree": "b82b1f4922e93488f8f08b54b3d94a7edd66541e",
  "parents": [
    "23225f29fa42c0018572621e1537eb11bfda233b"
  ],
  "author": {
    "name": "Josh Wu",
    "email": "92432172+zxzxwu@users.noreply.github.com",
    "time": "Fri Oct 23 17:32:05 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Oct 23 11:32:05 2026 +0200"
  },
  "message": "python: Refactor ctypes library loading and memory management (#87)\n\n* python: Refactor ctypes library loading and memory management\n\n- Cache library loading and configure ctypes function signatures once\n- Support LIBLC3_PATH and multi-platform library search paths (.so, .dylib, .dll)\n- Use Python GC-managed buffers instead of manual libc malloc/free\n- Fix docstring typos\n\n* ci: Add cross-platform Python tests and adopt dependency-groups\n\n- Test python wrapper and basic_test across Linux, macOS, and Windows matrix\n- Migrate optional-dependencies to dependency-groups in pyproject.toml",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f4976390f5d459d94ed51950de455ddd7ca15a7c",
      "old_mode": 33188,
      "old_path": ".github/workflows/ci.yaml",
      "new_id": "927749ffeef6785adf131c890e7e19d66c2038f8",
      "new_mode": 33188,
      "new_path": ".github/workflows/ci.yaml"
    },
    {
      "type": "modify",
      "old_id": "4621259c0cc4eb9fe60af56c6695ea22c65c43b9",
      "old_mode": 33188,
      "old_path": ".github/workflows/pypi.yaml",
      "new_id": "86f554ded2b8909c6e60a12caaf39838e0ddb3dc",
      "new_mode": 33188,
      "new_path": ".github/workflows/pypi.yaml"
    },
    {
      "type": "modify",
      "old_id": "c2e6b190fe8bbe28fb65f3411d1832ab105031c8",
      "old_mode": 33188,
      "old_path": "pyproject.toml",
      "new_id": "46f544094864df5a88fcc785792453a62c724afe",
      "new_mode": 33188,
      "new_path": "pyproject.toml"
    },
    {
      "type": "modify",
      "old_id": "eda76fa47aa06241d3f288b129a814c907cb862f",
      "old_mode": 33188,
      "old_path": "python/lc3.py",
      "new_id": "a5a938b94e86599426c7ef8583a4c70d66d0f131",
      "new_mode": 33188,
      "new_path": "python/lc3.py"
    }
  ]
}
