mirror of
https://github.com/johndoe6345789/typthon.git
synced 2026-04-24 13:45:05 +00:00
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>
147 lines
5.5 KiB
C
147 lines
5.5 KiB
C
// Module support interface
|
|
|
|
#ifndef Ty_MODSUPPORT_H
|
|
#define Ty_MODSUPPORT_H
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
PyAPI_FUNC(int) TyArg_Parse(TyObject *, const char *, ...);
|
|
PyAPI_FUNC(int) TyArg_ParseTuple(TyObject *, const char *, ...);
|
|
PyAPI_FUNC(int) TyArg_ParseTupleAndKeywords(TyObject *, TyObject *,
|
|
const char *, PY_CXX_CONST char * const *, ...);
|
|
PyAPI_FUNC(int) TyArg_VaParse(TyObject *, const char *, va_list);
|
|
PyAPI_FUNC(int) TyArg_VaParseTupleAndKeywords(TyObject *, TyObject *,
|
|
const char *, PY_CXX_CONST char * const *, va_list);
|
|
|
|
PyAPI_FUNC(int) TyArg_ValidateKeywordArguments(TyObject *);
|
|
PyAPI_FUNC(int) TyArg_UnpackTuple(TyObject *, const char *, Ty_ssize_t, Ty_ssize_t, ...);
|
|
PyAPI_FUNC(TyObject *) Ty_BuildValue(const char *, ...);
|
|
PyAPI_FUNC(TyObject *) Ty_VaBuildValue(const char *, va_list);
|
|
|
|
#if !defined(Ty_LIMITED_API) || Ty_LIMITED_API+0 >= 0x030a0000
|
|
// Add an attribute with name 'name' and value 'obj' to the module 'mod.
|
|
// On success, return 0.
|
|
// On error, raise an exception and return -1.
|
|
PyAPI_FUNC(int) TyModule_AddObjectRef(TyObject *mod, const char *name, TyObject *value);
|
|
#endif /* Ty_LIMITED_API */
|
|
|
|
#if !defined(Ty_LIMITED_API) || Ty_LIMITED_API+0 >= 0x030d0000
|
|
// Similar to TyModule_AddObjectRef() but steal a reference to 'value'.
|
|
PyAPI_FUNC(int) TyModule_Add(TyObject *mod, const char *name, TyObject *value);
|
|
#endif /* Ty_LIMITED_API */
|
|
|
|
// Similar to TyModule_AddObjectRef() and TyModule_Add() but steal
|
|
// a reference to 'value' on success and only on success.
|
|
// Errorprone. Should not be used in new code.
|
|
PyAPI_FUNC(int) TyModule_AddObject(TyObject *mod, const char *, TyObject *value);
|
|
|
|
PyAPI_FUNC(int) TyModule_AddIntConstant(TyObject *, const char *, long);
|
|
PyAPI_FUNC(int) TyModule_AddStringConstant(TyObject *, const char *, const char *);
|
|
|
|
#if !defined(Ty_LIMITED_API) || Ty_LIMITED_API+0 >= 0x03090000
|
|
/* New in 3.9 */
|
|
PyAPI_FUNC(int) TyModule_AddType(TyObject *module, TyTypeObject *type);
|
|
#endif /* Ty_LIMITED_API */
|
|
|
|
#define TyModule_AddIntMacro(m, c) TyModule_AddIntConstant((m), #c, (c))
|
|
#define TyModule_AddStringMacro(m, c) TyModule_AddStringConstant((m), #c, (c))
|
|
|
|
#if !defined(Ty_LIMITED_API) || Ty_LIMITED_API+0 >= 0x03050000
|
|
/* New in 3.5 */
|
|
PyAPI_FUNC(int) TyModule_SetDocString(TyObject *, const char *);
|
|
PyAPI_FUNC(int) TyModule_AddFunctions(TyObject *, TyMethodDef *);
|
|
PyAPI_FUNC(int) TyModule_ExecDef(TyObject *module, TyModuleDef *def);
|
|
#endif
|
|
|
|
#define Ty_CLEANUP_SUPPORTED 0x20000
|
|
|
|
#define PYTHON_API_VERSION 1013
|
|
#define PYTHON_API_STRING "1013"
|
|
/* The API version is maintained (independently from the Python version)
|
|
so we can detect mismatches between the interpreter and dynamically
|
|
loaded modules. These are diagnosed by an error message but
|
|
the module is still loaded (because the mismatch can only be tested
|
|
after loading the module). The error message is intended to
|
|
explain the core dump a few seconds later.
|
|
|
|
The symbol PYTHON_API_STRING defines the same value as a string
|
|
literal. *** PLEASE MAKE SURE THE DEFINITIONS MATCH. ***
|
|
|
|
Please add a line or two to the top of this log for each API
|
|
version change:
|
|
|
|
22-Feb-2006 MvL 1013 PEP 353 - long indices for sequence lengths
|
|
|
|
19-Aug-2002 GvR 1012 Changes to string object struct for
|
|
interning changes, saving 3 bytes.
|
|
|
|
17-Jul-2001 GvR 1011 Descr-branch, just to be on the safe side
|
|
|
|
25-Jan-2001 FLD 1010 Parameters added to TyCode_New() and
|
|
TyFrame_New(); Python 2.1a2
|
|
|
|
14-Mar-2000 GvR 1009 Unicode API added
|
|
|
|
3-Jan-1999 GvR 1007 Decided to change back! (Don't reuse 1008!)
|
|
|
|
3-Dec-1998 GvR 1008 Python 1.5.2b1
|
|
|
|
18-Jan-1997 GvR 1007 string interning and other speedups
|
|
|
|
11-Oct-1996 GvR renamed Ty_Ellipses to Ty_Ellipsis :-(
|
|
|
|
30-Jul-1996 GvR Slice and ellipses syntax added
|
|
|
|
23-Jul-1996 GvR For 1.4 -- better safe than sorry this time :-)
|
|
|
|
7-Nov-1995 GvR Keyword arguments (should've been done at 1.3 :-( )
|
|
|
|
10-Jan-1995 GvR Renamed globals to new naming scheme
|
|
|
|
9-Jan-1995 GvR Initial version (incompatible with older API)
|
|
*/
|
|
|
|
/* The PYTHON_ABI_VERSION is introduced in PEP 384. For the lifetime of
|
|
Python 3, it will stay at the value of 3; changes to the limited API
|
|
must be performed in a strictly backwards-compatible manner. */
|
|
#define PYTHON_ABI_VERSION 3
|
|
#define PYTHON_ABI_STRING "3"
|
|
|
|
PyAPI_FUNC(TyObject *) TyModule_Create2(TyModuleDef*, int apiver);
|
|
|
|
#ifdef Ty_LIMITED_API
|
|
#define TyModule_Create(module) \
|
|
TyModule_Create2((module), PYTHON_ABI_VERSION)
|
|
#else
|
|
#define TyModule_Create(module) \
|
|
TyModule_Create2((module), PYTHON_API_VERSION)
|
|
#endif
|
|
|
|
#if !defined(Ty_LIMITED_API) || Ty_LIMITED_API+0 >= 0x03050000
|
|
/* New in 3.5 */
|
|
PyAPI_FUNC(TyObject *) TyModule_FromDefAndSpec2(TyModuleDef *def,
|
|
TyObject *spec,
|
|
int module_api_version);
|
|
|
|
#ifdef Ty_LIMITED_API
|
|
#define TyModule_FromDefAndSpec(module, spec) \
|
|
TyModule_FromDefAndSpec2((module), (spec), PYTHON_ABI_VERSION)
|
|
#else
|
|
#define TyModule_FromDefAndSpec(module, spec) \
|
|
TyModule_FromDefAndSpec2((module), (spec), PYTHON_API_VERSION)
|
|
#endif /* Ty_LIMITED_API */
|
|
|
|
#endif /* New in 3.5 */
|
|
|
|
#ifndef Ty_LIMITED_API
|
|
# define Ty_CPYTHON_MODSUPPORT_H
|
|
# include "cpython/modsupport.h"
|
|
# undef Ty_CPYTHON_MODSUPPORT_H
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* !Ty_MODSUPPORT_H */
|