Coverage Report

Created: 2022-07-08 09:39

/home/mdboom/Work/builds/cpython/Objects/clinic/odictobject.c.h
Line
Count
Source (jump to first uncovered line)
1
/*[clinic input]
2
preserve
3
[clinic start generated code]*/
4
5
PyDoc_STRVAR(OrderedDict_fromkeys__doc__,
6
"fromkeys($type, /, iterable, value=None)\n"
7
"--\n"
8
"\n"
9
"Create a new ordered dictionary with keys from iterable and values set to value.");
10
11
#define ORDEREDDICT_FROMKEYS_METHODDEF    \
12
    {"fromkeys", _PyCFunction_CAST(OrderedDict_fromkeys), METH_FASTCALL|METH_KEYWORDS|METH_CLASS, OrderedDict_fromkeys__doc__},
13
14
static PyObject *
15
OrderedDict_fromkeys_impl(PyTypeObject *type, PyObject *seq, PyObject *value);
16
17
static PyObject *
18
OrderedDict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
19
{
20
    PyObject *return_value = NULL;
21
    static const char * const _keywords[] = {"iterable", "value", NULL};
22
    static _PyArg_Parser _parser = {NULL, _keywords, "fromkeys", 0};
23
    PyObject *argsbuf[2];
24
    Py_ssize_t noptargs = nargs + (kwnames ? 
PyTuple_GET_SIZE4
(kwnames) :
046
) - 1;
  Branch (24:36): [True: 4, False: 46]
25
    PyObject *seq;
26
    PyObject *value = Py_None;
27
28
    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
29
    if (!args) {
  Branch (29:9): [True: 0, False: 50]
30
        goto exit;
31
    }
32
    seq = args[0];
33
    if (!noptargs) {
  Branch (33:9): [True: 46, False: 4]
34
        goto skip_optional_pos;
35
    }
36
    value = args[1];
37
skip_optional_pos:
38
    return_value = OrderedDict_fromkeys_impl(type, seq, value);
39
40
exit:
41
    return return_value;
42
}
43
44
PyDoc_STRVAR(OrderedDict_setdefault__doc__,
45
"setdefault($self, /, key, default=None)\n"
46
"--\n"
47
"\n"
48
"Insert key with a value of default if key is not in the dictionary.\n"
49
"\n"
50
"Return the value for key if key is in the dictionary, else default.");
51
52
#define ORDEREDDICT_SETDEFAULT_METHODDEF    \
53
    {"setdefault", _PyCFunction_CAST(OrderedDict_setdefault), METH_FASTCALL|METH_KEYWORDS, OrderedDict_setdefault__doc__},
54
55
static PyObject *
56
OrderedDict_setdefault_impl(PyODictObject *self, PyObject *key,
57
                            PyObject *default_value);
58
59
static PyObject *
60
OrderedDict_setdefault(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
61
{
62
    PyObject *return_value = NULL;
63
    static const char * const _keywords[] = {"key", "default", NULL};
64
    static _PyArg_Parser _parser = {NULL, _keywords, "setdefault", 0};
65
    PyObject *argsbuf[2];
66
    Py_ssize_t noptargs = nargs + (kwnames ? 
PyTuple_GET_SIZE2
(kwnames) :
012
) - 1;
  Branch (66:36): [True: 2, False: 12]
67
    PyObject *key;
68
    PyObject *default_value = Py_None;
69
70
    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
71
    if (!args) {
  Branch (71:9): [True: 2, False: 12]
72
        goto exit;
73
    }
74
    key = args[0];
75
    if (!noptargs) {
  Branch (75:9): [True: 0, False: 12]
76
        goto skip_optional_pos;
77
    }
78
    default_value = args[1];
79
skip_optional_pos:
80
    return_value = OrderedDict_setdefault_impl(self, key, default_value);
81
82
exit:
83
    return return_value;
84
}
85
86
PyDoc_STRVAR(OrderedDict_pop__doc__,
87
"pop($self, /, key, default=<unrepresentable>)\n"
88
"--\n"
89
"\n"
90
"od.pop(key[,default]) -> v, remove specified key and return the corresponding value.\n"
91
"\n"
92
"If the key is not found, return the default if given; otherwise,\n"
93
"raise a KeyError.");
94
95
#define ORDEREDDICT_POP_METHODDEF    \
96
    {"pop", _PyCFunction_CAST(OrderedDict_pop), METH_FASTCALL|METH_KEYWORDS, OrderedDict_pop__doc__},
97
98
static PyObject *
99
OrderedDict_pop_impl(PyODictObject *self, PyObject *key,
100
                     PyObject *default_value);
101
102
static PyObject *
103
OrderedDict_pop(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
104
{
105
    PyObject *return_value = NULL;
106
    static const char * const _keywords[] = {"key", "default", NULL};
107
    static _PyArg_Parser _parser = {NULL, _keywords, "pop", 0};
108
    PyObject *argsbuf[2];
109
    Py_ssize_t noptargs = nargs + (kwnames ? 
PyTuple_GET_SIZE2
(kwnames) :
01.88k
) - 1;
  Branch (109:36): [True: 2, False: 1.88k]
110
    PyObject *key;
111
    PyObject *default_value = NULL;
112
113
    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
114
    if (!args) {
  Branch (114:9): [True: 0, False: 1.88k]
115
        goto exit;
116
    }
117
    key = args[0];
118
    if (!noptargs) {
  Branch (118:9): [True: 1.13k, False: 749]
119
        goto skip_optional_pos;
120
    }
121
    default_value = args[1];
122
skip_optional_pos:
123
    return_value = OrderedDict_pop_impl(self, key, default_value);
124
125
exit:
126
    return return_value;
127
}
128
129
PyDoc_STRVAR(OrderedDict_popitem__doc__,
130
"popitem($self, /, last=True)\n"
131
"--\n"
132
"\n"
133
"Remove and return a (key, value) pair from the dictionary.\n"
134
"\n"
135
"Pairs are returned in LIFO order if last is true or FIFO order if false.");
136
137
#define ORDEREDDICT_POPITEM_METHODDEF    \
138
    {"popitem", _PyCFunction_CAST(OrderedDict_popitem), METH_FASTCALL|METH_KEYWORDS, OrderedDict_popitem__doc__},
139
140
static PyObject *
141
OrderedDict_popitem_impl(PyODictObject *self, int last);
142
143
static PyObject *
144
OrderedDict_popitem(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
145
{
146
    PyObject *return_value = NULL;
147
    static const char * const _keywords[] = {"last", NULL};
148
    static _PyArg_Parser _parser = {NULL, _keywords, "popitem", 0};
149
    PyObject *argsbuf[1];
150
    Py_ssize_t noptargs = nargs + (kwnames ? 
PyTuple_GET_SIZE549
(kwnames) :
040
) - 0;
  Branch (150:36): [True: 549, False: 40]
151
    int last = 1;
152
153
    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
154
    if (!args) {
  Branch (154:9): [True: 0, False: 589]
155
        goto exit;
156
    }
157
    if (!noptargs) {
  Branch (157:9): [True: 22, False: 567]
158
        goto skip_optional_pos;
159
    }
160
    last = PyObject_IsTrue(args[0]);
161
    if (last < 0) {
  Branch (161:9): [True: 0, False: 567]
162
        goto exit;
163
    }
164
skip_optional_pos:
165
    return_value = OrderedDict_popitem_impl(self, last);
166
167
exit:
168
    return return_value;
169
}
170
171
PyDoc_STRVAR(OrderedDict_move_to_end__doc__,
172
"move_to_end($self, /, key, last=True)\n"
173
"--\n"
174
"\n"
175
"Move an existing element to the end (or beginning if last is false).\n"
176
"\n"
177
"Raise KeyError if the element does not exist.");
178
179
#define ORDEREDDICT_MOVE_TO_END_METHODDEF    \
180
    {"move_to_end", _PyCFunction_CAST(OrderedDict_move_to_end), METH_FASTCALL|METH_KEYWORDS, OrderedDict_move_to_end__doc__},
181
182
static PyObject *
183
OrderedDict_move_to_end_impl(PyODictObject *self, PyObject *key, int last);
184
185
static PyObject *
186
OrderedDict_move_to_end(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
187
{
188
    PyObject *return_value = NULL;
189
    static const char * const _keywords[] = {"key", "last", NULL};
190
    static _PyArg_Parser _parser = {NULL, _keywords, "move_to_end", 0};
191
    PyObject *argsbuf[2];
192
    Py_ssize_t noptargs = nargs + (kwnames ? 
PyTuple_GET_SIZE6
(kwnames) :
072
) - 1;
  Branch (192:36): [True: 6, False: 72]
193
    PyObject *key;
194
    int last = 1;
195
196
    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
197
    if (!args) {
  Branch (197:9): [True: 0, False: 78]
198
        goto exit;
199
    }
200
    key = args[0];
201
    if (!noptargs) {
  Branch (201:9): [True: 66, False: 12]
202
        goto skip_optional_pos;
203
    }
204
    last = PyObject_IsTrue(args[1]);
205
    if (last < 0) {
  Branch (205:9): [True: 0, False: 12]
206
        goto exit;
207
    }
208
skip_optional_pos:
209
    return_value = OrderedDict_move_to_end_impl(self, key, last);
210
211
exit:
212
    return return_value;
213
}
214
/*[clinic end generated code: output=4182a5dab66963d0 input=a9049054013a1b77]*/