1#!/usr/bin/env python3
2"""
3
4
5
6"""
7# Import:
8from __future__ import annotations
9from typing import Final, Self
10from jgdv.debugging import TraceBuilder
11
12##--| Error Messages
13ErrorMSg_1 : Final[str] = "Test Message"
14
15
16##--| Errors
[docs]
17class JGDVError(Exception):
18 """ A Base Error Class for JGDV """
19
20 def __getitem__(self, val:None|int|slice) -> Self:
21 """ Use jgdv.debugging.TraceBuilder to control the traceback
22 of this error
23
24 """
25 match val:
26 case int() as x:
27 return self.with_traceback(TraceBuilder()[slice(x)])
28 case slice(start=None) as x:
29 adjusted = slice(1, x.stop, x.step)
30 return self.with_traceback(TraceBuilder()[adjusted])
31 case slice(start=int() as start) as x:
32 adjusted = slice(1+start, x.stop, x.step)
33 return self.with_traceback(TraceBuilder()[adjusted])
34 case _:
35 return self.with_traceback(TraceBuilder()[1:])