Skip to content

romazu/t4racker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

t4racker

PyPI Tests

Transparent time-travel tracker for Python objects. Records mutations to dicts, sets, lists, and custom objects—then replay state at any step.

Install

pip install t4racker

Usage

from t4racker import TTTTracker, TrackReplayer


class Algorithm:
    def __init__(self):
        self.visited = set()
        self.path = []


tracker = TTTTracker()
algo = Algorithm()
tracker.track(algo, tracked_fields=['visited', 'path'])
tracker.capture_snapshot('start')

algo.visited.add('A')
algo.path.append('A')
algo.visited.add('B')
algo.path.append('B')

# Export
data = tracker.to_dict()

# Replay
replayer = TrackReplayer(data)
state = replayer.state_at(2)  # State after step 2
print(state)  # {'visited': {'A', 'B'}, 'path': ['A']}

What it tracks

  • dict: __setitem__, __delitem__
  • set: add, remove, discard
  • list: append, pop, __setitem__, clear, extend
  • Custom objects: attribute assignments

Nested containers are tracked recursively.

Tests

pytest

License

MIT

About

Transparent Time-Travel Tracker: trace object states over time

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages