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