Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Matter Python REPL #11563

Merged
merged 4 commits into from
Nov 15, 2021

Conversation

mrjerryjohns
Copy link
Contributor

This resurrects the chip-repl to be more usable and user-friendly, especially around how pretty printing, help text/documentation are generated within iPython.

Notably, it leverages the 'rich' module to:
- Provide capabilities to inspect the methods/values in any given
class/module.
- Pretty printing of cluster objects.

Some notable screen-shots are below.

The new matterhelp() command:
Screen Shot 2021-11-08 at 3 20 45 PM

Pretty-printing cluster objects, including nested structs/lists with correct typing information:

Screen Shot 2021-11-08 at 3 23 36 PM

Inspecting cluster objects to understand the types of their various fields:
Screen Shot 2021-11-08 at 3 24 57 PM

This resurrects the chip-repl to be more usable and user-friendly,
especially around how pretty printing, help text/documentation are
generated.

Notably, it leverages the 'rich' module to:
    - Provide capabilities to inspect the methods/values in any given
      class/module.
    - Pretty printing of cluster objects.
@mrjerryjohns mrjerryjohns changed the title Updated CHIP REPL! Updated Matter Python REPL Nov 8, 2021
@github-actions
Copy link

github-actions bot commented Nov 8, 2021

PR #11563: Size comparison from a04576d to 646e94a

Decreases (1 build for esp32)
platform target config section a04576d 646e94ab change % change
esp32 all-clusters-app m5stack (read only) 911763 911747 -16 -0.0
.flash.text 911763 911747 -16 -0.0
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section a04576d 646e94ab change % change
efr32 lighting-app BRD4161A (read only) 742632 742632 0 0.0
(read/write) 116236 116236 0 0.0
.bss 114452 114452 0 0.0
.data 1784 1784 0 0.0
.text 742624 742624 0 0.0
BRD4161A+rpc (read only) 730184 730184 0 0.0
(read/write) 132860 132860 0 0.0
.bss 130956 130956 0 0.0
.data 1900 1900 0 0.0
.text 730176 730176 0 0.0
lock-app BRD4161A (read only) 721920 721920 0 0.0
(read/write) 114052 114052 0 0.0
.bss 112308 112308 0 0.0
.data 1744 1744 0 0.0
.text 721912 721912 0 0.0
window-app BRD4161A (read only) 722832 722832 0 0.0
(read/write) 114380 114380 0 0.0
.bss 112628 112628 0 0.0
.data 1748 1748 0 0.0
.text 722824 722824 0 0.0
esp32 all-clusters-app c3devkit (read only) 880602 880602 0 0.0
(read/write) 1306448 1306448 0 0.0
.dram0.bss 58400 58400 0 0.0
.dram0.data 16472 16472 0 0.0
.flash.rodata 198336 198336 0 0.0
.flash.text 880602 880602 0 0.0
.iram0.text 57526 57526 0 0.0
m5stack (read only) 911763 911747 -16 -0.0
(read/write) 423768 423768 0 0.0
.dram0.bss 60904 60904 0 0.0
.dram0.data 32108 32108 0 0.0
.flash.rodata 204592 204592 0 0.0
.flash.text 911763 911747 -16 -0.0
.iram0.text 125115 125115 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 699572 699572 0 0.0
.bss 77980 77980 0 0.0
.data 1912 1912 0 0.0
.text 613880 613880 0 0.0
lock-app k32w061+debug (read/write) 592284 592284 0 0.0
.bss 68508 68508 0 0.0
.data 1880 1880 0 0.0
.text 516096 516096 0 0.0
shell k32w061+debug (read/write) 657940 657940 0 0.0
.bss 79308 79308 0 0.0
.data 1848 1848 0 0.0
.text 570984 570984 0 0.0
linux all-clusters-app debug (read only) 1709681 1709681 0 0.0
(read/write) 125888 125888 0 0.0
.bss 57360 57360 0 0.0
.data 1042 1042 0 0.0
.data.rel.ro 62208 62208 0 0.0
.dynamic 592 592 0 0.0
.got 4088 4088 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 139765 139765 0 0.0
.text 1436642 1436642 0 0.0
bridge-app debug+rpc (read only) 1297685 1297685 0 0.0
(read/write) 76432 76432 0 0.0
.bss 42256 42256 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27640 27640 0 0.0
.dynamic 592 592 0 0.0
.got 3952 3952 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 111540 111540 0 0.0
.text 1090421 1090421 0 0.0
chip-tool debug (read only) 4916461 4916461 0 0.0
(read/write) 133792 133792 0 0.0
.bss 25328 25328 0 0.0
.data 2256 2256 0 0.0
.data.rel.ro 100776 100776 0 0.0
.dynamic 592 592 0 0.0
.got 4368 4368 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 234064 234064 0 0.0
.text 4412085 4412085 0 0.0
lighting-app debug+rpc (read only) 1557361 1557361 0 0.0
(read/write) 109448 109448 0 0.0
.bss 47920 47920 0 0.0
.data 1202 1202 0 0.0
.data.rel.ro 55040 55040 0 0.0
.dynamic 608 608 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 528 528 0 0.0
.rodata 128977 128977 0 0.0
.text 1294994 1294994 0 0.0
ota-provider-app debug (read only) 1256905 1256905 0 0.0
(read/write) 74632 74632 0 0.0
.bss 44352 44352 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24440 24440 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 448 448 0 0.0
.rodata 112776 112776 0 0.0
.text 1048194 1048194 0 0.0
ota-requestor-app debug (read only) 1341433 1341433 0 0.0
(read/write) 78432 78432 0 0.0
.bss 46816 46816 0 0.0
.data 816 816 0 0.0
.data.rel.ro 25704 25704 0 0.0
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 123760 123760 0 0.0
.text 1119186 1119186 0 0.0
shell debug (read only) 788233 788233 0 0.0
(read/write) 64808 64808 0 0.0
.bss 23400 23400 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36656 36656 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 78191 78191 0 0.0
.text 608770 608770 0 0.0
tv-app debug (read only) 1841649 1841649 0 0.0
(read/write) 407328 407328 0 0.0
.bss 339600 339600 0 0.0
.data 2736 2736 0 0.0
.data.rel.ro 59328 59328 0 0.0
.dynamic 592 592 0 0.0
.got 4408 4408 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 156456 156456 0 0.0
.text 1541442 1541442 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2290768 2290768 0 0.0
.bss 179404 179404 0 0.0
.data 5232 5232 0 0.0
.heap 851808 851808 0 0.0
.text 1253368 1253368 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2270928 2270928 0 0.0
.bss 172460 172460 0 0.0
.data 5584 5584 0 0.0
.heap 858400 858400 0 0.0
.text 1233528 1233528 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2248584 2248584 0 0.0
.bss 171356 171356 0 0.0
.data 5568 5568 0 0.0
.heap 859520 859520 0 0.0
.text 1211184 1211184 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048760 2048760 0 0.0
.bss 156424 156424 0 0.0
.data 4976 4976 0 0.0
.heap 875048 875048 0 0.0
.text 1011360 1011360 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 862067 862067 0 0.0
bss 111444 111444 0 0.0
rodata 96900 96900 0 0.0
text 578100 578100 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 824415 824415 0 0.0
bss 107796 107796 0 0.0
rodata 88080 88080 0 0.0
text 552248 552248 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 787126 787126 0 0.0
bss 112816 112816 0 0.0
rodata 92160 92160 0 0.0
text 507572 507572 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 838791 838791 0 0.0
bss 110476 110476 0 0.0
rodata 93272 93272 0 0.0
text 559584 559584 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 764086 764086 0 0.0
bss 111888 111888 0 0.0
rodata 88576 88576 0 0.0
text 489148 489148 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497323 497323 0 0.0
bss 51824 51824 0 0.0
rodata 45776 45776 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 844867 844867 0 0.0
bss 110616 110616 0 0.0
rodata 94980 94980 0 0.0
text 563744 563744 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 838647 838647 0 0.0
bss 110512 110512 0 0.0
rodata 93272 93272 0 0.0
text 559320 559320 0 0.0
shell nrf52840dk_nrf52840 (read/write) 776375 776375 0 0.0
bss 109264 109264 0 0.0
rodata 72540 72540 0 0.0
text 519972 519972 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 691430 691430 0 0.0
bss 110248 110248 0 0.0
rodata 67184 67184 0 0.0
text 440580 440580 0 0.0
p6 all-clusters-app default (read/write) 2299216 2299216 0 0.0
.bss 111936 111936 0 0.0
.data 2536 2536 0 0.0
.heap 918872 918872 0 0.0
.text 1257480 1257480 0 0.0
lock-app default (read/write) 2211928 2211928 0 0.0
.bss 100744 100744 0 0.0
.data 2408 2408 0 0.0
.heap 930192 930192 0 0.0
.text 1170192 1170192 0 0.0
qpg lighting-app qpg6100+debug (read only) 490708 490708 0 0.0
(read/write) 114140 114140 0 0.0
.bss 51136 51136 0 0.0
.data 1012 1012 0 0.0
.text 485388 485388 0 0.0
lock-app qpg6100+debug (read only) 466936 466936 0 0.0
(read/write) 114144 114144 0 0.0
.bss 50080 50080 0 0.0
.data 968 968 0 0.0
.text 461616 461616 0 0.0
persistent-storage-app qpg6100+debug (read only) 153396 153396 0 0.0
(read/write) 114140 114140 0 0.0
.bss 19600 19600 0 0.0
.data 364 364 0 0.0
.text 148076 148076 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 663678 663678 0 0.0
bss 69256 69256 0 0.0
noinit 33216 33216 0 0.0
text 458562 458562 0 0.0

Copy link
Contributor

@erjiaqing erjiaqing left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome

@yunhanw-google
Copy link
Contributor

Document update?

ninja: Entering directory `./out/debug'
ninja: error: '../../src/controller/python/ChipReplStartup.py', needed by 'linux_x64_gcc/controller/python/chip-0.0-cp37-abi3-linux_x86_64.whl', missing and no known rule to make it

See this error, you miss this file ChipReplStartup.py? forget to add it?

@github-actions
Copy link

github-actions bot commented Nov 15, 2021

PR #11563: Size comparison from 8f23aa6 to 3b62ae5

Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 8f23aa6 3b62ae5 change % change
efr32 lighting-app BRD4161A (read only) 746648 746648 0 0.0
(read/write) 115364 115364 0 0.0
.bss 113564 113564 0 0.0
.data 1800 1800 0 0.0
.text 746640 746640 0 0.0
BRD4161A+rpc (read only) 734188 734188 0 0.0
(read/write) 131992 131992 0 0.0
.bss 130068 130068 0 0.0
.data 1924 1924 0 0.0
.text 734180 734180 0 0.0
lock-app BRD4161A (read only) 723712 723712 0 0.0
(read/write) 113148 113148 0 0.0
.bss 111388 111388 0 0.0
.data 1756 1756 0 0.0
.text 723704 723704 0 0.0
window-app BRD4161A (read only) 724704 724704 0 0.0
(read/write) 113468 113468 0 0.0
.bss 111708 111708 0 0.0
.data 1760 1760 0 0.0
.text 724696 724696 0 0.0
esp32 all-clusters-app c3devkit (read only) 825820 825820 0 0.0
(read/write) 1220258 1220258 0 0.0
.dram0.bss 56512 56512 0 0.0
.dram0.data 14084 14084 0 0.0
.flash.rodata 164408 164408 0 0.0
.flash.text 825820 825820 0 0.0
.iram0.text 61394 61394 0 0.0
m5stack (read only) 896619 896619 0 0.0
(read/write) 419580 419580 0 0.0
.dram0.bss 61864 61864 0 0.0
.dram0.data 34056 34056 0 0.0
.flash.rodata 192380 192380 0 0.0
.flash.text 891235 891235 0 0.0
.iram0.text 122943 122943 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 705032 705032 0 0.0
.bss 76988 76988 0 0.0
.data 1912 1912 0 0.0
.text 620332 620332 0 0.0
lock-app k32w061+debug (read/write) 596448 596448 0 0.0
.bss 67500 67500 0 0.0
.data 1880 1880 0 0.0
.text 521268 521268 0 0.0
shell k32w061+debug (read/write) 661664 661664 0 0.0
.bss 78564 78564 0 0.0
.data 1848 1848 0 0.0
.text 575452 575452 0 0.0
linux all-clusters-app debug (read only) 1709953 1709953 0 0.0
(read/write) 126624 126624 0 0.0
.bss 57520 57520 0 0.0
.data 1042 1042 0 0.0
.data.rel.ro 62784 62784 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 135349 135349 0 0.0
.text 1441154 1441154 0 0.0
bridge-app debug+rpc (read only) 1305125 1305125 0 0.0
(read/write) 76816 76816 0 0.0
.bss 42224 42224 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 28024 28024 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 110764 110764 0 0.0
.text 1097461 1097461 0 0.0
chip-tool debug (read only) 4900629 4900629 0 0.0
(read/write) 166280 166280 0 0.0
.bss 40584 40584 0 0.0
.data 2272 2272 0 0.0
.data.rel.ro 117936 117936 0 0.0
.dynamic 592 592 0 0.0
.got 4416 4416 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 265618 265618 0 0.0
.text 4326037 4326037 0 0.0
lighting-app debug+rpc (read only) 1574153 1574153 0 0.0
(read/write) 110064 110064 0 0.0
.bss 47888 47888 0 0.0
.data 1234 1234 0 0.0
.data.rel.ro 55616 55616 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 128337 128337 0 0.0
.text 1311314 1311314 0 0.0
ota-provider-app debug (read only) 1260553 1260553 0 0.0
(read/write) 75560 75560 0 0.0
.bss 44832 44832 0 0.0
.data 784 784 0 0.0
.data.rel.ro 24840 24840 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 448 448 0 0.0
.rodata 113063 113063 0 0.0
.text 1050402 1050402 0 0.0
ota-requestor-app debug (read only) 1343681 1343681 0 0.0
(read/write) 79264 79264 0 0.0
.bss 47296 47296 0 0.0
.data 848 848 0 0.0
.data.rel.ro 26024 26024 0 0.0
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 123888 123888 0 0.0
.text 1120370 1120370 0 0.0
shell debug (read only) 794665 794665 0 0.0
(read/write) 66088 66088 0 0.0
.bss 23816 23816 0 0.0
.data 242 242 0 0.0
.data.rel.ro 37520 37520 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 78479 78479 0 0.0
.text 612674 612674 0 0.0
tv-app debug (read only) 1846809 1846809 0 0.0
(read/write) 405016 405016 0 0.0
.bss 336968 336968 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 59600 59600 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 155213 155213 0 0.0
.text 1547330 1547330 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2285408 2285408 0 0.0
.bss 179108 179108 0 0.0
.data 5216 5216 0 0.0
.heap 852120 852120 0 0.0
.text 1248008 1248008 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2271408 2271408 0 0.0
.bss 171972 171972 0 0.0
.data 5576 5576 0 0.0
.heap 858896 858896 0 0.0
.text 1234008 1234008 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2247248 2247248 0 0.0
.bss 170860 170860 0 0.0
.data 5568 5568 0 0.0
.heap 860016 860016 0 0.0
.text 1209848 1209848 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2049456 2049456 0 0.0
.bss 156160 156160 0 0.0
.data 4968 4968 0 0.0
.heap 875320 875320 0 0.0
.text 1012056 1012056 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 861319 861319 0 0.0
bss 110384 110384 0 0.0
rodata 95400 95400 0 0.0
text 579904 579904 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 823691 823691 0 0.0
bss 106740 106740 0 0.0
rodata 86588 86588 0 0.0
text 554076 554076 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 786362 786362 0 0.0
bss 111760 111760 0 0.0
rodata 90660 90660 0 0.0
text 509372 509372 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 836719 836719 0 0.0
bss 109408 109408 0 0.0
rodata 91872 91872 0 0.0
text 560004 560004 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 762038 762038 0 0.0
bss 110820 110820 0 0.0
rodata 87176 87176 0 0.0
text 489564 489564 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 842859 842859 0 0.0
bss 109548 109548 0 0.0
rodata 93580 93580 0 0.0
text 564184 564184 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 836451 836451 0 0.0
bss 109444 109444 0 0.0
rodata 91828 91828 0 0.0
text 559624 559624 0 0.0
shell nrf52840dk_nrf52840 (read/write) 776239 776239 0 0.0
bss 109004 109004 0 0.0
rodata 72516 72516 0 0.0
text 520124 520124 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 691294 691294 0 0.0
bss 109988 109988 0 0.0
rodata 67160 67160 0 0.0
text 440732 440732 0 0.0
p6 all-clusters-app default (read/write) 2294024 2294024 0 0.0
.bss 112096 112096 0 0.0
.data 2520 2520 0 0.0
.heap 918728 918728 0 0.0
.text 1252288 1252288 0 0.0
lock-app default (read/write) 2211448 2211448 0 0.0
.bss 100720 100720 0 0.0
.data 2400 2400 0 0.0
.heap 930224 930224 0 0.0
.text 1169712 1169712 0 0.0
qpg lighting-app qpg6100+debug (read only) 491108 491108 0 0.0
(read/write) 114144 114144 0 0.0
.bss 50056 50056 0 0.0
.data 1008 1008 0 0.0
.text 485788 485788 0 0.0
lock-app qpg6100+debug (read only) 466040 466040 0 0.0
(read/write) 114140 114140 0 0.0
.bss 49000 49000 0 0.0
.data 964 964 0 0.0
.text 460720 460720 0 0.0
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 764266 764266 0 0.0
bss 78896 78896 0 0.0
noinit 37160 37160 0 0.0
text 530138 530138 0 0.0

@mrjerryjohns mrjerryjohns merged commit f0fc749 into project-chip:master Nov 15, 2021
PSONALl pushed a commit to PSONALl/connectedhomeip that referenced this pull request Dec 3, 2021
* Updated CHIP REPL!

This resurrects the chip-repl to be more usable and user-friendly,
especially around how pretty printing, help text/documentation are
generated.

Notably, it leverages the 'rich' module to:
    - Provide capabilities to inspect the methods/values in any given
      class/module.
    - Pretty printing of cluster objects.

* Missed a file

* Restyled
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants