17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc_is_tracing__doc__, 67db96d56Sopenharmony_ci"is_tracing($module, /)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Return True if the tracemalloc module is tracing Python memory allocations."); 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci#define _TRACEMALLOC_IS_TRACING_METHODDEF \ 127db96d56Sopenharmony_ci {"is_tracing", (PyCFunction)_tracemalloc_is_tracing, METH_NOARGS, _tracemalloc_is_tracing__doc__}, 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_cistatic PyObject * 157db96d56Sopenharmony_ci_tracemalloc_is_tracing_impl(PyObject *module); 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_cistatic PyObject * 187db96d56Sopenharmony_ci_tracemalloc_is_tracing(PyObject *module, PyObject *Py_UNUSED(ignored)) 197db96d56Sopenharmony_ci{ 207db96d56Sopenharmony_ci return _tracemalloc_is_tracing_impl(module); 217db96d56Sopenharmony_ci} 227db96d56Sopenharmony_ci 237db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc_clear_traces__doc__, 247db96d56Sopenharmony_ci"clear_traces($module, /)\n" 257db96d56Sopenharmony_ci"--\n" 267db96d56Sopenharmony_ci"\n" 277db96d56Sopenharmony_ci"Clear traces of memory blocks allocated by Python."); 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci#define _TRACEMALLOC_CLEAR_TRACES_METHODDEF \ 307db96d56Sopenharmony_ci {"clear_traces", (PyCFunction)_tracemalloc_clear_traces, METH_NOARGS, _tracemalloc_clear_traces__doc__}, 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_cistatic PyObject * 337db96d56Sopenharmony_ci_tracemalloc_clear_traces_impl(PyObject *module); 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_cistatic PyObject * 367db96d56Sopenharmony_ci_tracemalloc_clear_traces(PyObject *module, PyObject *Py_UNUSED(ignored)) 377db96d56Sopenharmony_ci{ 387db96d56Sopenharmony_ci return _tracemalloc_clear_traces_impl(module); 397db96d56Sopenharmony_ci} 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc__get_traces__doc__, 427db96d56Sopenharmony_ci"_get_traces($module, /)\n" 437db96d56Sopenharmony_ci"--\n" 447db96d56Sopenharmony_ci"\n" 457db96d56Sopenharmony_ci"Get traces of all memory blocks allocated by Python.\n" 467db96d56Sopenharmony_ci"\n" 477db96d56Sopenharmony_ci"Return a list of (size: int, traceback: tuple) tuples.\n" 487db96d56Sopenharmony_ci"traceback is a tuple of (filename: str, lineno: int) tuples.\n" 497db96d56Sopenharmony_ci"\n" 507db96d56Sopenharmony_ci"Return an empty list if the tracemalloc module is disabled."); 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_ci#define _TRACEMALLOC__GET_TRACES_METHODDEF \ 537db96d56Sopenharmony_ci {"_get_traces", (PyCFunction)_tracemalloc__get_traces, METH_NOARGS, _tracemalloc__get_traces__doc__}, 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_cistatic PyObject * 567db96d56Sopenharmony_ci_tracemalloc__get_traces_impl(PyObject *module); 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_cistatic PyObject * 597db96d56Sopenharmony_ci_tracemalloc__get_traces(PyObject *module, PyObject *Py_UNUSED(ignored)) 607db96d56Sopenharmony_ci{ 617db96d56Sopenharmony_ci return _tracemalloc__get_traces_impl(module); 627db96d56Sopenharmony_ci} 637db96d56Sopenharmony_ci 647db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc__get_object_traceback__doc__, 657db96d56Sopenharmony_ci"_get_object_traceback($module, obj, /)\n" 667db96d56Sopenharmony_ci"--\n" 677db96d56Sopenharmony_ci"\n" 687db96d56Sopenharmony_ci"Get the traceback where the Python object obj was allocated.\n" 697db96d56Sopenharmony_ci"\n" 707db96d56Sopenharmony_ci"Return a tuple of (filename: str, lineno: int) tuples.\n" 717db96d56Sopenharmony_ci"Return None if the tracemalloc module is disabled or did not\n" 727db96d56Sopenharmony_ci"trace the allocation of the object."); 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ci#define _TRACEMALLOC__GET_OBJECT_TRACEBACK_METHODDEF \ 757db96d56Sopenharmony_ci {"_get_object_traceback", (PyCFunction)_tracemalloc__get_object_traceback, METH_O, _tracemalloc__get_object_traceback__doc__}, 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc_start__doc__, 787db96d56Sopenharmony_ci"start($module, nframe=1, /)\n" 797db96d56Sopenharmony_ci"--\n" 807db96d56Sopenharmony_ci"\n" 817db96d56Sopenharmony_ci"Start tracing Python memory allocations.\n" 827db96d56Sopenharmony_ci"\n" 837db96d56Sopenharmony_ci"Also set the maximum number of frames stored in the traceback of a\n" 847db96d56Sopenharmony_ci"trace to nframe."); 857db96d56Sopenharmony_ci 867db96d56Sopenharmony_ci#define _TRACEMALLOC_START_METHODDEF \ 877db96d56Sopenharmony_ci {"start", _PyCFunction_CAST(_tracemalloc_start), METH_FASTCALL, _tracemalloc_start__doc__}, 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_cistatic PyObject * 907db96d56Sopenharmony_ci_tracemalloc_start_impl(PyObject *module, int nframe); 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_cistatic PyObject * 937db96d56Sopenharmony_ci_tracemalloc_start(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 947db96d56Sopenharmony_ci{ 957db96d56Sopenharmony_ci PyObject *return_value = NULL; 967db96d56Sopenharmony_ci int nframe = 1; 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("start", nargs, 0, 1)) { 997db96d56Sopenharmony_ci goto exit; 1007db96d56Sopenharmony_ci } 1017db96d56Sopenharmony_ci if (nargs < 1) { 1027db96d56Sopenharmony_ci goto skip_optional; 1037db96d56Sopenharmony_ci } 1047db96d56Sopenharmony_ci nframe = _PyLong_AsInt(args[0]); 1057db96d56Sopenharmony_ci if (nframe == -1 && PyErr_Occurred()) { 1067db96d56Sopenharmony_ci goto exit; 1077db96d56Sopenharmony_ci } 1087db96d56Sopenharmony_ciskip_optional: 1097db96d56Sopenharmony_ci return_value = _tracemalloc_start_impl(module, nframe); 1107db96d56Sopenharmony_ci 1117db96d56Sopenharmony_ciexit: 1127db96d56Sopenharmony_ci return return_value; 1137db96d56Sopenharmony_ci} 1147db96d56Sopenharmony_ci 1157db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc_stop__doc__, 1167db96d56Sopenharmony_ci"stop($module, /)\n" 1177db96d56Sopenharmony_ci"--\n" 1187db96d56Sopenharmony_ci"\n" 1197db96d56Sopenharmony_ci"Stop tracing Python memory allocations.\n" 1207db96d56Sopenharmony_ci"\n" 1217db96d56Sopenharmony_ci"Also clear traces of memory blocks allocated by Python."); 1227db96d56Sopenharmony_ci 1237db96d56Sopenharmony_ci#define _TRACEMALLOC_STOP_METHODDEF \ 1247db96d56Sopenharmony_ci {"stop", (PyCFunction)_tracemalloc_stop, METH_NOARGS, _tracemalloc_stop__doc__}, 1257db96d56Sopenharmony_ci 1267db96d56Sopenharmony_cistatic PyObject * 1277db96d56Sopenharmony_ci_tracemalloc_stop_impl(PyObject *module); 1287db96d56Sopenharmony_ci 1297db96d56Sopenharmony_cistatic PyObject * 1307db96d56Sopenharmony_ci_tracemalloc_stop(PyObject *module, PyObject *Py_UNUSED(ignored)) 1317db96d56Sopenharmony_ci{ 1327db96d56Sopenharmony_ci return _tracemalloc_stop_impl(module); 1337db96d56Sopenharmony_ci} 1347db96d56Sopenharmony_ci 1357db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc_get_traceback_limit__doc__, 1367db96d56Sopenharmony_ci"get_traceback_limit($module, /)\n" 1377db96d56Sopenharmony_ci"--\n" 1387db96d56Sopenharmony_ci"\n" 1397db96d56Sopenharmony_ci"Get the maximum number of frames stored in the traceback of a trace.\n" 1407db96d56Sopenharmony_ci"\n" 1417db96d56Sopenharmony_ci"By default, a trace of an allocated memory block only stores\n" 1427db96d56Sopenharmony_ci"the most recent frame: the limit is 1."); 1437db96d56Sopenharmony_ci 1447db96d56Sopenharmony_ci#define _TRACEMALLOC_GET_TRACEBACK_LIMIT_METHODDEF \ 1457db96d56Sopenharmony_ci {"get_traceback_limit", (PyCFunction)_tracemalloc_get_traceback_limit, METH_NOARGS, _tracemalloc_get_traceback_limit__doc__}, 1467db96d56Sopenharmony_ci 1477db96d56Sopenharmony_cistatic PyObject * 1487db96d56Sopenharmony_ci_tracemalloc_get_traceback_limit_impl(PyObject *module); 1497db96d56Sopenharmony_ci 1507db96d56Sopenharmony_cistatic PyObject * 1517db96d56Sopenharmony_ci_tracemalloc_get_traceback_limit(PyObject *module, PyObject *Py_UNUSED(ignored)) 1527db96d56Sopenharmony_ci{ 1537db96d56Sopenharmony_ci return _tracemalloc_get_traceback_limit_impl(module); 1547db96d56Sopenharmony_ci} 1557db96d56Sopenharmony_ci 1567db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc_get_tracemalloc_memory__doc__, 1577db96d56Sopenharmony_ci"get_tracemalloc_memory($module, /)\n" 1587db96d56Sopenharmony_ci"--\n" 1597db96d56Sopenharmony_ci"\n" 1607db96d56Sopenharmony_ci"Get the memory usage in bytes of the tracemalloc module.\n" 1617db96d56Sopenharmony_ci"\n" 1627db96d56Sopenharmony_ci"This memory is used internally to trace memory allocations."); 1637db96d56Sopenharmony_ci 1647db96d56Sopenharmony_ci#define _TRACEMALLOC_GET_TRACEMALLOC_MEMORY_METHODDEF \ 1657db96d56Sopenharmony_ci {"get_tracemalloc_memory", (PyCFunction)_tracemalloc_get_tracemalloc_memory, METH_NOARGS, _tracemalloc_get_tracemalloc_memory__doc__}, 1667db96d56Sopenharmony_ci 1677db96d56Sopenharmony_cistatic PyObject * 1687db96d56Sopenharmony_ci_tracemalloc_get_tracemalloc_memory_impl(PyObject *module); 1697db96d56Sopenharmony_ci 1707db96d56Sopenharmony_cistatic PyObject * 1717db96d56Sopenharmony_ci_tracemalloc_get_tracemalloc_memory(PyObject *module, PyObject *Py_UNUSED(ignored)) 1727db96d56Sopenharmony_ci{ 1737db96d56Sopenharmony_ci return _tracemalloc_get_tracemalloc_memory_impl(module); 1747db96d56Sopenharmony_ci} 1757db96d56Sopenharmony_ci 1767db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc_get_traced_memory__doc__, 1777db96d56Sopenharmony_ci"get_traced_memory($module, /)\n" 1787db96d56Sopenharmony_ci"--\n" 1797db96d56Sopenharmony_ci"\n" 1807db96d56Sopenharmony_ci"Get the current size and peak size of memory blocks traced by tracemalloc.\n" 1817db96d56Sopenharmony_ci"\n" 1827db96d56Sopenharmony_ci"Returns a tuple: (current: int, peak: int)."); 1837db96d56Sopenharmony_ci 1847db96d56Sopenharmony_ci#define _TRACEMALLOC_GET_TRACED_MEMORY_METHODDEF \ 1857db96d56Sopenharmony_ci {"get_traced_memory", (PyCFunction)_tracemalloc_get_traced_memory, METH_NOARGS, _tracemalloc_get_traced_memory__doc__}, 1867db96d56Sopenharmony_ci 1877db96d56Sopenharmony_cistatic PyObject * 1887db96d56Sopenharmony_ci_tracemalloc_get_traced_memory_impl(PyObject *module); 1897db96d56Sopenharmony_ci 1907db96d56Sopenharmony_cistatic PyObject * 1917db96d56Sopenharmony_ci_tracemalloc_get_traced_memory(PyObject *module, PyObject *Py_UNUSED(ignored)) 1927db96d56Sopenharmony_ci{ 1937db96d56Sopenharmony_ci return _tracemalloc_get_traced_memory_impl(module); 1947db96d56Sopenharmony_ci} 1957db96d56Sopenharmony_ci 1967db96d56Sopenharmony_ciPyDoc_STRVAR(_tracemalloc_reset_peak__doc__, 1977db96d56Sopenharmony_ci"reset_peak($module, /)\n" 1987db96d56Sopenharmony_ci"--\n" 1997db96d56Sopenharmony_ci"\n" 2007db96d56Sopenharmony_ci"Set the peak size of memory blocks traced by tracemalloc to the current size.\n" 2017db96d56Sopenharmony_ci"\n" 2027db96d56Sopenharmony_ci"Do nothing if the tracemalloc module is not tracing memory allocations."); 2037db96d56Sopenharmony_ci 2047db96d56Sopenharmony_ci#define _TRACEMALLOC_RESET_PEAK_METHODDEF \ 2057db96d56Sopenharmony_ci {"reset_peak", (PyCFunction)_tracemalloc_reset_peak, METH_NOARGS, _tracemalloc_reset_peak__doc__}, 2067db96d56Sopenharmony_ci 2077db96d56Sopenharmony_cistatic PyObject * 2087db96d56Sopenharmony_ci_tracemalloc_reset_peak_impl(PyObject *module); 2097db96d56Sopenharmony_ci 2107db96d56Sopenharmony_cistatic PyObject * 2117db96d56Sopenharmony_ci_tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored)) 2127db96d56Sopenharmony_ci{ 2137db96d56Sopenharmony_ci return _tracemalloc_reset_peak_impl(module); 2147db96d56Sopenharmony_ci} 2157db96d56Sopenharmony_ci/*[clinic end generated code: output=2ae4fe05f1a340c9 input=a9049054013a1b77]*/ 216