MCPcopy Index your code
hub / github.com/python/mypy / contains_sys_version_info

Function contains_sys_version_info

mypy/reachability.py:299–320  ·  view source on GitHub ↗
(expr: Expression)

Source from the content-addressed store, hash-verified

297
298
299def contains_sys_version_info(expr: Expression) -> None | int | tuple[int | None, int | None]:
300 if is_sys_attr(expr, "version_info"):
301 return (None, None) # Same as sys.version_info[:]
302 if isinstance(expr, IndexExpr) and is_sys_attr(expr.base, "version_info"):
303 index = expr.index
304 if isinstance(index, IntExpr):
305 return index.value
306 if isinstance(index, SliceExpr):
307 if index.stride is not None:
308 if not isinstance(index.stride, IntExpr) or index.stride.value != 1:
309 return None
310 begin = end = None
311 if index.begin_index is not None:
312 if not isinstance(index.begin_index, IntExpr):
313 return None
314 begin = index.begin_index.value
315 if index.end_index is not None:
316 if not isinstance(index.end_index, IntExpr):
317 return None
318 end = index.end_index.value
319 return (begin, end)
320 return None
321
322
323def is_sys_attr(expr: Expression, name: str) -> bool:

Callers 1

Calls 2

is_sys_attrFunction · 0.85
isinstanceFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…