Releases: kangtegong/pyftrace
Releases · kangtegong/pyftrace
v0.3.1
v0.3.0
Added
- New Examples:
examples/requests_example.py
: Demonstrates tracing HTTP requests made viarequests.get()
.examples/torch_example.py
: Demonstrates tracing with thetorch
library.
- Enhanced Tracing Logic:
- Introduced logic to detect if an external function call is triggered by user script code beyond the import phase.
- Verbose mode (
-v
) now also traces standard library functions, not just built-ins.
Changed
- ★ Support Python Version 3.8+ (Wider Python Version Support):
- Lowered the minimum required Python version from 3.12 to 3.8. On Python 3.8~3.11,
sys.setprofile
is used; on 3.12 and above,sys.monitoring
is used.
- Lowered the minimum required Python version from 3.12 to 3.8. On Python 3.8~3.11,
- CI Configuration:
- Simplified GitHub Actions CI matrix to use only
ubuntu-latest
for testing, removing Windows and macOS from the test matrix.
- Simplified GitHub Actions CI matrix to use only
- Codebase Refinements:
- Consolidated and refactored the tracing logic to be more maintainable.
- Merged
PyftraceBase
intotracer.py
and refactored engines (pyftrace_monitoring.py
,pyftrace_setprofile.py
) to import from it directly.
Fixed
- Top-level External Calls:
- Fixed an issue where top-level external library calls would not appear in the trace because tracing started only after a call in the user script.
- Now caller frames are checked: if the calling frame belongs to the user script after imports, tracing starts immediately.
- Fixed an issue where top-level external library calls would not appear in the trace because tracing started only after a call in the user script.
- Normalization of Paths and Encodings:
- Ensured consistent path normalization and line ending handling.
v0.2.0
Added
- TUI support
- Added
tui.py
usingcurses
for terminal-based UI. - Supports Page Up, Page Down, Home, and End keys for scrolling through trace data.
- New example script
examples/recursives.py
for testing deep trace depth in TUI.
- Added
- Argument handling for traced scripts:
pyftrace
now supports passing additional arguments to traced scripts in both CLI and TUI modes.
- Cross-platform testing on GitHub Actions:
- Added workflows for testing on Ubuntu, Windows, and macOS.
Changed
- Swapped short options for
verbose
andversion
flags:verbose
now uses-v
(lowercase), andversion
uses-V
(uppercase).
- Documentation updates:
- README workflow status badges.
- README Installation instructions for Windows users (noting
windows-curses
).
Fixed
- Function call parsing logic updated for Windows to handle backslashes in paths.
v0.1.2
Added
- GitHub Workflows.
- Introduced
push-test.yml
workflow to automatically run tests on every push. - Added
python-publish.yml
workflow for Python package publishing.
- Introduced
Changed
- Dynamic Versioning in Tests.
- Refactored tests in
runtests.py
to dynamically retrieve the__version__
frompyftrace/__init__.py
.
- Refactored tests in
v0.1.1
Added
-
Test suite for
pyftrace
(runtests.py
). -
-v
,--version
option to display the current version ofpyftrace
.$ pyftrace -v pyftrace version 0.1.1 $ pyftrace --version pyftrace version 0.1.1
Changed
- Renamed class
SimplePyftrace
toPyftrace
.
Fixed
- Aligned the printed output for called and returned function traces to have consistent depth levels for readability.
- Updated related test code to reflect these alignment changes.