Files
typthon/Modules/_testcapi/function.c
copilot-swe-agent[bot] b198f511d2 Rename Py_ to Ty_ throughout C API
Massive automated renaming of all Py_/PyObject/etc. prefixes to Ty_/TyObject/etc.
This includes:
- All public API types (TyObject, TyTypeObject, etc.)
- All public API functions (Ty_Initialize, Ty_BuildValue, etc.)
- All internal API (_Ty_ prefixes)
- Reference counting macros (Ty_INCREF, Ty_DECREF, etc.)
- Type flags (Ty_TPFLAGS_*)
- Debug flags (Ty_DEBUG, Ty_TRACE_REFS, etc.)
- All object type APIs (TyList_, TyDict_, TyUnicode_, etc.)

This changes over 60,000 occurrences across 1000+ files.

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2025-12-29 17:37:49 +00:00

144 lines
3.5 KiB
C

#include "parts.h"
#include "util.h"
static TyObject *
function_get_code(TyObject *self, TyObject *func)
{
TyObject *code = TyFunction_GetCode(func);
if (code != NULL) {
return Ty_NewRef(code);
} else {
return NULL;
}
}
static TyObject *
function_get_globals(TyObject *self, TyObject *func)
{
TyObject *globals = TyFunction_GetGlobals(func);
if (globals != NULL) {
return Ty_NewRef(globals);
} else {
return NULL;
}
}
static TyObject *
function_get_module(TyObject *self, TyObject *func)
{
TyObject *module = TyFunction_GetModule(func);
if (module != NULL) {
return Ty_NewRef(module);
} else {
return NULL;
}
}
static TyObject *
function_get_defaults(TyObject *self, TyObject *func)
{
TyObject *defaults = TyFunction_GetDefaults(func);
if (defaults != NULL) {
return Ty_NewRef(defaults);
} else if (TyErr_Occurred()) {
return NULL;
} else {
Ty_RETURN_NONE; // This can happen when `defaults` are set to `None`
}
}
static TyObject *
function_set_defaults(TyObject *self, TyObject *args)
{
TyObject *func = NULL, *defaults = NULL;
if (!TyArg_ParseTuple(args, "OO", &func, &defaults)) {
return NULL;
}
int result = TyFunction_SetDefaults(func, defaults);
if (result == -1)
return NULL;
Ty_RETURN_NONE;
}
static TyObject *
function_get_kw_defaults(TyObject *self, TyObject *func)
{
TyObject *defaults = TyFunction_GetKwDefaults(func);
if (defaults != NULL) {
return Ty_NewRef(defaults);
} else if (TyErr_Occurred()) {
return NULL;
} else {
Ty_RETURN_NONE; // This can happen when `kwdefaults` are set to `None`
}
}
static TyObject *
function_set_kw_defaults(TyObject *self, TyObject *args)
{
TyObject *func = NULL, *defaults = NULL;
if (!TyArg_ParseTuple(args, "OO", &func, &defaults)) {
return NULL;
}
int result = TyFunction_SetKwDefaults(func, defaults);
if (result == -1)
return NULL;
Ty_RETURN_NONE;
}
static TyObject *
function_get_closure(TyObject *self, TyObject *func)
{
TyObject *closure = TyFunction_GetClosure(func);
if (closure != NULL) {
return Ty_NewRef(closure);
} else if (TyErr_Occurred()) {
return NULL;
} else {
Ty_RETURN_NONE; // This can happen when `closure` is set to `None`
}
}
static TyObject *
function_set_closure(TyObject *self, TyObject *args)
{
TyObject *func = NULL, *closure = NULL;
if (!TyArg_ParseTuple(args, "OO", &func, &closure)) {
return NULL;
}
int result = TyFunction_SetClosure(func, closure);
if (result == -1) {
return NULL;
}
Ty_RETURN_NONE;
}
static TyMethodDef test_methods[] = {
{"function_get_code", function_get_code, METH_O, NULL},
{"function_get_globals", function_get_globals, METH_O, NULL},
{"function_get_module", function_get_module, METH_O, NULL},
{"function_get_defaults", function_get_defaults, METH_O, NULL},
{"function_set_defaults", function_set_defaults, METH_VARARGS, NULL},
{"function_get_kw_defaults", function_get_kw_defaults, METH_O, NULL},
{"function_set_kw_defaults", function_set_kw_defaults, METH_VARARGS, NULL},
{"function_get_closure", function_get_closure, METH_O, NULL},
{"function_set_closure", function_set_closure, METH_VARARGS, NULL},
{NULL},
};
int
_PyTestCapi_Init_Function(TyObject *m)
{
return TyModule_AddFunctions(m, test_methods);
}