@@ -47,7 +47,7 @@ def should_trace_file(fname: str) -> bool:
47
47
# tool_id = 1 is designated for coverage, but we intentionally choose a
48
48
# non-reserved tool id so we can co-exist with coverage tools.
49
49
MONITORING_TOOL_ID = 3
50
- if sys . version_info [: 2 ] >= ( 3 , 12 ):
50
+ if hasattr ( sys , "monitoring" ):
51
51
MONITORING_EVENTS = {sys .monitoring .events .LINE : "trace_line" }
52
52
53
53
@@ -69,13 +69,11 @@ def __init__(self, *, should_trace: bool) -> None:
69
69
70
70
@staticmethod
71
71
def can_trace () -> bool :
72
- return (
73
- (sys .version_info [:2 ] < (3 , 12 ) and sys .gettrace () is None )
74
- or (
75
- sys .version_info [:2 ] >= (3 , 12 )
76
- and sys .monitoring .get_tool (MONITORING_TOOL_ID ) is None
77
- )
78
- ) and not PYPY
72
+ if PYPY :
73
+ return False
74
+ if hasattr (sys , "monitoring" ):
75
+ return sys .monitoring .get_tool (MONITORING_TOOL_ID ) is None
76
+ return sys .gettrace () is None
79
77
80
78
def trace (self , frame , event , arg ):
81
79
try :
@@ -107,7 +105,7 @@ def __enter__(self):
107
105
if not self ._should_trace :
108
106
return self
109
107
110
- if sys . version_info [: 2 ] < ( 3 , 12 ):
108
+ if not hasattr ( sys , "monitoring" ):
111
109
sys .settrace (self .trace )
112
110
return self
113
111
@@ -130,7 +128,7 @@ def __exit__(self, *args, **kwargs):
130
128
if not self ._should_trace :
131
129
return
132
130
133
- if sys . version_info [: 2 ] < ( 3 , 12 ):
131
+ if not hasattr ( sys , "monitoring" ):
134
132
sys .settrace (None )
135
133
return
136
134
0 commit comments