Skip to main content

Profiling for the xonsh shell based on hunter.

Project description

xunter is to profiling xonsh shell using hunter. Time tracking is on board.

If you like the idea click ⭐ on the repo and tweet.

Install

Install xunter into the environment where xonsh you want to trace resides.

pip install xunter
# or: pip install git+https://github.com/anki-code/xunter

Usage

Xunter is working as drop-in replacement of xonsh with additional arguments:

xonsh  --no-rc -c "2+2"
xunter --no-rc -c "2+2" ++depth-lt 5
#      ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^
#            xonsh         xunter

Examples:

xunter --no-rc -c "2+2" ++depth-lt 10
xunter --no-rc ++depth-lt 5 ++output /tmp/22.xunter
xunter --no-rc -c '2+2' ++filter 'Q(filename_endswith="main.py")'

xunter --no-rc -c 'echo 1' ++filter 'Q(filename_has="specs.py"),Q(function="run_subproc")'
# [...]/site-packages/xonsh/procs/specs.py:910:run_subproc 
#   <= xonsh/built_ins.py:206:subproc_captured_hiddenobject 
#   <= <string>:1:<module> <= xonsh/codecache.py:64:run_compiled_code 
#   <= xonsh/codecache.py:218:run_code_with_cache
#   <= xonsh/main.py:519:main_xonsh 
#   <= xonsh/main.py:470:main 
#   <= xunter/xunter:91:<module>
#   - time_sec=[0.1505]

# Don't forget about xonsh`s awesome macro call:
xunter --no-rc -c 'echo 1' ++filter! Q(filename_has="specs.py"),Q(function="run_subproc")

To set ++filter read about filters and take a look into the cookbook. Use ./playground/trace.py to experiment with the tracing filters and understand how it works.

Convert log to table

xunter --no-rc -c "2+2" ++depth-lt 10 ++printer stack ++output /tmp/22.xunter
xunter2excel /tmp/22.xunter

Known issues

If you see the unexpected exceptions try to install xonsh from the main branch first.

See also

  • xonsh-cheatsheet
  • xonsh-install
  • By putting import ipdb; ipdb.set_trace() into any place of code you can investigate the environment interactively.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xunter-0.1.4.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

xunter-0.1.4-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file xunter-0.1.4.tar.gz.

File metadata

  • Download URL: xunter-0.1.4.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for xunter-0.1.4.tar.gz
Algorithm Hash digest
SHA256 84040ff9fbf95ed400b9d72e506dae00edc9d063369c34d57485991223443d0a
MD5 883127b9defc08a04989e08fc3d8230d
BLAKE2b-256 ecdb45d23945b0ffe0ab9fa48c9be710863bb3a048db688b46374e92e250f758

See more details on using hashes here.

File details

Details for the file xunter-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: xunter-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for xunter-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 63beb43490b16c25b6afebf50b7c2fdbd06484abca2d1c5463832d7b32c4228e
MD5 79f240748f0f81f8dfda60984087a14a
BLAKE2b-256 35d6586f6bdcd9ca963b12ed3d8efc0bcd421c97b0c222e9fbd13f9ed0e638a0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page