17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_cistatic PyObject * 67db96d56Sopenharmony_cimappingproxy_new_impl(PyTypeObject *type, PyObject *mapping); 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_cistatic PyObject * 97db96d56Sopenharmony_cimappingproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) 107db96d56Sopenharmony_ci{ 117db96d56Sopenharmony_ci PyObject *return_value = NULL; 127db96d56Sopenharmony_ci static const char * const _keywords[] = {"mapping", NULL}; 137db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "mappingproxy", 0}; 147db96d56Sopenharmony_ci PyObject *argsbuf[1]; 157db96d56Sopenharmony_ci PyObject * const *fastargs; 167db96d56Sopenharmony_ci Py_ssize_t nargs = PyTuple_GET_SIZE(args); 177db96d56Sopenharmony_ci PyObject *mapping; 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ci fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 1, 0, argsbuf); 207db96d56Sopenharmony_ci if (!fastargs) { 217db96d56Sopenharmony_ci goto exit; 227db96d56Sopenharmony_ci } 237db96d56Sopenharmony_ci mapping = fastargs[0]; 247db96d56Sopenharmony_ci return_value = mappingproxy_new_impl(type, mapping); 257db96d56Sopenharmony_ci 267db96d56Sopenharmony_ciexit: 277db96d56Sopenharmony_ci return return_value; 287db96d56Sopenharmony_ci} 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ciPyDoc_STRVAR(property_init__doc__, 317db96d56Sopenharmony_ci"property(fget=None, fset=None, fdel=None, doc=None)\n" 327db96d56Sopenharmony_ci"--\n" 337db96d56Sopenharmony_ci"\n" 347db96d56Sopenharmony_ci"Property attribute.\n" 357db96d56Sopenharmony_ci"\n" 367db96d56Sopenharmony_ci" fget\n" 377db96d56Sopenharmony_ci" function to be used for getting an attribute value\n" 387db96d56Sopenharmony_ci" fset\n" 397db96d56Sopenharmony_ci" function to be used for setting an attribute value\n" 407db96d56Sopenharmony_ci" fdel\n" 417db96d56Sopenharmony_ci" function to be used for del\'ing an attribute\n" 427db96d56Sopenharmony_ci" doc\n" 437db96d56Sopenharmony_ci" docstring\n" 447db96d56Sopenharmony_ci"\n" 457db96d56Sopenharmony_ci"Typical use is to define a managed attribute x:\n" 467db96d56Sopenharmony_ci"\n" 477db96d56Sopenharmony_ci"class C(object):\n" 487db96d56Sopenharmony_ci" def getx(self): return self._x\n" 497db96d56Sopenharmony_ci" def setx(self, value): self._x = value\n" 507db96d56Sopenharmony_ci" def delx(self): del self._x\n" 517db96d56Sopenharmony_ci" x = property(getx, setx, delx, \"I\'m the \'x\' property.\")\n" 527db96d56Sopenharmony_ci"\n" 537db96d56Sopenharmony_ci"Decorators make defining new properties or modifying existing ones easy:\n" 547db96d56Sopenharmony_ci"\n" 557db96d56Sopenharmony_ci"class C(object):\n" 567db96d56Sopenharmony_ci" @property\n" 577db96d56Sopenharmony_ci" def x(self):\n" 587db96d56Sopenharmony_ci" \"I am the \'x\' property.\"\n" 597db96d56Sopenharmony_ci" return self._x\n" 607db96d56Sopenharmony_ci" @x.setter\n" 617db96d56Sopenharmony_ci" def x(self, value):\n" 627db96d56Sopenharmony_ci" self._x = value\n" 637db96d56Sopenharmony_ci" @x.deleter\n" 647db96d56Sopenharmony_ci" def x(self):\n" 657db96d56Sopenharmony_ci" del self._x"); 667db96d56Sopenharmony_ci 677db96d56Sopenharmony_cistatic int 687db96d56Sopenharmony_ciproperty_init_impl(propertyobject *self, PyObject *fget, PyObject *fset, 697db96d56Sopenharmony_ci PyObject *fdel, PyObject *doc); 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_cistatic int 727db96d56Sopenharmony_ciproperty_init(PyObject *self, PyObject *args, PyObject *kwargs) 737db96d56Sopenharmony_ci{ 747db96d56Sopenharmony_ci int return_value = -1; 757db96d56Sopenharmony_ci static const char * const _keywords[] = {"fget", "fset", "fdel", "doc", NULL}; 767db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "property", 0}; 777db96d56Sopenharmony_ci PyObject *argsbuf[4]; 787db96d56Sopenharmony_ci PyObject * const *fastargs; 797db96d56Sopenharmony_ci Py_ssize_t nargs = PyTuple_GET_SIZE(args); 807db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0; 817db96d56Sopenharmony_ci PyObject *fget = NULL; 827db96d56Sopenharmony_ci PyObject *fset = NULL; 837db96d56Sopenharmony_ci PyObject *fdel = NULL; 847db96d56Sopenharmony_ci PyObject *doc = NULL; 857db96d56Sopenharmony_ci 867db96d56Sopenharmony_ci fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 4, 0, argsbuf); 877db96d56Sopenharmony_ci if (!fastargs) { 887db96d56Sopenharmony_ci goto exit; 897db96d56Sopenharmony_ci } 907db96d56Sopenharmony_ci if (!noptargs) { 917db96d56Sopenharmony_ci goto skip_optional_pos; 927db96d56Sopenharmony_ci } 937db96d56Sopenharmony_ci if (fastargs[0]) { 947db96d56Sopenharmony_ci fget = fastargs[0]; 957db96d56Sopenharmony_ci if (!--noptargs) { 967db96d56Sopenharmony_ci goto skip_optional_pos; 977db96d56Sopenharmony_ci } 987db96d56Sopenharmony_ci } 997db96d56Sopenharmony_ci if (fastargs[1]) { 1007db96d56Sopenharmony_ci fset = fastargs[1]; 1017db96d56Sopenharmony_ci if (!--noptargs) { 1027db96d56Sopenharmony_ci goto skip_optional_pos; 1037db96d56Sopenharmony_ci } 1047db96d56Sopenharmony_ci } 1057db96d56Sopenharmony_ci if (fastargs[2]) { 1067db96d56Sopenharmony_ci fdel = fastargs[2]; 1077db96d56Sopenharmony_ci if (!--noptargs) { 1087db96d56Sopenharmony_ci goto skip_optional_pos; 1097db96d56Sopenharmony_ci } 1107db96d56Sopenharmony_ci } 1117db96d56Sopenharmony_ci doc = fastargs[3]; 1127db96d56Sopenharmony_ciskip_optional_pos: 1137db96d56Sopenharmony_ci return_value = property_init_impl((propertyobject *)self, fget, fset, fdel, doc); 1147db96d56Sopenharmony_ci 1157db96d56Sopenharmony_ciexit: 1167db96d56Sopenharmony_ci return return_value; 1177db96d56Sopenharmony_ci} 1187db96d56Sopenharmony_ci/*[clinic end generated code: output=916624e717862abc input=a9049054013a1b77]*/ 119