aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Includes/cpython/set.pxd
blob: 2a196bec1007ecd0d9de9e4b5930815c04028076 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
cdef extern from "Python.h": 
 
    ############################################################################ 
    # 7.5.14 Set Objects 
    ############################################################################ 
 
    # This section details the public API for set and frozenset 
    # objects. Any functionality not listed below is best accessed 
    # using the either the abstract object protocol (including 
    # PyObject_CallMethod(), PyObject_RichCompareBool(), 
    # PyObject_Hash(), PyObject_Repr(), PyObject_IsTrue(), 
    # PyObject_Print(), and PyObject_GetIter()) or the abstract number 
    # protocol (including PyNumber_Add(), PyNumber_Subtract(), 
    # PyNumber_Or(), PyNumber_Xor(), PyNumber_InPlaceAdd(), 
    # PyNumber_InPlaceSubtract(), PyNumber_InPlaceOr(), and 
    # PyNumber_InPlaceXor()). 
 
    # PySetObject 
    # This subtype of PyObject is used to hold the internal data for 
    # both set and frozenset objects. It is like a PyDictObject in 
    # that it is a fixed size for small sets (much like tuple storage) 
    # and will point to a separate, variable sized block of memory for 
    # medium and large sized sets (much like list storage). None of 
    # the fields of this structure should be considered public and are 
    # subject to change. All access should be done through the 
    # documented API rather than by manipulating the values in the 
    # structure. 
 
    # PyTypeObject PySet_Type 
    # This is an instance of PyTypeObject representing the Python set type. 
 
    # PyTypeObject PyFrozenSet_Type 
    # This is an instance of PyTypeObject representing the Python frozenset type. 
 
    # The following type check macros work on pointers to any Python 
    # object. Likewise, the constructor functions work with any 
    # iterable Python object. 
 
    bint PyAnySet_Check(object p) 
    # Return true if p is a set object, a frozenset object, or an 
    # instance of a subtype. 
 
    bint PyAnySet_CheckExact(object p) 
    # Return true if p is a set object or a frozenset object but not 
    # an instance of a subtype. 
 
    bint PyFrozenSet_Check(object p)
    # Return true if p is a frozenset object or an instance of a subtype.

    bint PyFrozenSet_CheckExact(object p) 
    # Return true if p is a frozenset object but not an instance of a subtype. 
 
    bint PySet_Check(object p)
    # Return true if p is a set object or an instance of a subtype.

    object PySet_New(object iterable) 
    # Return value: New reference. 
    # Return a new set containing objects returned by the 
    # iterable. The iterable may be NULL to create a new empty 
    # set. Return the new set on success or NULL on failure. Raise 
    # TypeError if iterable is not actually iterable. The constructor 
    # is also useful for copying a set (c=set(s)). 
 
    object PyFrozenSet_New(object iterable) 
    # Return value: New reference. 
    # Return a new frozenset containing objects returned by the 
    # iterable. The iterable may be NULL to create a new empty 
    # frozenset. Return the new set on success or NULL on 
    # failure. Raise TypeError if iterable is not actually iterable. 
 
 
    # The following functions and macros are available for instances 
    # of set or frozenset or instances of their subtypes. 
 
    Py_ssize_t PySet_Size(object anyset) except -1 
    # Return the length of a set or frozenset object. Equivalent to 
    # "len(anyset)". Raises a PyExc_SystemError if anyset is not a 
    # set, frozenset, or an instance of a subtype. 
 
    Py_ssize_t PySet_GET_SIZE(object anyset) 
    # Macro form of PySet_Size() without error checking. 
 
    bint PySet_Contains(object anyset, object key) except -1 
    # Return 1 if found, 0 if not found, and -1 if an error is 
    # encountered. Unlike the Python __contains__() method, this 
    # function does not automatically convert unhashable sets into 
    # temporary frozensets. Raise a TypeError if the key is 
    # unhashable. Raise PyExc_SystemError if anyset is not a set, 
    # frozenset, or an instance of a subtype. 
 
 
    # The following functions are available for instances of set or 
    # its subtypes but not for instances of frozenset or its subtypes. 
 
    int PySet_Add(object set, object key) except -1 
    # Add key to a set instance. Does not apply to frozenset 
    # instances. Return 0 on success or -1 on failure. Raise a 
    # TypeError if the key is unhashable. Raise a MemoryError if there 
    # is no room to grow. Raise a SystemError if set is an not an 
    # instance of set or its subtype. 
 
    bint PySet_Discard(object set, object key) except -1 
    # Return 1 if found and removed, 0 if not found (no action taken), 
    # and -1 if an error is encountered. Does not raise KeyError for 
    # missing keys. Raise a TypeError if the key is unhashable. Unlike 
    # the Python discard() method, this function does not 
    # automatically convert unhashable sets into temporary 
    # frozensets. Raise PyExc_SystemError if set is an not an instance 
    # of set or its subtype. 
 
    object PySet_Pop(object set) 
    # Return value: New reference. 
    # Return a new reference to an arbitrary object in the set, and 
    # removes the object from the set. Return NULL on failure. Raise 
    # KeyError if the set is empty. Raise a SystemError if set is an 
    # not an instance of set or its subtype. 
 
    int PySet_Clear(object set) 
    # Empty an existing set of all elements.