Skip to content

Commit

Permalink
Merge pull request #25 from igrek51/custom-len
Browse files Browse the repository at this point in the history
Show length of all objects supporting len protocol
  • Loading branch information
igrek51 authored Jul 29, 2024
2 parents 256561e + 75ae909 commit 47adb78
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 5 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ you can use this inspector **without installing anything**, in the same session.
Load it on the fly by pasting this snippet to your Python interpreter:
```python
import base64, zlib
code = b'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'
code = b'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'
exec(zlib.decompress(base64.b64decode(code)).decode(), globals())
```

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ you can use this inspector **without installing anything**, in the same session.
Load it on the fly by pasting this snippet to your Python interpreter:
```python
import base64, zlib
code = b'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'
code = b'eJzlW/1u28gR/99PQbh/kHR4qn3pB6CrrvUlbi5ALikcX4NANghKXNm8UKRAUnFcQcA9RJ+hD9Yn6XzsJz8k+XwFCtRAbGl35rczs7OzM7ubRVUuvTRpknme1LWovWy5KqvGNB3JhqyoV2LeeEnt1U0ay6+qt9R0lVCf6of6aIHwzcMqK24V8nnxEHkvs3kTeW+yGn6/WzVZWSR55F09rETkvW5Elcxy+PRjAR1HfzGy0G/vNY/9oiwW2e34yIOf+g6gx96sLHP6nq6LVFRWQ1Gm5by2GvKyuLW+zstUyK9D4503TZXN1o3gIYtkCRx1U9G3z0m+hq+gHH0FleEb6sPoSZ6jSrskXFXZ56SxSerstkiadQVtykZTGO+G+ct5uzkVCzVN8aKslkkTEGk5+4kki+jbSdS2mDfx/prktYg6grk9tg3dHmNMt91Y1W0Hc7SbQ++rb9GaY8mIcwu9zlwHJPSEfkdS0An/8coKUSMp5IT/RCTZBH9pApRpgr9kS8g2WjerNdgDXZKsCWNP2dLwLabphSZpV/4egGGZuxIrSUMeAYTYYvqzhUXiTSZIRL0og9sTQ1e2iudlXlaBHjpksxhJR8lqJYo0WPib91cf31zE312+fvX9Vfzdmx8vtizJ5vLi/cXV1ttolK3P4giw+KMAcV6G4Q4EQT0Nit2/3RgbbCWFxMbBcDFZtsevAf1CC9rTt3N4WpKOEtiixlkllSia2hqGW4iodmZSkj7KgIpHjy8b1PC5KOKkIc+5FQ1+wiEjz49j7Ir9yHtbFkLLoAJKoBgf5yDAZURxfRq62K5KNHs07DADYQTsERibSWL/3z//y3IRHc7QyMAUK9hY9wTIG3na2oe6pw6UZn5Vk1IDwoEaFz6ysBQcrqq1sStSJUUKUaSRMWjEkYRaB+zAfKN5uS6awL8u/BAX8qkh2KHGq8vzj9vj4+MNINBfx/u7i9WCEl8ahJp2sMD0gBZ5C98CvDGzyXpRCEStAms/H2U17Xk6ODkqWzrX5bqa65nkbzFCBs7kwXDcd5AxnDnlAWgHkTpcFxtutVzTmije0fQ4idqucVHX0CXSIM4gt4hND7sB84eR90k8TPJkOUsT4h7T7xH6ZMcdpfFjWMWphKzjGiwI+3FgBtDgWmDIikZgcIABWwPhQxDSLHDEj0WB1k4Dy9Qg8jKDTT6+z9LmDpQp6xEaXbfX2T9EEMKE5utlUbclhZkVVROcRp40MljXewaL858/+95JG/2ZR7YeWn6PhmjAUCAyrorRT2VWBHlWCA8ijkcfskIOgKbhlprm1Il22LDLPjSEs3Fim9qaIQoUREQJUp8LcHYkp2rs5hyUl6iUdNpOBW9YDHAc9LI0s/Z81BHaUUXsNvLKhGWCzeAKSdXU91lzF0Do9NkXsAOsbTU7sYb5W2FKpm3OMoOuJivWQjfKHLNvbDk0IjKUZtK5DzqdNpxJgWjdGAl1VAcWHT04iXnUVgCgEY8d2ntQTAGR/MNY1I3txCSju7QOft4L85CJPO1k+4FjUgwGExTNaaURJzyu04HZw4RyFdbE7VXCTLRUbr+T4bpdciYn8q/bqY040Z9awOV8gluEbgx5bQzMsFwfoDalt7QkoIWdrakejNfJ1eakBNo7xJe5WDXed0ktLugjxEqsJ0WHXxhxBpIEEiTSpQ2J5FRDPcLFttthBm5vfAbeZJVS4ODvaIiLqiorrlHpYzgAfBxA2hMe63g/sLmOrUUpFtkX5ORy81jm6F3msoJgCUFysS54oxkCSuqHYu6hDQfB9mLs5F6K5q5MfxnvbJ3loMWhzHdJ3Zde7mW1syZDcWxvCibxwIxjw1RbNxl5dXlx8Xa7wVG3Os+iJjPrumYxbtvKiA53UimabTLAYzizuSjPfPe+7ZYRBLAUSosEh2FH7V9jC3+RZLCVek2J69WzEy5vQzFLhFv4KGy9ZO4sI4Kp+4d049Dc0kaCOFk37PsYjDti6gjNSJho00YfaG4Sos0GdD1+IDtjShWhckKk4jYAYhkArXQOwl+V0ebFuWB7X9iVL+hzDAqhMR8JqDqLBpfBlRLMof1KnyS1AGhuiBM/ha5He25pHX+8ePPm3YftRqeyyotlh5xrHGILY2y0xGrWbZPIZd9vEFdzmbbRsKY+6zohyGtEo9DpK35qx3MuO/tRjXvKrQ6+WayeXS79RnZj+aVXsQLpll47YMdQnrh1GDRo7OvCqsWGPbMPWM5Dj/eYQ8fOUtzpgRb37lWkmW0fa68eTRQ6gnZFzCgwjeEv5uunHX/JaogRTVLMhUrhaudgQ9no2InD/kYeRknr6p2X89ahuKJj/w/nry7eXp1vkcqZIBsCDwmGIZytAkkHceiwcy/Q5cXLLVG2cboWCsCYUOnnZdKEPaZSwIi4cc/XhjHTbN50sdS8Yq89uWpeJ/zn2Vk4jJxn9Q5k7D0Aud8N8ERPuvRWe4Ltj5bc8HEsryAsn3T9EYvRuvc8ODP7K1a22IRVMDfbpV+k5r1Ak46g8FzWduEKJL0Lk1gZzpRMe9Zxl4EUsI5YLLG3Gzk0Rn8T8CNzrMLam3ptCVl4zAiYRWHbMegccNNXZ2bYZZamkK0TQKfwr8NBD1X71MYc9thQdPhjSdHaxbbbQ2Jre6htK3Hr+mFeyzuBX+Qp6AfaBRDqV5rNls95z1C3/615nP6iabx5/CxOb3rnUF8SxHwN507ZskzXORZrRDGKY26IY2U3SSA3DzwIVSxUOQIH1Wqxzbvf4dRoXMK4LjvEw+jb0SCzTs2dC4u26voEy6TmVm1F1FRdLavSLa7Qh3GuvkTeDAp3vowBdxbFegmQjbTySLKGbr6EuwAy92Ro+NM5oJI81kg11viQZh7IzGc4jhdoMDc/ad/vmBJNu4mcE7zKYN/vtzOfGEj0VnKE547m0EQjL7KqbmhJRB4YvhI1rkckHgF8k1FlTrmtmioksWZF8wOb9eUZX7ro5S+KwPSG3rfe2enpXpTpGKhuHCzlnfZI5ICdGqHvFFwGx87h6UFHrsZhV+tZns15FAyydGGG/kkfwCetI3+7/FCnnup8k5NyOlTjOC0JDka2UeVt/NoY4FAARwJWDUrOfnZHdVs3dTzmKjKM42g6DCT1GcRx9N0hD4vNZeNhmu3QaidMW7FhpXbBtPXqQcEbYGu2gNnV0iwvjkXyyMk06MRVXn7/jdgtDxk7lYwKwi2D4eDjvtA3eISh76LsctpWBdfHkC69+vSItYNx6CTBXKzb3ot2def98YZV6/5Qy1rj/xqmtdUh2w7ps9+4+zn3Wte5JyJ5bGd/tHFfSpwDbWsFlF/BtHZ4sjR5vGH3Mw7blU/rPyRyWz4+Ppa7GGVMXPji4ar4kixxx1wXn4ryvpD5TO3hxRs/w/LKFaZSZVUfSzlpV4UcOWviOKhFvoi8kxP1tuvTfVLd1vZlPBCMYrebC9wp3ZLgqRCWJS5Fi10/udpsLRHoYQ6L4GYwhhGcE9KhO5GrM1n8UamTb2Hhm5shKEX/J7CnZ+zItvrWQrFGI6TOPfACbXhVPXhuIn0PuL+VeOqVCAzQIRpBwp0tMgGe1SaHudSvIIsWp0M5aj1v+kFBKqSEj0KdAwx+v9AVTfVaUtxlqR3VvECtGF4N0pvDzgh4xmfBkClh6y6+SmazSnzOIMSkXJrKZVXOIcmXhwYdNF47Hby0HRg6jHjF0GGzrh+8EjZeT11QRVIfeo1CrzLbePxCp20fR3ha9ApRPubhB68dNNjsnQmf52u0dp7DZy4d+owB/mtxqUcHd0J5DBh2h8N0faGp+uHkawmuLijMiCRFg5EVoe3oBYradeu8hDSm3uX5Qdjj6C4VgxhC7XejoWFv83JmjTuILOl6oWFBO3c+chPY/SrEiggDL0Pwh6xmtXGgwoTPxF2OpnSCfXKigquqFemJ8tSHqCWf6EV8MQ39N+69BbK5da4TjfGWrCeMw2JZPVh6dxlH61WKZbjcFfquK0C6oLN9jOT34MTlo0tXqeYwWHu0wasSUkoNFePdbxqzG8W8BILQmF7RseVLcPiqbepBG8uVYXY5+QSaUHDq+szrvlSz9kG8pgx8GAamlY7iw17teNCWO3HjHmgA2AONcrf3R3Mbio46h4AuzIZKXmg9zxT3Me56Ezllu/WX1FYe4MjcckMpjmSylk5TrUWafdarx5rDca9LEIG9+JI0fQJ3Xt9li+YJANVTAcrqKaM/iTt/itzyzY5GoGePwyHups/RpMuQW7qxGp8KQ7698SnLwRO12t+6fq890HXRqWTBBBbv1txAxW+QJ56PuY1/ICDR7sHjNOZQREm9BxOTm0MRiXYPHic+hyJK6j2YsPUdCoike9Awyg2gcWCZEskeFAzDe1CQZK+H4K7jP22X6sLKzOVwXMmwF/g+advOAt218SZZLTx9ykpvgIYCt9kf1PF1K1XqObuWEJUY1etZUPnXX85m19Pr9FnwDfwK/7zE1Q3/OKvijcrN0hAOa1LGE8VnJsDaUwvqL3Br9Mf2fxuidtxhoBknmlu3tKGW9QiAsqoseH/9cH4Vv3j35t0lSRNC/nsvqsC8wzajWi+Ouw8RFZWtec8Tblaz128Ys5SXTYFyw8gLmCIKIyi5QxkvFxX/pwr7xdR8XeGNA3VJMufJGNY2MUbXKiluRfB19w6GUXsV1SByYPo7WsSzZP7p6HCI7pW3AmJ9u7ff6qdWb0UjC0AaA1+V55amqcgZ156O0jZ+e3G1ra9W6/+N+aXC/1X7U8nmTfzr0+fPp6dL/8g+/aDLY+w40x0vX/+gW7/WrZcXL3Xr6TfPz1o4Tv+Z3U81s836dZvVpTizKbj+tLmft7lbJGcOCf5XCIv5d21mh+DMJpAPj2zu3+vOFx/PHZX+oHs+fP/6yhnyj5Yhzj8aw1LPfwDpNs00'
exec(zlib.decompress(base64.b64decode(code)).decode(), globals())
```

Expand Down
Loading

0 comments on commit 47adb78

Please sign in to comment.