Frame of a traceback.
| 139 | |
| 140 | @total_ordering |
| 141 | class Frame: |
| 142 | """ |
| 143 | Frame of a traceback. |
| 144 | """ |
| 145 | __slots__ = ("_frame",) |
| 146 | |
| 147 | def __init__(self, frame): |
| 148 | # frame is a tuple: (filename: str, lineno: int) |
| 149 | self._frame = frame |
| 150 | |
| 151 | @property |
| 152 | def filename(self): |
| 153 | return self._frame[0] |
| 154 | |
| 155 | @property |
| 156 | def lineno(self): |
| 157 | return self._frame[1] |
| 158 | |
| 159 | def __eq__(self, other): |
| 160 | if not isinstance(other, Frame): |
| 161 | return NotImplemented |
| 162 | return (self._frame == other._frame) |
| 163 | |
| 164 | def __lt__(self, other): |
| 165 | if not isinstance(other, Frame): |
| 166 | return NotImplemented |
| 167 | return (self._frame < other._frame) |
| 168 | |
| 169 | def __hash__(self): |
| 170 | return hash(self._frame) |
| 171 | |
| 172 | def __str__(self): |
| 173 | return "%s:%s" % (self.filename, self.lineno) |
| 174 | |
| 175 | def __repr__(self): |
| 176 | return "<Frame filename=%r lineno=%r>" % (self.filename, self.lineno) |
| 177 | |
| 178 | |
| 179 | @total_ordering |
no outgoing calls
no test coverage detected