tree 0aed7ceaed62bcf10d64b17c73523aa00e026270
parent 1cb47c19f8eca4badd8fb5e1a1b1cf4aaab607b8
author Dave Lee <davelee.com@gmail.com> 1757000074 -0700
committer GitHub <noreply@github.com> 1757000074 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoubGKCRC1aQ7uu5UhlAAA930QAIOEWpzP6h7tdjcI5UGi5lWm
 Ssc6TKc9N+2K1Fil+MDiDenfKRX3CRrAjamDi4ReFrNm33EenJA48lWSQe9XhUew
 yblJWMXZMB7i3WZVLbnTpLHLWTweV5n1P1l5JTEXSObPglIsZW2L/a1AVgc5bxoL
 qgxg8HB09dhAVwAvD2zOzg+ZqE7YMWsPF4fVPA6PdBR9/YMnCLWULkmTnqJJ/2wF
 V1xktq8UpcyFxJfId5njWqp6DbtJM7XIZz5Tn10O3/cy+b6sfBZUVOHufiLCDJd3
 BvTgBJZJD+MPDk7IYHBI/eaLsyPOxQizMV8A0twPe82lCWNxbQM9B3iBfsnuOFLM
 RoWThLMRK7o7BKkcoLTwvUo8mvlTwMlrVwjVXeyC2iMwF85nP2ymm0LgNpBsaqBQ
 gQQSIcLyIPs8uKzvmRvliKwkxWUZ2TiXlUBVV4tWuATlKkXmLokW/M/qvmmZenFo
 ZWI25PY9YRonAJuHBriEEvbOk0x8ho+F5uuHzqlst3WweurmT2EcrFXcQgauc/pf
 lNhAll94In3IIrolP694xiJtSHaex9p1SihnuWfm+P12VGxrFJsL3cfnPrYBlsny
 1q+P9MEO4tAT1DcZrUrq1alVdr3mP2xo18iD8g2Atj6RiXbx+zX/SYU63F5wneCR
 UL0ZUOgbtz7z4uDtgyLP
 =z+C0
 -----END PGP SIGNATURE-----
 

[lldb] Reland: Add Pythonic API to SBStructuredData extension (#156771)

* Adds `dynamic` property to automatically convert `SBStructuredData`
instances to the associated Python type (`str`, `int`, `float`, `bool`,
`NoneType`, etc)
* Implements `__getitem__` for Pythonic array and dictionary
subscripting
  * Subscripting return the result of the `dynamic` property
* Updates `__iter__` to support dictionary instances (supporting `for`
loops)
* Adds `__str__`, `__int__`, and `__float__`

With these changes, these two expressions are equal:

```py
data["name"] == data.GetValueForKey("name").GetStringValue(1024)
```

**Note**: Unlike the original commit (#155061), this re-commit removes
the `__bool__` implementation, which broke crashlog. Somewhere in the
crashlog execution, it depends on `__bool__` meaning only `IsValid()`.

Additionally did some cleanup in TestStructuredDataAPI.py.