123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- #ifndef Py_DICTOBJECT_H
- #define Py_DICTOBJECT_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define PyDict_MINSIZE 8
- typedef struct {
-
- Py_ssize_t me_hash;
- PyObject *me_key;
- PyObject *me_value;
- } PyDictEntry;
- typedef struct _dictobject PyDictObject;
- struct _dictobject {
- PyObject_HEAD
- Py_ssize_t ma_fill;
- Py_ssize_t ma_used;
-
- Py_ssize_t ma_mask;
-
- PyDictEntry *ma_table;
- PyDictEntry *(*ma_lookup)(PyDictObject *mp, PyObject *key, long hash);
- PyDictEntry ma_smalltable[PyDict_MINSIZE];
- };
- PyAPI_DATA(PyTypeObject) PyDict_Type;
- PyAPI_DATA(PyTypeObject) PyDictIterKey_Type;
- PyAPI_DATA(PyTypeObject) PyDictIterValue_Type;
- PyAPI_DATA(PyTypeObject) PyDictIterItem_Type;
- PyAPI_DATA(PyTypeObject) PyDictKeys_Type;
- PyAPI_DATA(PyTypeObject) PyDictItems_Type;
- PyAPI_DATA(PyTypeObject) PyDictValues_Type;
- #define PyDict_Check(op) \
- PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_DICT_SUBCLASS)
- #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
- #define PyDictKeys_Check(op) (Py_TYPE(op) == &PyDictKeys_Type)
- #define PyDictItems_Check(op) (Py_TYPE(op) == &PyDictItems_Type)
- #define PyDictValues_Check(op) (Py_TYPE(op) == &PyDictValues_Type)
- # define PyDictViewSet_Check(op) \
- (PyDictKeys_Check(op) || PyDictItems_Check(op))
- PyAPI_FUNC(PyObject *) PyDict_New(void);
- PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key);
- PyAPI_FUNC(PyObject *) _PyDict_GetItemWithError(PyObject *mp, PyObject *key);
- PyAPI_FUNC(int) PyDict_SetItem(PyObject *mp, PyObject *key, PyObject *item);
- PyAPI_FUNC(int) PyDict_DelItem(PyObject *mp, PyObject *key);
- PyAPI_FUNC(void) PyDict_Clear(PyObject *mp);
- PyAPI_FUNC(int) PyDict_Next(
- PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value);
- PyAPI_FUNC(int) _PyDict_Next(
- PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, long *hash);
- PyAPI_FUNC(PyObject *) PyDict_Keys(PyObject *mp);
- PyAPI_FUNC(PyObject *) PyDict_Values(PyObject *mp);
- PyAPI_FUNC(PyObject *) PyDict_Items(PyObject *mp);
- PyAPI_FUNC(Py_ssize_t) PyDict_Size(PyObject *mp);
- PyAPI_FUNC(PyObject *) PyDict_Copy(PyObject *mp);
- PyAPI_FUNC(int) PyDict_Contains(PyObject *mp, PyObject *key);
- PyAPI_FUNC(int) _PyDict_Contains(PyObject *mp, PyObject *key, long hash);
- PyAPI_FUNC(PyObject *) _PyDict_NewPresized(Py_ssize_t minused);
- PyAPI_FUNC(void) _PyDict_MaybeUntrack(PyObject *mp);
- PyAPI_FUNC(int) PyDict_Update(PyObject *mp, PyObject *other);
- PyAPI_FUNC(int) PyDict_Merge(PyObject *mp,
- PyObject *other,
- int override);
- PyAPI_FUNC(int) PyDict_MergeFromSeq2(PyObject *d,
- PyObject *seq2,
- int override);
- PyAPI_FUNC(PyObject *) PyDict_GetItemString(PyObject *dp, const char *key);
- PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item);
- PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key);
- #ifdef __cplusplus
- }
- #endif
- #endif
|