/home/mdboom/Work/builds/cpython/Objects/clinic/descrobject.c.h
Line | Count | Source (jump to first uncovered line) |
1 | /*[clinic input] |
2 | preserve |
3 | [clinic start generated code]*/ |
4 | |
5 | static PyObject * |
6 | mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping); |
7 | |
8 | static PyObject * |
9 | mappingproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) |
10 | { |
11 | PyObject *return_value = NULL; |
12 | static const char * const _keywords[] = {"mapping", NULL}; |
13 | static _PyArg_Parser _parser = {NULL, _keywords, "mappingproxy", 0}; |
14 | PyObject *argsbuf[1]; |
15 | PyObject * const *fastargs; |
16 | Py_ssize_t nargs = PyTuple_GET_SIZE(args); |
17 | PyObject *mapping; |
18 | |
19 | fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf); |
20 | if (!fastargs) { Branch (20:9): [True: 0, False: 6.95k]
|
21 | goto exit; |
22 | } |
23 | mapping = fastargs[0]; |
24 | return_value = mappingproxy_new_impl(type, mapping); |
25 | |
26 | exit: |
27 | return return_value; |
28 | } |
29 | |
30 | PyDoc_STRVAR(property_init__doc__, |
31 | "property(fget=None, fset=None, fdel=None, doc=None)\n" |
32 | "--\n" |
33 | "\n" |
34 | "Property attribute.\n" |
35 | "\n" |
36 | " fget\n" |
37 | " function to be used for getting an attribute value\n" |
38 | " fset\n" |
39 | " function to be used for setting an attribute value\n" |
40 | " fdel\n" |
41 | " function to be used for del\'ing an attribute\n" |
42 | " doc\n" |
43 | " docstring\n" |
44 | "\n" |
45 | "Typical use is to define a managed attribute x:\n" |
46 | "\n" |
47 | "class C(object):\n" |
48 | " def getx(self): return self._x\n" |
49 | " def setx(self, value): self._x = value\n" |
50 | " def delx(self): del self._x\n" |
51 | " x = property(getx, setx, delx, \"I\'m the \'x\' property.\")\n" |
52 | "\n" |
53 | "Decorators make defining new properties or modifying existing ones easy:\n" |
54 | "\n" |
55 | "class C(object):\n" |
56 | " @property\n" |
57 | " def x(self):\n" |
58 | " \"I am the \'x\' property.\"\n" |
59 | " return self._x\n" |
60 | " @x.setter\n" |
61 | " def x(self, value):\n" |
62 | " self._x = value\n" |
63 | " @x.deleter\n" |
64 | " def x(self):\n" |
65 | " del self._x"); |
66 | |
67 | static int |
68 | property_init_impl(propertyobject *self, PyObject *fget, PyObject *fset, |
69 | PyObject *fdel, PyObject *doc); |
70 | |
71 | static int |
72 | property_init(PyObject *self, PyObject *args, PyObject *kwargs) |
73 | { |
74 | int return_value = -1; |
75 | static const char * const _keywords[] = {"fget", "fset", "fdel", "doc", NULL}; |
76 | static _PyArg_Parser _parser = {NULL, _keywords, "property", 0}; |
77 | PyObject *argsbuf[4]; |
78 | PyObject * const *fastargs; |
79 | Py_ssize_t nargs = PyTuple_GET_SIZE(args); |
80 | Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE28 (kwargs) : 03.72k ) - 0; Branch (80:36): [True: 28, False: 3.72k]
|
81 | PyObject *fget = NULL; |
82 | PyObject *fset = NULL; |
83 | PyObject *fdel = NULL; |
84 | PyObject *doc = NULL; |
85 | |
86 | fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 4, 0, argsbuf); |
87 | if (!fastargs) { Branch (87:9): [True: 0, False: 3.75k]
|
88 | goto exit; |
89 | } |
90 | if (!noptargs) { Branch (90:9): [True: 5, False: 3.74k]
|
91 | goto skip_optional_pos; |
92 | } |
93 | if (fastargs[0]) { Branch (93:9): [True: 3.74k, False: 3]
|
94 | fget = fastargs[0]; |
95 | if (!--noptargs) { Branch (95:13): [True: 2.87k, False: 867]
|
96 | goto skip_optional_pos; |
97 | } |
98 | } |
99 | if (fastargs[1]) { Branch (99:9): [True: 863, False: 7]
|
100 | fset = fastargs[1]; |
101 | if (!--noptargs) { Branch (101:13): [True: 89, False: 774]
|
102 | goto skip_optional_pos; |
103 | } |
104 | } |
105 | if (fastargs[2]) { Branch (105:9): [True: 757, False: 24]
|
106 | fdel = fastargs[2]; |
107 | if (!--noptargs) { Branch (107:13): [True: 2, False: 755]
|
108 | goto skip_optional_pos; |
109 | } |
110 | } |
111 | doc = fastargs[3]; |
112 | skip_optional_pos: |
113 | return_value = property_init_impl((propertyobject *)self, fget, fset, fdel, doc); |
114 | |
115 | exit: |
116 | return return_value; |
117 | } |
118 | /*[clinic end generated code: output=916624e717862abc input=a9049054013a1b77]*/ |