Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/python3.8/structmember.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 #ifndef Py_STRUCTMEMBER_H | |
2 #define Py_STRUCTMEMBER_H | |
3 #ifdef __cplusplus | |
4 extern "C" { | |
5 #endif | |
6 | |
7 | |
8 /* Interface to map C struct members to Python object attributes */ | |
9 | |
10 #include <stddef.h> /* For offsetof */ | |
11 | |
12 /* An array of PyMemberDef structures defines the name, type and offset | |
13 of selected members of a C structure. These can be read by | |
14 PyMember_GetOne() and set by PyMember_SetOne() (except if their READONLY | |
15 flag is set). The array must be terminated with an entry whose name | |
16 pointer is NULL. */ | |
17 | |
18 typedef struct PyMemberDef { | |
19 const char *name; | |
20 int type; | |
21 Py_ssize_t offset; | |
22 int flags; | |
23 const char *doc; | |
24 } PyMemberDef; | |
25 | |
26 /* Types */ | |
27 #define T_SHORT 0 | |
28 #define T_INT 1 | |
29 #define T_LONG 2 | |
30 #define T_FLOAT 3 | |
31 #define T_DOUBLE 4 | |
32 #define T_STRING 5 | |
33 #define T_OBJECT 6 | |
34 /* XXX the ordering here is weird for binary compatibility */ | |
35 #define T_CHAR 7 /* 1-character string */ | |
36 #define T_BYTE 8 /* 8-bit signed int */ | |
37 /* unsigned variants: */ | |
38 #define T_UBYTE 9 | |
39 #define T_USHORT 10 | |
40 #define T_UINT 11 | |
41 #define T_ULONG 12 | |
42 | |
43 /* Added by Jack: strings contained in the structure */ | |
44 #define T_STRING_INPLACE 13 | |
45 | |
46 /* Added by Lillo: bools contained in the structure (assumed char) */ | |
47 #define T_BOOL 14 | |
48 | |
49 #define T_OBJECT_EX 16 /* Like T_OBJECT, but raises AttributeError | |
50 when the value is NULL, instead of | |
51 converting to None. */ | |
52 #define T_LONGLONG 17 | |
53 #define T_ULONGLONG 18 | |
54 | |
55 #define T_PYSSIZET 19 /* Py_ssize_t */ | |
56 #define T_NONE 20 /* Value is always None */ | |
57 | |
58 | |
59 /* Flags */ | |
60 #define READONLY 1 | |
61 #define READ_RESTRICTED 2 | |
62 #define PY_WRITE_RESTRICTED 4 | |
63 #define RESTRICTED (READ_RESTRICTED | PY_WRITE_RESTRICTED) | |
64 | |
65 | |
66 /* Current API, use this */ | |
67 PyAPI_FUNC(PyObject *) PyMember_GetOne(const char *, struct PyMemberDef *); | |
68 PyAPI_FUNC(int) PyMember_SetOne(char *, struct PyMemberDef *, PyObject *); | |
69 | |
70 | |
71 #ifdef __cplusplus | |
72 } | |
73 #endif | |
74 #endif /* !Py_STRUCTMEMBER_H */ |