_tracemalloc: precise types, deduplicate tracemalloc (#4083)

This commit is contained in:
Shantanu
2020-05-27 20:36:21 -07:00
committed by GitHub
parent 5c1806ab88
commit e9531e0c18
5 changed files with 38 additions and 49 deletions

View File

@@ -2,15 +2,9 @@
import sys
from typing import List, Optional, Sequence, Tuple, Union, overload
from _tracemalloc import *
def clear_traces() -> None: ...
def get_object_traceback(obj: object) -> Optional[Traceback]: ...
def get_traceback_limit() -> int: ...
def get_traced_memory() -> Tuple[int, int]: ...
def get_tracemalloc_memory() -> int: ...
def is_tracing() -> bool: ...
def start(__nframe: int = ...) -> None: ...
def stop() -> None: ...
def take_snapshot() -> Snapshot: ...
if sys.version_info >= (3, 6):
@@ -31,25 +25,6 @@ class Filter:
else:
def __init__(self, inclusive: bool, filename_pattern: str, lineno: Optional[int] = ..., all_frames: bool = ...) -> None: ...
class Frame:
filename: str
lineno: int
def __init__(self, frame: Tuple[str, int]) -> None: ...
class Snapshot:
def __init__(self, traces: Tuple[Tuple[str, int], ...], traceback_limit: int) -> None: ...
def compare_to(self, old_snapshot: Snapshot, key_type: str, cumulative: bool = ...) -> List[StatisticDiff]: ...
def dump(self, filename: str) -> None: ...
if sys.version_info >= (3, 6):
def filter_traces(self, filters: Sequence[Union[DomainFilter, Filter]]) -> Snapshot: ...
else:
def filter_traces(self, filters: Sequence[Filter]) -> Snapshot: ...
@staticmethod
def load(filename: str) -> Snapshot: ...
def statistics(self, key_type: str, cumulative: bool = ...) -> List[Statistic]: ...
traceback_limit: int
traces: Sequence[Trace]
class Statistic:
count: int
size: int
@@ -64,21 +39,30 @@ class StatisticDiff:
traceback: Traceback
def __init__(self, traceback: Traceback, size: int, size_diff: int, count: int, count_diff: int) -> None: ...
_FrameTupleT = Tuple[str, int]
class Frame:
filename: str
lineno: int
def __init__(self, frame: _FrameTupleT) -> None: ...
if sys.version_info >= (3, 9):
_TraceTupleT = Union[Tuple[int, int, Sequence[_FrameTupleT], Optional[int]], Tuple[int, int, Sequence[_FrameTupleT]]]
else:
_TraceTupleT = Tuple[int, int, Sequence[_FrameTupleT]]
class Trace:
domain: int
size: int
traceback: Traceback
if sys.version_info >= (3, 9):
def __init__(self, trace: Union[Tuple[int, int, Tuple[Tuple[str, int], ...], Optional[int]], Tuple[int, int, Tuple[Tuple[str, int], ...]]]) -> None: ...
else:
def __init__(self, trace: Tuple[int, int, Tuple[Tuple[str, int], ...]]) -> None: ...
def __init__(self, trace: _TraceTupleT) -> None: ...
class Traceback(Sequence[Frame]):
if sys.version_info >= (3, 9):
total_nframe: Optional[int]
def __init__(self, frames: Tuple[Tuple[str, int], ...], total_nframe: Optional[int] = ...) -> None: ...
def __init__(self, frames: Sequence[_FrameTupleT], total_nframe: Optional[int] = ...) -> None: ...
else:
def __init__(self, frames: Tuple[Tuple[str, int], ...]) -> None: ...
def __init__(self, frames: Sequence[_FrameTupleT]) -> None: ...
if sys.version_info >= (3, 7):
def format(self, limit: Optional[int] = ..., most_recent_first: bool = ...) -> List[str]: ...
else:
@@ -88,3 +72,18 @@ class Traceback(Sequence[Frame]):
@overload
def __getitem__(self, s: slice) -> Sequence[Frame]: ...
def __len__(self) -> int: ...
class Snapshot:
def __init__(self, traces: Sequence[_TraceTupleT], traceback_limit: int) -> None: ...
def compare_to(self, old_snapshot: Snapshot, key_type: str, cumulative: bool = ...) -> List[StatisticDiff]: ...
def dump(self, filename: str) -> None: ...
if sys.version_info >= (3, 6):
def filter_traces(self, filters: Sequence[Union[DomainFilter, Filter]]) -> Snapshot: ...
else:
def filter_traces(self, filters: Sequence[Filter]) -> Snapshot: ...
@staticmethod
def load(filename: str) -> Snapshot: ...
def statistics(self, key_type: str, cumulative: bool = ...) -> List[Statistic]: ...
traceback_limit: int
traces: Sequence[Trace]