17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(marshal_dump__doc__, 67db96d56Sopenharmony_ci"dump($module, value, file, version=version, /)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Write the value on the open file.\n" 107db96d56Sopenharmony_ci"\n" 117db96d56Sopenharmony_ci" value\n" 127db96d56Sopenharmony_ci" Must be a supported type.\n" 137db96d56Sopenharmony_ci" file\n" 147db96d56Sopenharmony_ci" Must be a writeable binary file.\n" 157db96d56Sopenharmony_ci" version\n" 167db96d56Sopenharmony_ci" Indicates the data format that dump should use.\n" 177db96d56Sopenharmony_ci"\n" 187db96d56Sopenharmony_ci"If the value has (or contains an object that has) an unsupported type, a\n" 197db96d56Sopenharmony_ci"ValueError exception is raised - but garbage data will also be written\n" 207db96d56Sopenharmony_ci"to the file. The object will not be properly read back by load()."); 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci#define MARSHAL_DUMP_METHODDEF \ 237db96d56Sopenharmony_ci {"dump", _PyCFunction_CAST(marshal_dump), METH_FASTCALL, marshal_dump__doc__}, 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_cistatic PyObject * 267db96d56Sopenharmony_cimarshal_dump_impl(PyObject *module, PyObject *value, PyObject *file, 277db96d56Sopenharmony_ci int version); 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_cistatic PyObject * 307db96d56Sopenharmony_cimarshal_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 317db96d56Sopenharmony_ci{ 327db96d56Sopenharmony_ci PyObject *return_value = NULL; 337db96d56Sopenharmony_ci PyObject *value; 347db96d56Sopenharmony_ci PyObject *file; 357db96d56Sopenharmony_ci int version = Py_MARSHAL_VERSION; 367db96d56Sopenharmony_ci 377db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("dump", nargs, 2, 3)) { 387db96d56Sopenharmony_ci goto exit; 397db96d56Sopenharmony_ci } 407db96d56Sopenharmony_ci value = args[0]; 417db96d56Sopenharmony_ci file = args[1]; 427db96d56Sopenharmony_ci if (nargs < 3) { 437db96d56Sopenharmony_ci goto skip_optional; 447db96d56Sopenharmony_ci } 457db96d56Sopenharmony_ci version = _PyLong_AsInt(args[2]); 467db96d56Sopenharmony_ci if (version == -1 && PyErr_Occurred()) { 477db96d56Sopenharmony_ci goto exit; 487db96d56Sopenharmony_ci } 497db96d56Sopenharmony_ciskip_optional: 507db96d56Sopenharmony_ci return_value = marshal_dump_impl(module, value, file, version); 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_ciexit: 537db96d56Sopenharmony_ci return return_value; 547db96d56Sopenharmony_ci} 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ciPyDoc_STRVAR(marshal_load__doc__, 577db96d56Sopenharmony_ci"load($module, file, /)\n" 587db96d56Sopenharmony_ci"--\n" 597db96d56Sopenharmony_ci"\n" 607db96d56Sopenharmony_ci"Read one value from the open file and return it.\n" 617db96d56Sopenharmony_ci"\n" 627db96d56Sopenharmony_ci" file\n" 637db96d56Sopenharmony_ci" Must be readable binary file.\n" 647db96d56Sopenharmony_ci"\n" 657db96d56Sopenharmony_ci"If no valid value is read (e.g. because the data has a different Python\n" 667db96d56Sopenharmony_ci"version\'s incompatible marshal format), raise EOFError, ValueError or\n" 677db96d56Sopenharmony_ci"TypeError.\n" 687db96d56Sopenharmony_ci"\n" 697db96d56Sopenharmony_ci"Note: If an object containing an unsupported type was marshalled with\n" 707db96d56Sopenharmony_ci"dump(), load() will substitute None for the unmarshallable type."); 717db96d56Sopenharmony_ci 727db96d56Sopenharmony_ci#define MARSHAL_LOAD_METHODDEF \ 737db96d56Sopenharmony_ci {"load", (PyCFunction)marshal_load, METH_O, marshal_load__doc__}, 747db96d56Sopenharmony_ci 757db96d56Sopenharmony_ciPyDoc_STRVAR(marshal_dumps__doc__, 767db96d56Sopenharmony_ci"dumps($module, value, version=version, /)\n" 777db96d56Sopenharmony_ci"--\n" 787db96d56Sopenharmony_ci"\n" 797db96d56Sopenharmony_ci"Return the bytes object that would be written to a file by dump(value, file).\n" 807db96d56Sopenharmony_ci"\n" 817db96d56Sopenharmony_ci" value\n" 827db96d56Sopenharmony_ci" Must be a supported type.\n" 837db96d56Sopenharmony_ci" version\n" 847db96d56Sopenharmony_ci" Indicates the data format that dumps should use.\n" 857db96d56Sopenharmony_ci"\n" 867db96d56Sopenharmony_ci"Raise a ValueError exception if value has (or contains an object that has) an\n" 877db96d56Sopenharmony_ci"unsupported type."); 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_ci#define MARSHAL_DUMPS_METHODDEF \ 907db96d56Sopenharmony_ci {"dumps", _PyCFunction_CAST(marshal_dumps), METH_FASTCALL, marshal_dumps__doc__}, 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_cistatic PyObject * 937db96d56Sopenharmony_cimarshal_dumps_impl(PyObject *module, PyObject *value, int version); 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_cistatic PyObject * 967db96d56Sopenharmony_cimarshal_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 977db96d56Sopenharmony_ci{ 987db96d56Sopenharmony_ci PyObject *return_value = NULL; 997db96d56Sopenharmony_ci PyObject *value; 1007db96d56Sopenharmony_ci int version = Py_MARSHAL_VERSION; 1017db96d56Sopenharmony_ci 1027db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("dumps", nargs, 1, 2)) { 1037db96d56Sopenharmony_ci goto exit; 1047db96d56Sopenharmony_ci } 1057db96d56Sopenharmony_ci value = args[0]; 1067db96d56Sopenharmony_ci if (nargs < 2) { 1077db96d56Sopenharmony_ci goto skip_optional; 1087db96d56Sopenharmony_ci } 1097db96d56Sopenharmony_ci version = _PyLong_AsInt(args[1]); 1107db96d56Sopenharmony_ci if (version == -1 && PyErr_Occurred()) { 1117db96d56Sopenharmony_ci goto exit; 1127db96d56Sopenharmony_ci } 1137db96d56Sopenharmony_ciskip_optional: 1147db96d56Sopenharmony_ci return_value = marshal_dumps_impl(module, value, version); 1157db96d56Sopenharmony_ci 1167db96d56Sopenharmony_ciexit: 1177db96d56Sopenharmony_ci return return_value; 1187db96d56Sopenharmony_ci} 1197db96d56Sopenharmony_ci 1207db96d56Sopenharmony_ciPyDoc_STRVAR(marshal_loads__doc__, 1217db96d56Sopenharmony_ci"loads($module, bytes, /)\n" 1227db96d56Sopenharmony_ci"--\n" 1237db96d56Sopenharmony_ci"\n" 1247db96d56Sopenharmony_ci"Convert the bytes-like object to a value.\n" 1257db96d56Sopenharmony_ci"\n" 1267db96d56Sopenharmony_ci"If no valid value is found, raise EOFError, ValueError or TypeError. Extra\n" 1277db96d56Sopenharmony_ci"bytes in the input are ignored."); 1287db96d56Sopenharmony_ci 1297db96d56Sopenharmony_ci#define MARSHAL_LOADS_METHODDEF \ 1307db96d56Sopenharmony_ci {"loads", (PyCFunction)marshal_loads, METH_O, marshal_loads__doc__}, 1317db96d56Sopenharmony_ci 1327db96d56Sopenharmony_cistatic PyObject * 1337db96d56Sopenharmony_cimarshal_loads_impl(PyObject *module, Py_buffer *bytes); 1347db96d56Sopenharmony_ci 1357db96d56Sopenharmony_cistatic PyObject * 1367db96d56Sopenharmony_cimarshal_loads(PyObject *module, PyObject *arg) 1377db96d56Sopenharmony_ci{ 1387db96d56Sopenharmony_ci PyObject *return_value = NULL; 1397db96d56Sopenharmony_ci Py_buffer bytes = {NULL, NULL}; 1407db96d56Sopenharmony_ci 1417db96d56Sopenharmony_ci if (PyObject_GetBuffer(arg, &bytes, PyBUF_SIMPLE) != 0) { 1427db96d56Sopenharmony_ci goto exit; 1437db96d56Sopenharmony_ci } 1447db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&bytes, 'C')) { 1457db96d56Sopenharmony_ci _PyArg_BadArgument("loads", "argument", "contiguous buffer", arg); 1467db96d56Sopenharmony_ci goto exit; 1477db96d56Sopenharmony_ci } 1487db96d56Sopenharmony_ci return_value = marshal_loads_impl(module, &bytes); 1497db96d56Sopenharmony_ci 1507db96d56Sopenharmony_ciexit: 1517db96d56Sopenharmony_ci /* Cleanup for bytes */ 1527db96d56Sopenharmony_ci if (bytes.obj) { 1537db96d56Sopenharmony_ci PyBuffer_Release(&bytes); 1547db96d56Sopenharmony_ci } 1557db96d56Sopenharmony_ci 1567db96d56Sopenharmony_ci return return_value; 1577db96d56Sopenharmony_ci} 1587db96d56Sopenharmony_ci/*[clinic end generated code: output=b9e838edee43fe87 input=a9049054013a1b77]*/ 159