Ultra-fast inspect functions for Python
Project description
uinspect
This is a small Python package that offers fast runtime inspection similar to that of inspect module in Python. To install, simply do
pip install uinspect
benchmark
The following benchmark is generated from running the scripts in benchmark/.
Task name |
uinspect method1 |
uinspect method2 |
inspect |
speedup |
Cost (us/op) |
---|---|---|---|---|---|
Source location |
uinspect.get_location() - 0.21s |
uinspect.Frame() - 0.48s |
16.43s |
79.7x |
0.21 us/op |
Locals |
uinspect.Frame().locals - 0.99s |
N/A |
0.82s |
0.82x |
0.99 us/op |
Locals diff |
uinspect.Frame(2).collect_vars() - 2.94s |
N/A |
1.20s |
0.41x |
2.94 us/op |
Frame walking |
uinspect.FrameWalker({}).get_location() - 1.45s |
N/A |
52.27s |
35.9x |
1.46 us/op |
It turns out that the uinspect does not speed up the local variable calculation. This is because we have to run an expensive Python C API call regardless of whether it’s uinspect or inspect. As a result, the overhead is caused by the fact that uinspect needs to convert Python object to C++ object.
The lesson is to use inspect module for any local variables related manipulation since it’s faster, but use uinspect to obtain source location.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for uinspect-0.0.4-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 058be24420e92a4c8cf79650710a5980f66c5c47ae35a92fea4963926e90d258 |
|
MD5 | 94e53029e1a99c149e9af6ae6a8ccd20 |
|
BLAKE2b-256 | c3267f6d13c2ef216141524279f2dd2fc22ff2e2e8ffacb5580c8a7489f48da9 |
Hashes for uinspect-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46223dee5db521a15af20e6a7fc79016c47e0bc75363f6b3761bf6f37dbc4dfe |
|
MD5 | 47fc4ca9d35f2461e44e37f6c9e53e99 |
|
BLAKE2b-256 | 054c4703c8537c1175b9ac10131dea30588cd7a8a0cbc8971acdf85069efac8b |
Hashes for uinspect-0.0.4-cp311-cp311-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37de18d052785371260fac127fa59415ac6422d49c6d99f0e36e19188dc13ae0 |
|
MD5 | 11c2109faf9b4480086b7c3feb46ed38 |
|
BLAKE2b-256 | 56c36673e06d05c05d7fbaa3d8f71c6f7cc2d0d178e80b74c94a7e213764a0f1 |
Hashes for uinspect-0.0.4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98c4a090ce79b44688df7bf59c8f89a003b0c70206920a215a006d37e5eec179 |
|
MD5 | c267fee440d7cbeacd95c827d72018d2 |
|
BLAKE2b-256 | 1d7ae39e3445df2a15111bc331263a85fe88fb2a7732dc323a5b03eb492f32ba |
Hashes for uinspect-0.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10808017de0f4fadd9919246aeaa8cef3a02b6ae613889ce344a0fc2828a7a53 |
|
MD5 | eb096c110df189c2a38c76363272066a |
|
BLAKE2b-256 | 5078faa0e966ea64a1c2ad229131a886e3ba2049a7c84ef3de2eaf926012e300 |
Hashes for uinspect-0.0.4-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0313c1d17821acdc615222a21256de6cc0102cf9392a7d2763d4d277cf3de98a |
|
MD5 | 2cb9c5c4adcc3a264f3811aad9ac898e |
|
BLAKE2b-256 | c54a3d0d2d89384e839d18c80ba976a9aac0b66c4e27f0c81a930ade37a4b4b5 |
Hashes for uinspect-0.0.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3e2b2931b1ca6538fb6a9bc2c07cd42f8155c7a2506e1d3c0a98db004f05d68 |
|
MD5 | dc749637670ccfacdba375417f548a4c |
|
BLAKE2b-256 | 64e48e1c6a48b6d61426ceb45ad2bcdbe4f32de09cb3365e4207a52fd8e64f8f |
Hashes for uinspect-0.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f024b4915d89d948f75b46bc28605e15b8c27cf05a8df93efa7fd4139649654 |
|
MD5 | 9e698a1f71f33e92d5caa6431c07f150 |
|
BLAKE2b-256 | 53af74dcab120bd85f7c789f8157a066f110e4c63d7f50bb07e9ba5ff399da43 |
Hashes for uinspect-0.0.4-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bf778f13aabb323edc19ee01c1147e175e191ec2f64be28a74101474bfb06ce |
|
MD5 | 4d7f4c0183bc7b7eb49091fd16b63460 |
|
BLAKE2b-256 | 4b57a9ff9b008df7c443853b7b0000a27322496126a85d0b424ce56cb446926a |
Hashes for uinspect-0.0.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15830d5244e21581ea38e0cbfeca77e5391aea89f2289206303db689c670835a |
|
MD5 | 0d9d691f10b51f6900e65467b70b2d57 |
|
BLAKE2b-256 | 7c959057b2e5401cfa57f0a1d2d92cb5c83f82d3ea461947e05638df3ca835b7 |
Hashes for uinspect-0.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f7ef7c6e73e0044776783b00ddeea8bbbe4665c00e2474093eae02897952f30 |
|
MD5 | ad9467df39e1362792c766b978c87737 |
|
BLAKE2b-256 | 61034984817d779b85f577a0a22b304bbf6ec45c6e15ede7fec5e27ce2121207 |
Hashes for uinspect-0.0.4-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d18d4b3c64768994e0453047398a95f30ae9ac1bbff8f4dd73f9368342a9fa0 |
|
MD5 | 423b58be3c962336de559199e89ef8e3 |
|
BLAKE2b-256 | 1c1e287091c8345b16a689207b8a11a53acc9c813ee24db3c8f38882bc6b98dd |
Hashes for uinspect-0.0.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1a83c03b9a9b23df57f1a88d0508209e6ba54884c4b0e982f63766ee4c38f72 |
|
MD5 | 9e47ddfcdb364807ba58789a27b4ae50 |
|
BLAKE2b-256 | 2bd857af265f27073147d04636d1b601fe94ab1038df32136aae4b27fe793496 |
Hashes for uinspect-0.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6869374c5188e2d1f532899a2be82b02ec2debff2eb4b644739d4b3a9177d4a6 |
|
MD5 | 4dc6a182d44c3fe06739f1faea973ca6 |
|
BLAKE2b-256 | eac172238a3e26af3d5d2319c8a1f4a208135bb66e4fec19ea8d5d7472a18a58 |
Hashes for uinspect-0.0.4-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f05f692bcd4cc5c8be9b60cf6f045882631cf6a329e532c827166d82421badf1 |
|
MD5 | c54056e0201cb5c0e281c626e586b3cf |
|
BLAKE2b-256 | 04dea31b3e418ffa3e8a920c6e48ea5a80e2deb9327904ef2a22bc7abb3ee9d3 |