404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.21.114.165: ~ $
#ifndef Py_DICTOBJECT_H
#define Py_DICTOBJECT_H
#ifdef __cplusplus
extern "C" {
#endif


/* Dictionary object type -- mapping from hashable object to object */

/* The distribution includes a separate file, Objects/dictnotes.txt,
   describing explorations into dictionary design and optimization.
   It covers typical dictionary use patterns, the parameters for
   tuning dictionaries, and several ideas for possible optimizations.
*/

#ifndef Py_LIMITED_API

typedef struct _dictkeysobject PyDictKeysObject;

/* The ma_values pointer is NULL for a combined table
 * or points to an array of PyObject* for a split table
 */
typedef struct {
    PyObject_HEAD

    /* Number of items in the dictionary */
    Py_ssize_t ma_used;

    /* Dictionary version: globally unique, value change each time
       the dictionary is modified */
    uint64_t ma_version_tag;

    PyDictKeysObject *ma_keys;

    /* If ma_values is NULL, the table is "combined": keys and values
       are stored in ma_keys.

       If ma_values is not NULL, the table is splitted:
       keys are stored in ma_keys and values are stored in ma_values */
    PyObject **ma_values;
} PyDictObject;

typedef struct {
    PyObject_HEAD
    PyDictObject *dv_dict;
} _PyDictViewObject;

#endif /* Py_LIMITED_API */

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) PyObject_TypeCheck(op, &PyDictKeys_Type)
#define PyDictItems_Check(op) PyObject_TypeCheck(op, &PyDictItems_Type)
#define PyDictValues_Check(op) PyObject_TypeCheck(op, &PyDictValues_Type)
/* This excludes Values, since they are not sets. */
# 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);
#ifndef Py_LIMITED_API
PyAPI_FUNC(PyObject *) _PyDict_GetItem_KnownHash(PyObject *mp, PyObject *key,
                                       Py_hash_t hash);
#endif
PyAPI_FUNC(PyObject *) PyDict_GetItemWithError(PyObject *mp, PyObject *key);
#ifndef Py_LIMITED_API
PyAPI_FUNC(PyObject *) _PyDict_GetItemIdWithError(PyObject *dp,
                                                  struct _Py_Identifier *key);
PyAPI_FUNC(PyObject *) PyDict_SetDefault(
    PyObject *mp, PyObject *key, PyObject *defaultobj);
#endif
PyAPI_FUNC(int) PyDict_SetItem(PyObject *mp, PyObject *key, PyObject *item);
#ifndef Py_LIMITED_API
PyAPI_FUNC(int) _PyDict_SetItem_KnownHash(PyObject *mp, PyObject *key,
                                          PyObject *item, Py_hash_t hash);
#endif
PyAPI_FUNC(int) PyDict_DelItem(PyObject *mp, PyObject *key);
#ifndef Py_LIMITED_API
PyAPI_FUNC(int) _PyDict_DelItem_KnownHash(PyObject *mp, PyObject *key,
                                          Py_hash_t hash);
PyAPI_FUNC(int) _PyDict_DelItemIf(PyObject *mp, PyObject *key,
                                  int (*predicate)(PyObject *value));
#endif
PyAPI_FUNC(void) PyDict_Clear(PyObject *mp);
PyAPI_FUNC(int) PyDict_Next(
    PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value);
#ifndef Py_LIMITED_API
PyDictKeysObject *_PyDict_NewKeysForClass(void);
PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *);
PyAPI_FUNC(int) _PyDict_Next(
    PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, Py_hash_t *hash);
PyObject *_PyDictView_New(PyObject *, PyTypeObject *);
#endif
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);
#ifndef Py_LIMITED_API
PyAPI_FUNC(int) _PyDict_Contains(PyObject *mp, PyObject *key, Py_hash_t hash);
PyAPI_FUNC(PyObject *) _PyDict_NewPresized(Py_ssize_t minused);
PyAPI_FUNC(void) _PyDict_MaybeUntrack(PyObject *mp);
PyAPI_FUNC(int) _PyDict_HasOnlyStringKeys(PyObject *mp);
Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys);
Py_ssize_t _PyDict_SizeOf(PyDictObject *);
PyAPI_FUNC(PyObject *) _PyDict_Pop(PyObject *, PyObject *, PyObject *);
PyObject *_PyDict_Pop_KnownHash(PyObject *, PyObject *, Py_hash_t, PyObject *);
PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *);
#define _PyDict_HasSplitTable(d) ((d)->ma_values != NULL)

PyAPI_FUNC(int) PyDict_ClearFreeList(void);
#endif

/* PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1). */
PyAPI_FUNC(int) PyDict_Update(PyObject *mp, PyObject *other);

/* PyDict_Merge updates/merges from a mapping object (an object that
   supports PyMapping_Keys() and PyObject_GetItem()).  If override is true,
   the last occurrence of a key wins, else the first.  The Python
   dict.update(other) is equivalent to PyDict_Merge(dict, other, 1).
*/
PyAPI_FUNC(int) PyDict_Merge(PyObject *mp,
                                   PyObject *other,
                                   int override);

#ifndef Py_LIMITED_API
/* Like PyDict_Merge, but override can be 0, 1 or 2.  If override is 0,
   the first occurrence of a key wins, if override is 1, the last occurrence
   of a key wins, if override is 2, a KeyError with conflicting key as
   argument is raised.
*/
PyAPI_FUNC(int) _PyDict_MergeEx(PyObject *mp, PyObject *other, int override);
PyAPI_FUNC(PyObject *) _PyDictView_Intersect(PyObject* self, PyObject *other);
#endif

/* PyDict_MergeFromSeq2 updates/merges from an iterable object producing
   iterable objects of length 2.  If override is true, the last occurrence
   of a key wins, else the first.  The Python dict constructor dict(seq2)
   is equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1).
*/
PyAPI_FUNC(int) PyDict_MergeFromSeq2(PyObject *d,
                                           PyObject *seq2,
                                           int override);

PyAPI_FUNC(PyObject *) PyDict_GetItemString(PyObject *dp, const char *key);
#ifndef Py_LIMITED_API
PyAPI_FUNC(PyObject *) _PyDict_GetItemId(PyObject *dp, struct _Py_Identifier *key);
#endif /* !Py_LIMITED_API */
PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item);
#ifndef Py_LIMITED_API
PyAPI_FUNC(int) _PyDict_SetItemId(PyObject *dp, struct _Py_Identifier *key, PyObject *item);
#endif /* !Py_LIMITED_API */
PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key);

#ifndef Py_LIMITED_API
PyAPI_FUNC(int) _PyDict_DelItemId(PyObject *mp, struct _Py_Identifier *key);
PyAPI_FUNC(void) _PyDict_DebugMallocStats(FILE *out);

int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr, PyObject *name, PyObject *value);
PyObject *_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *);
#endif

#ifdef __cplusplus
}
#endif
#endif /* !Py_DICTOBJECT_H */

Filemanager

Name Type Size Permission Actions
Python-ast.h File 21.75 KB 0644
Python.h File 3.15 KB 0644
abstract.h File 46.34 KB 0644
accu.h File 1016 B 0644
asdl.h File 1.18 KB 0644
ast.h File 477 B 0644
bitset.h File 792 B 0644
bltinmodule.h File 264 B 0644
boolobject.h File 886 B 0644
bytearrayobject.h File 2.06 KB 0644
bytes_methods.h File 3.12 KB 0644
bytesobject.h File 8.17 KB 0644
cellobject.h File 701 B 0644
ceval.h File 8.32 KB 0644
classobject.h File 1.63 KB 0644
code.h File 5.81 KB 0644
codecs.h File 6.63 KB 0644
compile.h File 2.11 KB 0644
complexobject.h File 1.76 KB 0644
datetime.h File 9.19 KB 0644
descrobject.h File 2.89 KB 0644
dictobject.h File 7.01 KB 0644
dtoa.h File 458 B 0644
dynamic_annotations.h File 21.94 KB 0644
enumobject.h File 253 B 0644
errcode.h File 1.46 KB 0644
eval.h File 597 B 0644
fileobject.h File 1.61 KB 0644
fileutils.h File 3.44 KB 0644
floatobject.h File 4.68 KB 0644
frameobject.h File 3.45 KB 0644
funcobject.h File 3.98 KB 0644
genobject.h File 3.5 KB 0644
graminit.h File 1.92 KB 0644
grammar.h File 2.03 KB 0644
import.h File 4.13 KB 0644
intrcheck.h File 513 B 0644
iterobject.h File 567 B 0644
listobject.h File 2.83 KB 0644
longintrepr.h File 3.67 KB 0644
longobject.h File 8.27 KB 0644
marshal.h File 803 B 0644
memoryobject.h File 2.7 KB 0644
metagrammar.h File 253 B 0644
methodobject.h File 3.76 KB 0644
modsupport.h File 7.15 KB 0644
moduleobject.h File 2.23 KB 0644
namespaceobject.h File 349 B 0644
node.h File 1007 B 0644
object.h File 39.43 KB 0644
objimpl.h File 13.91 KB 0644
odictobject.h File 1.26 KB 0644
opcode.h File 4.95 KB 0644
osdefs.h File 691 B 0644
osmodule.h File 291 B 0644
parsetok.h File 2.82 KB 0644
patchlevel.h File 1.1 KB 0644
pgen.h File 253 B 0644
pgenheaders.h File 1.15 KB 0644
py_curses.h File 4.21 KB 0644
pyarena.h File 2.68 KB 0644
pyatomic.h File 7.94 KB 0644
pycapsule.h File 1.69 KB 0644
pyconfig.h File 3.99 KB 0644
pyctype.h File 1.29 KB 0644
pydebug.h File 1.18 KB 0644
pydtrace.h File 1.92 KB 0644
pyerrors.h File 16.82 KB 0644
pyexpat.h File 2.39 KB 0644
pyfpe.h File 8.27 KB 0644
pygetopt.h File 410 B 0644
pyhash.h File 4.04 KB 0644
pylifecycle.h File 3.98 KB 0644
pymacconfig.h File 2.92 KB 0644
pymacro.h File 3.42 KB 0644
pymath.h File 8.12 KB 0644
pymem.h File 8.36 KB 0644
pyport.h File 26.93 KB 0644
pystate.h File 10.88 KB 0644
pystrcmp.h File 436 B 0644
pystrhex.h File 495 B 0644
pystrtod.h File 1.45 KB 0644
pythonrun.h File 6.62 KB 0644
pythread.h File 2.92 KB 0644
pytime.h File 7.43 KB 0644
rangeobject.h File 629 B 0644
setobject.h File 3.25 KB 0644
sliceobject.h File 2.43 KB 0644
structmember.h File 1.97 KB 0644
structseq.h File 1.32 KB 0644
symtable.h File 4.88 KB 0644
sysmodule.h File 1.32 KB 0644
token.h File 1.9 KB 0644
traceback.h File 3.56 KB 0644
tupleobject.h File 2.39 KB 0644
typeslots.h File 2.2 KB 0644
ucnhash.h File 1.03 KB 0644
unicodeobject.h File 79.86 KB 0644
warnings.h File 1.65 KB 0644
weakrefobject.h File 2.8 KB 0644