Generate trace tables for simple programs
Project description
Atrace
Automatically prints a trace table of simple programs
This module is intended for beginner programmers.
The trace table of examples/small.py is:
╭──────┬───┬───┬──────────────┬──────────────┬─────────────────┬─────────╮
│ line │ x │ y │ greet │ (greet) name │ (greet) message │ output │
├──────┼───┼───┼──────────────┼──────────────┼─────────────────┼─────────┤
│ 3 │ 1 │ 3 │ │ │ │ │
│ 6 │ 2 │ │ │ │ │ │
│ 6 │ 3 │ │ │ │ │ │
│ 8 │ │ │ │ │ │ x: 3 │
│ 11 │ │ │ greet("Bob") │ "Bob" │ │ │
│ 12 │ │ │ │ │ │ "Hi Bob!" │ │
│ 13 │ │ │ └─ "Hi Bob!" │ │ │ │
│ 16 │ │ │ │ │ │ Hi Bob! │
╰──────┴───┴───┴──────────────┴──────────────┴─────────────────┴─────────╯
Installing the package
The package is available on pypi.
Install the latest version with uv, pip, the Thonny package manager, etc.
Generating a trace for code under development
Just import the module at the top of your file, like in examples/small.py
import atrace
x, y = 1, 3
...
Every time you run the program the trace table will be printed when the program exits.
The trace is printed even if the program is interrupted or an uncaught exception is raised.
Programs that use input to interact with the user work, the trace is only printed
at the end of the execution.
Running as a tool
You can display the trace and other visualizations for existing programs (no
need to import atrace in the program).
Note: If you are using uv replace the python3 at the beginning with uv run
To display the trace:
python3 -m atrace examples/fizzbuzz.py
To save the trace to an svg file:
python3 -m atrace examples/fizzbuzz.py --svg local/fizzbuzz.svg
To display the trace as typst markup:
python3 -m atrace.typst examples/fizzbuzz.py
To display a line-by-line animation of the trace:
python3 -m atrace.animated examples/fibonacci.py
To display a histogram of how many times each line in a program is executed: (svg output works the same as for the trace)
python3 -m atrace.histogram examples/nested_loops.py
To display a line-by-line animation of the histogram:
python3 -m atrace.animated_histogram examples/fizzbuzz.py
To display the program with line numbers and syntax highlighting: (svg output also works here)
python3 -m atrace.code examples/fizzbuzz.py
Compatibility
Requires python version 3.10 or higher.
Tested with:
- cpython
- pypy
- Thonny (with the cpython backend)
Does not work well with
- Multithreaded programs
- Multi-module programs
- Debuggers
- Classes
- Context managers
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file atrace-1.1.2.tar.gz.
File metadata
- Download URL: atrace-1.1.2.tar.gz
- Upload date:
- Size: 56.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
513046cf97cc13dd101b0e95c140a47ea2f60a09b1e331f5767b6c0053eb396a
|
|
| MD5 |
8b4d2970d5d8d8d227cdebdf30a83577
|
|
| BLAKE2b-256 |
1bc864b0832c3a4b31019f7771cd2037edc39da118d296aeffaaad94568e63c8
|
File details
Details for the file atrace-1.1.2-py3-none-any.whl.
File metadata
- Download URL: atrace-1.1.2-py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb936dc1de326858e1f323536bb820f294cf6a761213ebba893252d4f2e391e5
|
|
| MD5 |
5f0076752ba1b9729fb7ef79e80bf104
|
|
| BLAKE2b-256 |
e0c11f0b4445740b3fb8c93d1c6358d85edaa566dac072b38d636c462b3be038
|