MCPcopy Create free account
hub / github.com/NVIDIA/TensorRT / MarkerTracker

Class MarkerTracker

tools/Polygraphy/tests/test_examples.py:58–103  ·  view source on GitHub ↗

Keeps track of active markers in the current README on a line-by-line basis.

Source from the content-addressed store, hash-verified

56
57
58class MarkerTracker:
59 """
60 Keeps track of active markers in the current README on a line-by-line basis.
61 """
62
63 def __init__(self, readme):
64 self.readme = readme
65 self.active_markers = set()
66 self.entering_markers = set() # The markers that we are currently entering
67 self.exiting_markers = set() # The markers that we are currently exiting
68
69 def __enter__(self):
70 self.file = open(self.readme, "r")
71 return self
72
73 def __exit__(self, exc_type, exc_value, traceback):
74 self.file.close()
75
76 def __iter__(self):
77 for line in self.file.readlines():
78 stripped_line = line.strip()
79 self.entering_markers.clear()
80 self.exiting_markers.clear()
81
82 for marker in VALID_MARKERS.values():
83 if not self.is_in(marker) and marker.matches_start(stripped_line):
84 self.active_markers.add(marker)
85 self.entering_markers.add(marker)
86 elif marker.matches_end(stripped_line):
87 self.active_markers.remove(marker)
88 self.exiting_markers.add(marker)
89
90 yield line.rstrip()
91
92 def is_in(self, marker):
93 """
94 Whether we are currently on a line between the specified start and end marker.
95 This will always return False for a line containing the marker itself.
96 """
97 return marker in self.active_markers and not (self.entering(marker) or self.exiting(marker))
98
99 def entering(self, marker):
100 return marker in self.entering_markers
101
102 def exiting(self, marker):
103 return marker in self.exiting_markers
104
105
106class CommandBlock:

Callers 1

Calls

no outgoing calls

Tested by 1